From 91ae4b040db25a44fd78dd26334b95d8ec64118f Mon Sep 17 00:00:00 2001 From: poka Date: Tue, 15 Sep 2020 16:50:15 +0200 Subject: [PATCH] Add soldes; Adapt rest of meca --- functions.sh | 53 +++++++++++++++++++++----------------------------- g1-stats.sh | 39 ++++++++++++++++++++++++------------- test.sh | 19 ------------------ tpl/index.html | 12 ++++++------ 4 files changed, 53 insertions(+), 70 deletions(-) delete mode 100755 test.sh diff --git a/functions.sh b/functions.sh index a793088..d647d13 100755 --- a/functions.sh +++ b/functions.sh @@ -3,20 +3,19 @@ loopWalletUp() { local REGEX_PUBKEYS="[a-zA-Z0-9]{42,44}" - # On vérifie le cache existant et on démarre au bloc dernier bloc en cache + # On vérifie le cache existant et on démarre dernier bloc en cache if ls $SCRIPTPATH/cache/walletsUp-* > /dev/null 2>&1; then local startFile=$(ls $SCRIPTPATH/cache/walletsUp-* | tail -n1) local startIter=$(echo "$startFile" | awk -F '-' '{ print $NF }') local startBloc=$(head -n1 "$startFile") - [[ $lastBloc == $startBloc ]] && return 10 - wallets=$(tail -n +2 "$startFile")$'\n' - local iter=$startIter + wallets=$(echo -e "$wallets" | sort -u | awk 'NF') + + [[ $lastBloc == $startBloc ]] && return 10 rm $startFile else local startIter=0 local startBloc=0 - local iter=0 echo "[" > $SCRIPTPATH/db/recus.json fi @@ -24,15 +23,15 @@ loopWalletUp() { for i in ${!TXBLOCKS[*]}; do [[ -z ${TXBLOCKS[$i]} ]] && break [[ $startIter != 0 && $i -le $startIter ]] && continue -# [[ ${TXBLOCKS[$i]} -lt 5243 ]] && continue #kopa +# [[ ${TXBLOCKS[$i]} -lt 5243 ]] && continue #kopa Debug sleep 0.05 # Récupère la date et l'objet transaction du bloc courant - WALLETS0=$(curl -s ${DUNITER}/blockchain/block/${TXBLOCKS[$i]}) - until blocBrut=$(echo $WALLETS0 | jq -r '.medianTime, .transactions[]' 2>/dev/null); do - [[ $isWeb != "web" ]] && echo -e "iter $iter \n$WALLETS0" | tee -a debug.log + blocFull=$(curl -s ${DUNITER}/blockchain/block/${TXBLOCKS[$i]}) + until blocBrut=$(echo $blocFull | jq -r '.medianTime, .transactions[]' 2>/dev/null); do + [[ $isWeb != "web" ]] && echo -e "i: $i\n$blocFull" | tee -a debug.log sleep 2 - WALLETS0=$(curl -s ${DUNITER}/blockchain/block/${TXBLOCKS[$i]}) + blocFull=$(curl -s ${DUNITER}/blockchain/block/${TXBLOCKS[$i]}) done [[ -z "$blocBrut" ]] && continue bloc=${TXBLOCKS[$i]} @@ -139,11 +138,7 @@ loopWalletUp() { echo "Date: $blockDate" fi - # Debug # - echo -e "i: $i\niter: $iter\nBloc: $bloc\n---" >> debug.log - ((iter++)) -# [[ $i -ge 10 ]] && break #kopaa - +# [[ $i -ge 10 ]] && break #kopa Debug done jsonify @@ -155,7 +150,6 @@ loopWalletUp() { # On supprime les doublons et les lignes vides wallets=$(echo -e "$wallets" | sort -u | awk 'NF')$'\n' # On écrit les pubkeys avec transaction dans un fichier de cache pour la prochaine itération -# ((iter--)) [[ ! -d $SCRIPTPATH/cache ]] && mkdir $SCRIPTPATH/cache echo -e "$lastBloc\n$wallets" > $SCRIPTPATH/cache/walletsUp-$i } @@ -171,8 +165,7 @@ for i in ${MEMBERS[*]}; do clear echo "Heure de début: $startTime" echo - echo "Scan en cours: 100% - $bloc/$lastBloc" - echo "Ajouts des comptes membres ... $progress%" + echo "Ajouts des comptes membres sans transaction reçus ... $progress%" fi fi @@ -205,12 +198,12 @@ web() { # sed -i "s/_node/$DUNITER/g" $indexhtml sed -i "s/_heure/$startTime/g" $indexhtml sed -i "s/_day/$dayP/g" $indexhtml - sed -i "s/_txInSimple/$txInSimple/g" $indexhtml - sed -i "s/_txOutSimple/$txOutSimple/g" $indexhtml - sed -i "s/_soldeSimple/$soldeSimple/g" $indexhtml - sed -i "s/_txInMembers/$txInMembers/g" $indexhtml - sed -i "s/_txOutMembers/$txOutMembers/g" $indexhtml - sed -i "s/_soldeMembers/$soldeMembers/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 @@ -245,6 +238,9 @@ sumSoldes() { sumSMBrut=$(jq -r '.[].sMembres' $1 | awk '{ SUM += $1} END { printf "%.2f", SUM }') sumSTBrut=$(jq -r '.[] | .sWallets, .sMembres' $1 | 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') @@ -252,11 +248,6 @@ sumSoldes() { sumSM=$(echo $sumSMBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') sumST=$(echo $sumSTBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') - echo "Reçus Wallets: $sumRW" - echo "Reçus Membres: $sumRM" - echo "Reçus Total: $sumRT" - echo "" --- - echo "Envoyé Wallets: $sumRW" - echo "Envoyé Membres: $sumRM" - echo "Envoyé Total: $sumRT" + soldeW=$(echo $soldeWBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') + soldeM=$(echo $soldeMBrut | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') } diff --git a/g1-stats.sh b/g1-stats.sh index cb225be..4fbdc8b 100755 --- a/g1-stats.sh +++ b/g1-stats.sh @@ -9,7 +9,6 @@ SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" if [[ -e $SCRIPTPATH/.env ]]; then source $SCRIPTPATH/.env; else echo "Veuillez créer votre fichier .env inspiré de .env.example" && exit 1; fi -source $SCRIPTPATH/functions.sh ### Initialisation des données ### startTime=$(date +'%H:%M') @@ -23,11 +22,14 @@ TXBLOCKS=$(cat $SCRIPTPATH/db/txblocs) #TXBLOCKS=$(curl -s ${DUNITER}/blockchain/with/tx | jq '.result.blocks[]') TXBLOCKS=($(echo "$TXBLOCKS" | sort -hu | awk '{printf $1" "}')) unset 'TXBLOCKS[${#TXBLOCKS[@]}-1]' -MEMBERS=$(curl -s ${DUNITER}/wot/members | jq -r '.results[].pubkey') +MEMBERS=($(curl -s ${DUNITER}/wot/members | jq -r '.results[].pubkey')) nbrMembers=${#MEMBERS[@]} lastBloc=${TXBLOCKS[-1]} isWeb=$1 +### On source les fonctions ### +source $SCRIPTPATH/functions.sh + ### Extraction des adresses Ḡ1 actives ### loopWalletUp @@ -35,9 +37,9 @@ loopWalletUp sumSoldes db/recus.json -endDate=$(date +'%H:%M') -echo "Heure de fin: $endDate" -exit +#endDate=$(date +'%H:%M') +#echo "Heure de fin: $endDate" +#exit ### Ajout des membres sans transaction au fichier tampon ### @@ -49,15 +51,24 @@ nbrSimpleWallets=$(echo "$nbrTotalWallets-$nbrMembers" | bc) pourcentMbrs=$(echo "scale=1; $nbrMembers*100/$nbrTotalWallets/1" | bc) pourcentWallets=$(echo "scale=1; $nbrSimpleWallets*100/$nbrTotalWallets/1" | bc) -### Affichage du nombre de wallets ### +### Affichage des stats ### 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 "Extraction wallets membres / Simples portefeuille" -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 " ---" ### Isolation des simples portefeuilles ### simpleWallets="$wallets" @@ -73,21 +84,21 @@ monetaryMass=$(curl -s ${DUNITER}/blockchain/current | jq .monetaryMass) monetaryMassBrut=$(echo -e "scale=2; ($monetaryMass/100)/1" | bc) monetaryMass=$(echo "$monetaryMassBrut" | tr . , | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') -soldeWalletMembers=$(echo "scale=2; $soldeMembersBrut+$soldeSimpleBrut" | bc | tr . , | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') -pourcentSimpleWallet=$(echo "scale=1; $soldeSimpleBrut*100/$monetaryMassBrut/1" | bc) +soldeWalletMembers=$(echo "scale=2; $soldeMBrut+$soldeWBrut" | bc | tr . , | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') +pourcentSimpleWallet=$(echo "scale=1; $soldeWBrut*100/$monetaryMassBrut/1" | bc) -echo -e "\n ---\n" -echo -e "Solde des membres (sans DU):\t $soldeWalletMembers" +echo -e " ---" echo -e "Masse Monétaire:\t $monetaryMass Ḡ1" ### Renseignement de l'index web et indexation de l'historique ### [[ $isWeb == "web" ]] && web # Analyse -echo -e "\n ---\n Analyse\n ---\n" -sleepyG1=$(echo -e "scale=1; 100-$txOutT*100/$monetaryMassBrut" | bc | tr . ,) +echo -e "\n ---\n Analyse\n ---" +sleepyG1=$(echo -e "scale=1; 100-$sumSTBrut*100/$monetaryMassBrut" | bc | tr . ,) echo -e "$sleepyG1% des Ḡ1 n'ont jamais été utilisés." ### Fin de programme ### day=$(date +'%d-%m-%y') +echo -e " ---" echo "$day - Heure de fin: $(date +'%H:%M')" diff --git a/test.sh b/test.sh deleted file mode 100755 index 53b7528..0000000 --- a/test.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -tab="a -b -c -d -e" -#tab=($tab) -tab=($(cat db/recus.json)) - -start=10300 - -for i in "${!tab[@]}"; do - [[ $i -le $start ]] && continue - - echo "tab opt: ${tab[$i]}" - echo "i: $i" - -done diff --git a/tpl/index.html b/tpl/index.html index 48a53bf..58e96c5 100644 --- a/tpl/index.html +++ b/tpl/index.html @@ -21,13 +21,13 @@ Nombre total de wallet: _nbrTotalWallets Voir le graphique -Envoyé simples portefeuille: _txOutSimple Ḡ1 -Soldes simples portefeuille: _soldeSimple Ḡ1 (_pourcentSimpleWallet% de la masse monétaire totale) +Reçus simples portefeuille: _sumRW Ḡ1 Voir le graphique +Envoyé simples portefeuille: _sumSW Ḡ1 +Soldes simples portefeuille: _soldeW Ḡ1 (_pourcentSimpleWallet% de la masse monétaire totale) --- -Reçus membres: _txInMembers Ḡ1 (sans les DU) Voir le graphique -Envoyé membres: _txOutMembers Ḡ1 -Soldes membres: _soldeMembers Ḡ1 (sans les DU) +Reçus membres: _sumRM Ḡ1 (sans les DU) Voir le graphique +Envoyé membres: _sumSM Ḡ1 +Soldes membres: _soldeM Ḡ1 (sans les DU) --- Masse monétaire: _monetaryMass Ḡ1