g1-stats/lib/functions.sh

130 lines
5.2 KiB
Bash
Executable File

#!/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,cum-daily.json} $WEBPATH/data/
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/_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 > /dev/null
sumRW=$(echo $sumRWBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
sumRM=$(echo $sumRMBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
sumRT=$(echo $sumRTBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
sumSW=$(echo $sumSWBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
sumSM=$(echo $sumSMBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
sumST=$(echo $sumSTBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
soldeW=$(echo $soldeWBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
soldeM=$(echo $soldeMBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
### Calcul de la masse monétaire et du pourcentage de Ḡ1 sur les simples portefeuilles
monetaryMassBrut=$($GPATH/explorer.sh mass)
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."
}