#!/bin/bash ################################################################################ # Author: Poka (poka@p2p.legal) # Version: 0.2.0 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) # Git: https://git.p2p.legal/axiom-team/g1-stats ################################################################################ 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 ### Initialisation des données ### startTime=$(date +'%H:%M') day=$(date +'%y-%m-%d') dayP=$(date +'%d-%m-%y') indexhtml="$WEBPATH/index.html" echo -e "\n############# $day à $startTime #############\n" [[ -z $(which jq) || -z $(which bc) ]] && apt update && apt install jq bc echo "Initialisation ..." TXBLOCKS=$(cat $SCRIPTPATH/db/txblocs) #kopa #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=($(cat db/membresPubkeys)) #kopa nbrMembers=${#MEMBERS[@]} lastBloc=${TXBLOCKS[-1]} isWeb=$1 ### On source les fonctions ### source $SCRIPTPATH/functions.sh ### Extraction des adresses Ḡ1 actives ### loopWalletUp ### Calcul la somme des soldes portefeuilles et membres ### sumSoldes db/recus.json #endDate=$(date +'%H:%M') #echo "Heure de fin: $endDate" #exit ### Ajout des membres sans transaction au fichier tampon ### loopMembers ### Calcul du nombre de wallets ### nbrTotalWallets=$(echo "$wallets" | wc -l) nbrSimpleWallets=$(echo "$nbrTotalWallets-$nbrMembers" | bc) pourcentMbrs=$(echo "scale=1; $nbrMembers*100/$nbrTotalWallets/1" | bc) pourcentWallets=$(echo "scale=1; $nbrSimpleWallets*100/$nbrTotalWallets/1" | bc) ### 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 "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" echo "Isolation des simples portefeuilles..." for i in ${MEMBERS[@]}; do simpleWallets=$(echo "$simpleWallets" | grep -v "$i") done ##TODO: Get Solde from JSON Sum for next ... kopa ### 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 -e "scale=2; ($monetaryMass/100)/1" | bc) monetaryMass=$(echo "$monetaryMassBrut" | tr . , | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta') 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 " ---" echo -e "Masse Monétaire:\t $monetaryMass Ḡ1" # Analyse 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." ### Renseignement de l'index web et indexation de l'historique ### source $SCRIPTPATH/functions.sh # On source les fonctions de nouveau [[ $isWeb == "web" ]] && web ### Fin de programme ### day=$(date +'%d-%m-%y') echo -e " ---" echo "$day - Heure de fin: $(date +'%H:%M')"