diff --git a/lib/functions.sh b/lib/functions.sh index 4b212e0..1f8ec0e 100755 --- a/lib/functions.sh +++ b/lib/functions.sh @@ -21,8 +21,6 @@ addMembers() { done [[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1 popd >/dev/null - - echo "$wallets" > tata } web() { diff --git a/lib/scanTxWallets.sh b/lib/scanTxWallets.sh index 16b3b83..e855e6b 100755 --- a/lib/scanTxWallets.sh +++ b/lib/scanTxWallets.sh @@ -12,12 +12,14 @@ scanTxWallets() { local walletsAuj=$(cat "$startFile" | sed -e '1,/---/d' | sed '/---/Q' | grep .)$'\n' local nbrMembersYesterday=$(cat "$startFile" | sed -e '1,/---/d' | sed -e '1,/---/d' | sed '/---/Q' | grep . | cut -d '|' -f 1) local blockDateLast=$(cat "$startFile" | sed -e '1,/---/d' | sed -e '1,/---/d' | sed '/---/Q' | grep . | cut -d '|' -f 2) + local nbrDays=$(cat "$startFile" | sed -e '1,/---/d' | sed -e '1,/---/d' | sed '/---/Q' | grep . | cut -d '|' -f 3) - [[ $lastBloc == $startBloc ]] && return + ! ($debug) && [[ $lastBloc == $startBloc ]] && return rm $startFile else local startIter=0 local startBloc=0 + local nbrDays=1 echo "[" > $jsonFile fi @@ -26,7 +28,7 @@ scanTxWallets() { local startExec=$(($(date +%s%N)/1000000)) local bloc=${TXBLOCKS[$i]} [[ -z $bloc ]] && break -# [[ $i -lt 1193 ]] && continue #kopa +# [[ $i -lt 1190 ]] && continue #kopa # Récupère la date et l'objet transaction du bloc courant local blocFull=$(curl -s ${DUNITER}/blockchain/block/$bloc) @@ -125,11 +127,8 @@ scanTxWallets() { unset walletsAujTmp # Obtention du dividende à ce block - local j - for j in $udBlocs; do - [[ $j -ge $bloc ]] && break - lastUdBloc=$j - done + lastUdBloc=$(head -n$nbrDays <<<"$udBlocs" | tail -n1) + [[ -z $lastUdBloc ]] && lastUdBloc=$(echo "$udBlocs" | tail -n1) local blocUD=$(curl -s ${DUNITER}/blockchain/block/$lastUdBloc | jq '.membersCount,.dividend') UDToday=$(echo "$blocUD" | tail -n1 | xargs -i echo "scale=2; {}/100" | bc) @@ -152,10 +151,28 @@ scanTxWallets() { # Si il manque un jour sans transaction, on le génère dateYesterday=$(awk -F '-' '{ print $3"-"$2"-"$1 }' <<<$blockDate | xargs -i date -d "{}-1day" '+%d-%m-%y') - if [[ $dateYesterday != $blockDateLast ]];then + if [[ $dateYesterday != $blockDateLast ]];then blockDateLast=$dateYesterday + ((nbrDays++)) + + # Obtention du dividende à ce block + lastUdBloc=$(head -n$nbrDays <<<"$udBlocs" | tail -n1) + + [[ -z $lastUdBloc ]] && lastUdBloc=$(echo "$udBlocs" | tail -n1) + local blocUD=$(curl -s ${DUNITER}/blockchain/block/$lastUdBloc | jq '.membersCount,.dividend') + UDToday=$(echo "$blocUD" | tail -n1 | xargs -i echo "scale=2; {}/100" | bc) + + # Calcul du nombre de nouveaux membres à ce block + nbrMembersTotalToday=$(echo "$blocUD" | head -n1) + [[ -z $nbrMembersYesterday ]] && nbrMembersYesterday=0 + nbrMembersToday=$(($nbrMembersTotalToday-$nbrMembersYesterday)) + jsonify + nbrMembersYesterday=$nbrMembersTotalToday + unset nbrMembersToday fi + echo "$blockDate - $nbrDays - $bloc - $lastUdBloc" >> debug.log + ((nbrDays++)) fi unset recusJson @@ -171,12 +188,12 @@ scanTxWallets() { #valueReceivedM=$(($valueReceivedM+$value)) [[ -z $valueReceivedM ]] && valueReceivedM=0 valueReceivedM=$(echo "$valueReceivedM+$value" | bc) - pubkeyReceiveM+=${pubkey}\\n + pubkeyReceiveM+=${pubkey}\\n else #valueReceivedW=$(($valueReceivedW+$value)) [[ -z $valueReceivedW ]] && valueReceivedW=0 valueReceivedW=$(echo "$valueReceivedW+$value" | bc) - pubkeyReceiveW+=${pubkey}\\n + pubkeyReceiveW+=${pubkey}\\n fi done @@ -203,7 +220,7 @@ scanTxWallets() { local endExec=$(($(date +%s%N)/1000000)) local timeExec=$(echo "scale=3; ($endExec-$startExec)/1000" | bc) #[[ -z $midTimeExec ]] && midTimeExec=$timeExec - [[ $incExec9 == 50 || $incExec == 1 ]] && incExec=1 && midTimeExecCum=0 + [[ $incExec == 1 ]] && midTimeExecCum=0 local midTimeExecCum=$(echo "scale=3; $midTimeExecCum+$timeExec" | bc) local midTimeExec=$(echo "scale=3; $midTimeExecCum/$incExec" | bc) ((incExec++)) @@ -211,12 +228,12 @@ scanTxWallets() { tput cuu1;tput el;tput cuu1;tput el;tput cuu1;tput el;tput cuu1;tput el;tput cuu1;tput el; # Clear the last view echo -e "Heure de début: $startTime\n \rScan en cours: $progress% - $bloc/$lastBloc (Boucle $i) - \rDate: $blockDate + \rDate: $blockDate (Jour $nbrDays) \rTemps d'execution: $midTimeExec" else [[ -z $firstScan ]] && echo "Scan des blocs avec transactions en cours ..." && local firstScan=true fi -# [[ $i -ge 35949 ]] && break #kopa +# [[ $i -ge 1220 ]] && break #kopa done [[ $blockDateLast == $blockDate ]] && applyToday @@ -229,5 +246,5 @@ scanTxWallets() { wallets=$(echo -e "$wallets" | sort -u | awk 'NF') # On écrit les pubkeys avec transaction dans un fichier de cache pour la prochaine itération [[ ! -d $SCRIPTPATH/cache ]] && mkdir $SCRIPTPATH/cache - echo -e "$lastBloc\n$wallets\n---\n$walletsAuj\n---\n$nbrMembersYesterday|$blockDateLast" > $SCRIPTPATH/cache/walletsUp-$i + echo -e "$lastBloc\n$wallets\n---\n$walletsAuj\n---\n$nbrMembersYesterday|$blockDateLast|$nbrDays" > $SCRIPTPATH/cache/walletsUp-$i }