Add soldes; Adapt rest of meca

This commit is contained in:
poka 2020-09-15 16:50:15 +02:00
parent e5c68db1f1
commit 91ae4b040d
4 changed files with 53 additions and 70 deletions

View File

@ -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')
}

View File

@ -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')"

19
test.sh
View File

@ -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

View File

@ -21,13 +21,13 @@ Nombre total de wallet: <b>_nbrTotalWallets</b> <a href="/graph/nbr_wallets.htm
Nombre de membres: <b>_nbrMembers</b> (_pourcentMbrs%)
Nombre de simple portefeuille: <b>_nbrSimpleWallets</b> (_pourcentWallets%)
---
Reçus simples portefeuille: <b>_txInSimple Ḡ1</b> <a href="/graph/recus.html">Voir le graphique</a>
Envoyé simples portefeuille: <b>_txOutSimple Ḡ1</b>
Soldes simples portefeuille: <b>_soldeSimple Ḡ1</b> (_pourcentSimpleWallet% de la masse monétaire totale)
Reçus simples portefeuille: <b>_sumRW Ḡ1</b> <a href="/graph/recus.html">Voir le graphique</a>
Envoyé simples portefeuille: <b>_sumSW Ḡ1</b>
Soldes simples portefeuille: <b>_soldeW Ḡ1</b> (_pourcentSimpleWallet% de la masse monétaire totale)
---
Reçus membres: <b>_txInMembers Ḡ1</b> (sans les DU) <a href="/graph/recus.html">Voir le graphique</a>
Envoyé membres: <b>_txOutMembers Ḡ1</b>
Soldes membres: <b>_soldeMembers Ḡ1</b> (sans les DU)
Reçus membres: <b>_sumRM Ḡ1</b> (sans les DU) <a href="/graph/recus.html">Voir le graphique</a>
Envoyé membres: <b>_sumSM Ḡ1</b>
Soldes membres: <b>_soldeM Ḡ1</b> (sans les DU)
---
Masse monétaire: <b>_monetaryMass Ḡ1</b>