142 lines
5.9 KiB
Bash
Executable File
142 lines
5.9 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/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/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 $GPATH/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' $jsonFile | awk '{ SUM += $1} END { printf "%.2f", SUM }')
|
|
sumRMBrut=$(jq -r '.[].rMembers' $jsonFile | awk '{ SUM += $1} END { printf "%.2f", SUM }')
|
|
sumRTBrut=$(jq -r '.[] | .rWallets, .rMembers' $jsonFile | awk '{ SUM += $1} END { printf "%.2f", SUM }')
|
|
sumSWBrut=$(jq -r '.[].sWallets' $jsonFile | awk '{ SUM += $1} END { printf "%.2f", SUM }')
|
|
#sumSWBrut=$(jq -n '[inputs | .[].sWallets] | reduce .[] as $num (0; .+$num)' $jsonFile | xargs printf %.2f | tr ',' '.')
|
|
sumSMBrut=$(jq -r '.[].sMembers' $jsonFile | awk '{ SUM += $1} END { printf "%.2f", SUM }')
|
|
sumSTBrut=$(jq -r '.[] | .sWallets, .sMembers' $jsonFile | 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 ###
|
|
monetaryMassBrut=$(curl -s ${DUNITER}/blockchain/current | jq .monetaryMass | xargs -i echo "scale=2; ({}/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 "
|
|
---
|
|
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."
|
|
}
|