g1-stats/lib/functions.sh

126 lines
5.6 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..."
simpleWallets=$(echo "$wallets" | grep -v "$membresPubkeys")
}
web() {
[ ! -d $WEBPATH/history/ ] && mkdir -p $WEBPATH/history/
[ ! -d $WEBPATH/graph/ ] && mkdir -p $WEBPATH/graph/
[ ! -d $WEBPATH/css ] && cp -r $SCRIPTPATH/tpl/css $WEBPATH/
[ ! -d $WEBPATH/js ] && cp -r $SCRIPTPATH/tpl/js $WEBPATH/
cp $SCRIPTPATH/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/wallets-g1.txt
echo -e "$membresPubkeys" | sed 's/ /\n/g' > $WEBPATH/wallets-g1-membres.txt
echo -e "$simpleWallets" > $WEBPATH/wallets-g1-simple.txt
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-team2.svg/..\/logo-axiom-team2.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
# Export JSON for graph
source $SCRIPTPATH/lib/transform_json.sh
# chown www-data for nginx needs
chown -R www-data:www-data $WEBPATH >/dev/null 2>&1
}
sumSoldes() {
sumRWBrut=$(jq -r '.[].rWallets' db/recus.json | awk '{ SUM += $1} END { printf "%.2f", SUM }')
sumRMBrut=$(jq -r '.[].rMembres' db/recus.json | awk '{ SUM += $1} END { printf "%.2f", SUM }')
sumRTBrut=$(jq -r '.[] | .rWallets, .rMembres' db/recus.json | awk '{ SUM += $1} END { printf "%.2f", SUM }')
sumSWBrut=$(jq -r '.[].sWallets' db/recus.json | awk '{ SUM += $1} END { printf "%.2f", SUM }')
sumSMBrut=$(jq -r '.[].sMembres' db/recus.json | awk '{ SUM += $1} END { printf "%.2f", SUM }')
sumSTBrut=$(jq -r '.[] | .sWallets, .sMembres' db/recus.json | awk '{ SUM += $1} END { printf "%.2f", SUM }')
soldeWBrut=$(echo "$sumRWBrut-$sumSWBrut" | bc)
soldeMBrut=$(echo "$sumRMBrut-$sumSMBrut" | bc)
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 ###
monetaryMass=$(curl -s ${DUNITER}/blockchain/current | jq .monetaryMass)
monetaryMassBrut=$(echo "scale=2; ($monetaryMass/100)/1" | bc)
monetaryMass=$(echo "$monetaryMassBrut" | tr . , | 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 | tr . ,)
}
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 -e "\n ---\n"
echo "Noeud: $DUNITER"
echo "Nombre total de wallet: $nbrTotalWallets"
echo "Nombre de membres: $nbrMembers (${pourcentMbrs}%)"
echo "Nombre de simple portefeuille: $nbrSimpleWallets (${pourcentWallets}%)"
echo -e "\n ---\n"
echo "Reçus Wallets: $sumRW"
echo "Reçus Membres: $sumRM"
echo "Reçus Total: $sumRT"
echo -e " ---"
echo "Envoyé Wallets: $sumSW"
echo "Envoyé Membres: $sumSM"
echo "Envoyé Total: $sumST"
echo -e " ---"
echo "Solde Wallets: $soldeW"
echo "Solde Membres: $soldeM"
echo -e " ---"
echo -e "Masse Monétaire:\t $monetaryMass Ḡ1"
echo -e "\n ---\n Analyse\n ---"
echo -e "$sleepyG1% des Ḡ1 n'ont jamais été utilisés."
}