#!/bin/bash addMembers() { echo -e "\nAjouts des comptes membres sans transaction reçus ..." wallets="$wallets"'\n'"$membresPubkeys" wallets=$(echo -e "$wallets" | sort -u) echo "Isolation des simples portefeuilles..." # On split la listes des wallets pour ne pas saturer grep local id=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) local tmpSplit="/tmp/g1stats-splits-$id" mkdir -p $tmpSplit pushd $tmpSplit >/dev/null || exit 1 split -d -l 2500 <<<"$membresPubkeys" simpleWallets="$wallets" for i in $(ls x*); do local walletToSup=$(cat $i) simpleWallets=$(echo "$simpleWallets" | grep -vF "$walletToSup") done [[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1 popd >/dev/null } web() { [ ! -d $WEBPATH/history/ ] && mkdir -p $WEBPATH/history/ [ ! -d $WEBPATH/graph/ ] && mkdir -p $WEBPATH/graph/ [ ! -d $WEBPATH/data/ ] && mkdir -p $WEBPATH/data/ [ ! -d $WEBPATH/css ] && cp -r $GPATH/tpl/css $WEBPATH/ [ ! -d $WEBPATH/js ] && cp -r $GPATH/tpl/js $WEBPATH/ indexhtml="$WEBPATH/index.html" cp $GPATH/tpl/index.html $indexhtml datePrevious=$(date +'%y-%m-%d' -d "$day -1 day") [[ -z $(ls -l $WEBPATH/history/ | grep $datePrevious) && -z $(grep '"display:none;" class="previous"' $indexhtml) ]] && sed -i "s/class=\"previous\"/style=\"display:none;\" class=\"previous\"/g" $indexhtml dateNext=$(date +'%y-%m-%d' -d "$day +1 day") [[ -z $(ls -l $WEBPATH/history/ | grep $dateNext) && -z $(grep '"display:none;" class="next"' $indexhtml) ]] && sed -i "s/class=\"next\"/style=\"display:none;\" class=\"next\"/g" $indexhtml sed -i "s/_nbrTotalWallets/$nbrTotalWallets/g" $indexhtml sed -i "s/_nbrSimpleWallets/$nbrSimpleWallets/g" $indexhtml sed -i "s/_nbrMembers/$nbrMembers/g" $indexhtml sed -i "s/_pourcentMbrs/$pourcentMbrs/g" $indexhtml sed -i "s/_pourcentWallets/$pourcentWallets/g" $indexhtml # sed -i "s/_node/$DUNITER/g" $indexhtml sed -i "s/_heure/$startTime/g" $indexhtml sed -i "s/_day/$dayP/g" $indexhtml sed -i "s/_sumRW/$sumRW/g" $indexhtml sed -i "s/_sumSW/$sumSW/g" $indexhtml sed -i "s/_soldeW/$soldeW/g" $indexhtml sed -i "s/_sumRM/$sumRM/g" $indexhtml sed -i "s/_sumSM/$sumSM/g" $indexhtml sed -i "s/_soldeM/$soldeM/g" $indexhtml sed -i "s/_pourcentSimpleWallet/$pourcentSimpleWallet/g" $indexhtml sed -i "s/_nonConsumedUDT/$nonConsumedUDT/g" $indexhtml sed -i "s/_monetaryMass/$monetaryMass/g" $indexhtml sed -i "s/_sleepyG1/$sleepyG1/g" $indexhtml [[ -z $(grep '"display:none;" class="previous"' $indexhtml) ]] && sed -i "s/_datePrevious/$datePrevious/g" $indexhtml && setPrevious="Oui" [[ -z $(grep '"display:none;" class="next"' $indexhtml) ]] && sed -i "s/_dateNext/$dateNext/g" $indexhtml && setNext="Oui" echo "$wallets" | grep . > $WEBPATH/data/wallets-g1.txt echo -e "$membresPubkeys" | sed 's/ /\n/g' > $WEBPATH/data/wallets-g1-membres.txt echo -e "$simpleWallets" > $WEBPATH/data/wallets-g1-simple.txt cp $GPATH/db/daily.json $WEBPATH/data/ $GPATH/explorer.sh print -c > $WEBPATH/data/cum-daily.json if [[ "$startTime" == "00:00" ]]; then cp $indexhtml $WEBPATH/history/index_$day.html sed -i "s/css\/style.css/..\/css\/style.css/g" $WEBPATH/history/index_$day.html sed -i "s/logo-axiom-team.svg/..\/logo-axiom-team.svg/g" $WEBPATH/history/index_$day.html sed -i 's/id="charts">/id="charts" style="display:none;">/g' $WEBPATH/history/index_$day.html sed -i '/href="css\/charts.css"/d' $WEBPATH/history/index_$day.html sed -i '/type="text\/javascript"/d' $WEBPATH/history/index_$day.html sed -i "s/_dateNext/$day/g" $WEBPATH/history/index_$datePrevious.html sed -i "s/style=\"display:none;\" class=\"next\"/class=\"next\"/g" $WEBPATH/history/index_$datePrevious.html fi # chown www-data for nginx needs chown -R www-data:www-data $WEBPATH >/dev/null 2>&1 } sumSoldes() { source $GPATH/explorer.sh -c > /dev/null sumRW=$(day | jq '.rWallets' | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') sumRM=$(day | jq '.rMembers' | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') sumRT=$(total | jq '.totalExchange' | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') sumSW=$(day | jq '.sWallets' | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') sumSM=$(day | jq '.sMembers' | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') sumSTBrut=$(total | jq '.totalExchange') sumST=$(sed ':a;s/\B[0-9]\{3\}\>/ &/;ta' <<<"$sumSTBrut") soldeWBrut=$(total | jq '.soldeWallets') soldeW=$(sed ':a;s/\B[0-9]\{3\}\>/ &/;ta' <<<"$soldeWBrut") soldeM=$(total | jq '.soldeMembers' | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') ### Calcul de la masse monétaire et du pourcentage de Ḡ1 sur les simples portefeuilles monetaryMassBrut=$(mass | jq .monetaryMass) monetaryMass=$(echo "$monetaryMassBrut" | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') pourcentSimpleWallet=$(echo "$soldeWBrut*100/$monetaryMassBrut/1" | bc -l | xargs printf %.1f) sleepyG1=$(echo "100-$sumSTBrut*100/$monetaryMassBrut" | bc -l | xargs printf %.1f) } nbrWallets() { nbrTotalWallets=$(echo "$wallets" | wc -l) nbrSimpleWallets=$(echo "$nbrTotalWallets-$nbrMembers" | bc) pourcentMbrs=$(echo "$nbrMembers*100/$nbrTotalWallets" | bc -l | xargs printf %.1f) pourcentWallets=$(echo "$nbrSimpleWallets*100/$nbrTotalWallets" | bc -l | xargs printf %.1f) } displayStats() { echo " --- Noeud: $DUNITER Nombre total de wallet: $nbrTotalWallets Nombre de membres: $nbrMembers (${pourcentMbrs}%) Nombre de simple portefeuille: $nbrSimpleWallets (${pourcentWallets}%) --- Reçus Wallets: $sumRW Reçus Membres: $sumRM Reçus Total: $sumRT --- Envoyé Wallets: $sumSW Envoyé Membres: $sumSM Envoyé Total: $sumST --- Solde Wallets: $soldeW Solde Membres: $soldeM --- Masse Monétaire: $monetaryMass Ḡ1 --- Analyse --- $sleepyG1% des Ḡ1 n'ont jamais été utilisés." } rmOldCache() { keepCache=20 listCache=$(ls -l $GPATH/db/bk-* | awk '{ print $9 }') listID=$(echo "$listCache" | awk -F '-' '{ print $NF }') nbrID=$(echo "$listID" | wc -l) nbrToSup=$((nbrID-$keepCache)) if [[ $nbrToSup -ge 0 ]]; then cacheIDToSup=$(echo "$listID" | head -n$nbrToSup) for i in $cacheIDToSup; do rm $GPATH/db/bk-daily.json-$i rm $GPATH/cache/bk-walletsUp-$i done fi }