Compare commits
No commits in common. "master" and "solidity" have entirely different histories.
|
@ -1,4 +1,3 @@
|
|||
DUNITER="https://duniter-g1.p2p.legal" # Adresse du noeud Duniter qui sera scanné
|
||||
ESNODE="http://g1.data.duniter.fr" # Adresse du noeud ElasticSearch qui sera scanné (Si nécessaire)
|
||||
WEBPATH="/var/www/g1-stats" # Dossier qui sera créé si vous choisissez l'option web pour la mise en ligne des données (nécessite une configuration apache ou nginx)
|
||||
SILKAJ="" # Chemin vers Silkaj (Récupéré automatiquement si non renseigné)
|
||||
|
|
|
@ -6,5 +6,3 @@ debug.log
|
|||
bk-debug.log
|
||||
bk
|
||||
.gitPushToMaster.sh
|
||||
walletsBalance.log
|
||||
|
||||
|
|
|
@ -65,4 +65,3 @@ Par exemple pour l'exécuter toutes les 3 heures:
|
|||
TERM=xterm # Nécessaire pour la gestion tput des sorties log
|
||||
0 */3 * * * /path/to/script/g1-stats.sh web >> /var/log/g1-stats.log 2>&1
|
||||
```
|
||||
|
||||
|
|
|
@ -128,15 +128,6 @@ anniversary() {
|
|||
jq "$jqNewUD" <<<$jsonData
|
||||
}
|
||||
|
||||
today() {
|
||||
todayDate=$(date +'%d-%m-%y')
|
||||
jq '.[] | select(.date=="'$todayDate'")' <<<$jsonData
|
||||
}
|
||||
|
||||
update() {
|
||||
curl -s https://g1-stats.axiom-team.fr/data/daily.json > $jsonFile && echo "Data have been updated" || echo "Error: Can't update data"
|
||||
}
|
||||
|
||||
print() {
|
||||
jq . <<<"$jsonData"
|
||||
}
|
||||
|
|
|
@ -30,7 +30,6 @@ if $debug; then
|
|||
echo # To clean next progress view
|
||||
else
|
||||
TXBLOCKS=$(curl -s ${DUNITER}/blockchain/with/tx | jq '.result.blocks[]')
|
||||
# TXBLOCKS=$(cat $GPATH/tx.json | jq '.result.blocks[]')
|
||||
echo "TXBLOCKS OK"
|
||||
membresPubkeys=$(curl -s ${DUNITER}/wot/members | jq -r '.results[].pubkey')
|
||||
tput cuu1;tput el;
|
||||
|
@ -52,6 +51,7 @@ source $GPATH/lib/scanTxWallets.sh
|
|||
|
||||
### Extraction des adresses Ḡ1 actives
|
||||
scanTxWallets
|
||||
|
||||
### Calcul la somme des soldes portefeuilles et membres
|
||||
sumSoldes
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ web() {
|
|||
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
|
||||
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"
|
||||
|
||||
|
@ -81,6 +81,7 @@ web() {
|
|||
|
||||
sumSoldes() {
|
||||
source $GPATH/explorer.sh -c > /dev/null
|
||||
|
||||
sumRW=$(day | jq '.rWallets' | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
|
||||
sumRM=$(day | jq '.rMembers' | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
|
||||
sumRT=$(total | jq '.totalExchange' | sed ':a;s/\B[0-9]\{3\}\>/ &/;ta')
|
||||
|
@ -132,21 +133,3 @@ Analyse
|
|||
---
|
||||
$sleepyG1% des Ḡ1 n'ont jamais été utilisés."
|
||||
}
|
||||
|
||||
rmOldCache() {
|
||||
keepCache=20
|
||||
listCache=$(ls -l $GPATH/db/bk-* | awk '{ print $9 }')
|
||||
listID=$(echo "$listCache" | awk -F '-' '{ print $NF }')
|
||||
|
||||
nbrID=$(echo "$listID" | wc -l)
|
||||
nbrToSup=$((nbrID-$keepCache))
|
||||
|
||||
if [[ $nbrToSup -ge 0 ]]; then
|
||||
cacheIDToSup=$(echo "$listID" | head -n$nbrToSup)
|
||||
|
||||
for i in $cacheIDToSup; do
|
||||
rm $GPATH/db/bk-daily.json-$i
|
||||
rm $GPATH/cache/bk-walletsUp-$i
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -13,8 +13,8 @@ scanTxWallets() {
|
|||
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)
|
||||
#! ($debug) &&
|
||||
[[ $lastBloc -le $startBloc || $startIter -ge ${#TXBLOCKS[@]} ]] && echo "$lastBloc -le $startBloc || $startIter -ge ${#TXBLOCKS[@]}" && return
|
||||
#! ($debug) &&
|
||||
[[ $lastBloc -le $startBloc || $startIter -ge ${#TXBLOCKS[@]} ]] && return
|
||||
rm $startFile
|
||||
else
|
||||
local startIter=0
|
||||
|
@ -24,7 +24,6 @@ scanTxWallets() {
|
|||
fi
|
||||
incExec=1
|
||||
for ((i=$startIter; i<${#TXBLOCKS[@]}; i++)); do
|
||||
local nbrIteration=$i
|
||||
local startExec=$(($(date +%s%N)/1000000))
|
||||
local bloc=${TXBLOCKS[$i]}
|
||||
[[ -z $bloc ]] && break
|
||||
|
@ -32,11 +31,6 @@ scanTxWallets() {
|
|||
|
||||
# Récupération du bloc courant
|
||||
local blocFull=$(curl -s ${DUNITER}/blockchain/block/$bloc)
|
||||
while [[ $(jq -r '.ucode' <<<"$blocFull") == 1006 ]]; do
|
||||
[[ $isWeb != "web" ]] && echo -e "i: $i\n$blocFull"
|
||||
sleep 2
|
||||
blocFull=$(curl -s ${DUNITER}/blockchain/block/$bloc)
|
||||
done
|
||||
until blocBrut=$(jq -r '.' <<<"$blocFull" 2>/dev/null); do
|
||||
[[ $isWeb != "web" ]] && echo -e "i: $i\n$blocFull"
|
||||
sleep 2
|
||||
|
@ -44,15 +38,8 @@ scanTxWallets() {
|
|||
done
|
||||
[[ -z "$blocBrut" ]] && continue
|
||||
|
||||
echo "$blocFull" > debugTmp.txt
|
||||
echo "-----------------------------------" >> debugTmp.txt
|
||||
echo "$blocBrut" >> debugTmp.txt
|
||||
|
||||
# Récupération de la date du block
|
||||
local blockDate=$(jq '.medianTime' <<<"$blocBrut")
|
||||
#kopa echo "$blocBrut"
|
||||
# echo "---"
|
||||
# echo "$blockDate"
|
||||
blockDate=$(date -d"@$blockDate" +%d-%m-%y -u)
|
||||
local walletsReceivedBloc=$(jq '.transactions[]' <<<"$blocBrut")
|
||||
|
||||
|
@ -151,23 +138,6 @@ scanTxWallets() {
|
|||
nbrMembersToday=$(($nbrMembersTotalToday-$nbrMembersYesterday))
|
||||
|
||||
jsonify
|
||||
|
||||
# Mise en cache périodique
|
||||
|
||||
## On supprime les doublons et les lignes vides
|
||||
wallets=$(echo -e "$wallets" | sort -u | awk 'NF')
|
||||
|
||||
# if ((i % 50 == 0)); then #kopaa
|
||||
echo -e "$bloc\n$wallets\n---\n$walletsAuj\n---\n$nbrMembersYesterday|$blockDateLast|$nbrDays" > $GPATH/cache/bk-walletsUp-$nbrIteration
|
||||
cp $GPATH/db/daily.json $GPATH/db/bk-daily.json-$nbrIteration
|
||||
|
||||
## Retire la dernière virgule et ajoute le crochet de fin de JSON
|
||||
sed -i '$ s/,//g' $GPATH/db/bk-daily.json-$nbrIteration
|
||||
echo "]" >> $GPATH/db/bk-daily.json-$nbrIteration
|
||||
|
||||
## On supprime le vieux cache
|
||||
rmOldCache
|
||||
# fi
|
||||
}
|
||||
|
||||
if [[ -n $blockDateLast && $blockDateLast != $blockDate ]]; then
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Récupération du chemin absolut du répertoir du script actuel
|
||||
GPATH="$( cd "$(dirname "$0")" ; pwd -P )/.."
|
||||
[[ ! -f $GPATH/.env ]] && cp $GPATH/.env.example $GPATH/.env
|
||||
source $GPATH/.env
|
||||
|
||||
log="/var/log/geoloc-members.log"
|
||||
echo "### $(date +'%d-%m-%y - %H:%M') ###" >> $log
|
||||
|
||||
result=$($JAKLIS geolocProfiles)
|
||||
|
||||
finalResult=$(echo "$result" | jq .)
|
||||
RESULT=$?
|
||||
|
||||
if [ $RESULT -eq 0 ]; then
|
||||
echo "$finalResult" > $WEBPATH/data/geoloc-members.json
|
||||
echo "OK" >> $log
|
||||
else
|
||||
echo "Failed" >> $log
|
||||
fi
|
||||
|
||||
echo "---" >> $log
|
|
@ -1,66 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Récupération du chemin absolut du répertoir du script actuel
|
||||
GPATH="$( cd "$(dirname "$0")" ; pwd -P )/.."
|
||||
[[ ! -f $GPATH/.env ]] && cp $GPATH/.env.example $GPATH/.env
|
||||
source $GPATH/.env
|
||||
node=$(cut -d '/' -f3 <<<"$DUNITER")
|
||||
|
||||
#Check if Jaklis is installed
|
||||
[[ -z $JAKLIS ]] && JAKLIS=$(which silkaj)
|
||||
[[ -z $JAKLIS ]] && echo "Erreur: Vous devez installer Jaklis." && exit 1
|
||||
|
||||
work() {
|
||||
for i in $wallets; do
|
||||
exec() {
|
||||
jsonResult=$($JAKLIS idBalance -p $i 2>/dev/null)
|
||||
}
|
||||
exec
|
||||
while [[ $? == 1 ]]; do echo "Erreur $k: $i"; ((k++)); exec; done
|
||||
unset k
|
||||
|
||||
balance=$(echo "$jsonResult" | jq -r '.balance')
|
||||
[[ $balance == "null" ]] && balance="0"
|
||||
username=$(echo "$jsonResult" | jq -r '.idty.username')
|
||||
[[ $username == "null" ]] && username=""
|
||||
formatedBalance=$(printf "%-10s | %-45s | %-1s" $balance $i $username)
|
||||
|
||||
if [[ $1 == "members" ]]; then
|
||||
htmlBloc="$htmlBloc"$'\n'"<tr><td>$balance</td><td>$i</td><td><b>$username</b></td></tr>"
|
||||
unset username
|
||||
else
|
||||
htmlBloc="$htmlBloc"$'\n'"<tr><td>$balance</td><td>$i</td><td>$username</td></tr>"
|
||||
fi
|
||||
unset balance
|
||||
|
||||
echo "$formatedBalance" | tee -a /tmp/balance-g1.txt
|
||||
|
||||
totalBalance="$totalBalance"$'\n'"$formatedBalance"
|
||||
echo "$jsonResult" >> /home/poka/debugJsonForbes.log
|
||||
|
||||
# For tests only
|
||||
# [[ $i == "13fn6X3XWVgshHTgS8beZMo9XiyScx6MB6yPsBB5ZBia" ]] && break
|
||||
# [[ $i == "12JDJibbgZPRfD6Hoecg8rQRvCR5VYrMnqzfhQYmAr3k" ]] && break
|
||||
done
|
||||
}
|
||||
|
||||
wallets=$(cat $WEBPATH/data/wallets-g1-membres.txt 2>/dev/null)
|
||||
[[ -z $wallets ]] && wallets=$(curl -s https://g1-stats.axiom-team.fr/data/wallets-g1-membres.txt)
|
||||
work members && unset wallets
|
||||
wallets=$(cat $WEBPATH/data/wallets-g1-simple.txt 2>/dev/null)
|
||||
[[ -z $wallets ]] && wallets=$(curl -s https://g1-stats.axiom-team.fr/data/wallets-g1-simple.txt)
|
||||
work && unset wallets
|
||||
|
||||
totalBalance=$(sort -nr <<<$totalBalance)
|
||||
[[ ! -d $GPATH/db ]] && mkdir $GPATH/db
|
||||
grep . <<<"$totalBalance" > $GPATH/db/wallets_balance.txt && rm /tmp/balance-g1.txt
|
||||
|
||||
# Construct HTML
|
||||
cp $GPATH/tpl/css/wallets_balance.css $WEBPATH/css/
|
||||
cp $GPATH/tpl/js/wallets_balance.js $WEBPATH/js/
|
||||
cp $GPATH/tpl/wallets_balance.html $WEBPATH/data/wallets_balance.html
|
||||
|
||||
sort -Vr <<<"$htmlBloc" > /tmp/solde_g1_html.txt
|
||||
printf '%s\n' '/_LINE/r /tmp/solde_g1_html.txt' 1 '/_LINE/d' w | ed $WEBPATH/data/wallets_balance.html > /dev/null
|
||||
sed -i "0,/_DATE/s//$(date '+%d-%m-%Y')/" $WEBPATH/data/wallets_balance.html
|
||||
rm /tmp/solde_g1_html.txt
|
|
@ -4,9 +4,59 @@
|
|||
GPATH="$( cd "$(dirname "$0")" ; pwd -P )/.."
|
||||
[[ ! -f $GPATH/.env ]] && cp $GPATH/.env.example $GPATH/.env
|
||||
source $GPATH/.env
|
||||
node=$(cut -d '/' -f3 <<<"$DUNITER")
|
||||
|
||||
$JAKLIS listWallets > $WEBPATH/data/forbes.json
|
||||
#Check if Silkaj is installed
|
||||
[[ ! $(which silkaj) ]] && echo "Erreur: Vous devez installer Silkaj." && exit 1
|
||||
rm -f silkaj_error.log
|
||||
|
||||
date=$(date -d '+1 minute' +"%d/%m/%Y à %H:%M")
|
||||
work() {
|
||||
for i in $wallets; do
|
||||
exec() {
|
||||
balance=$(silkaj -p $node balance $i 2>/dev/null)
|
||||
}
|
||||
exec
|
||||
while [[ $? == 1 ]]; do echo "Erreur $k: $i" | tee -a silkaj_error.log; ((k++)); exec; done
|
||||
unset k
|
||||
balance=$(awk '/Total Quantitative =/ { print $4 }' <<<"$balance")
|
||||
|
||||
sed -i "/<div id=\"dataDate\">/!b;n;cCes données ont été actualisées le $date" $WEBPATH/data/search.html
|
||||
if [[ $1 == "members" ]]; then
|
||||
username=$(curl -m 20 -s $DUNITER/wot/members | jq -r --arg pubkey "$i" '.results[] | select(.pubkey==$pubkey) | .uid')
|
||||
formatedBalance=$(printf "%-10s | %-45s | %-1s" $balance $i $username)
|
||||
htmlBloc="$htmlBloc"$'\n'"<tr><td>$balance</td><td>$i</td><td>$username</td></tr>"
|
||||
unset username
|
||||
else
|
||||
formatedBalance=$(printf "%-10s | %-45s" $balance $i)
|
||||
htmlBloc="$htmlBloc"$'\n'"<tr><td>$balance</td><td>$i</td><td> </td></tr>"
|
||||
fi
|
||||
unset balance
|
||||
|
||||
echo "$formatedBalance" | tee -a /tmp/balance-g1.txt
|
||||
|
||||
totalBalance="$totalBalance"$'\n'"$formatedBalance"
|
||||
|
||||
# For tests only
|
||||
# [[ $i == "13fn6X3XWVgshHTgS8beZMo9XiyScx6MB6yPsBB5ZBia" ]] && break
|
||||
# [[ $i == "12JDJibbgZPRfD6Hoecg8rQRvCR5VYrMnqzfhQYmAr3k" ]] && break
|
||||
done
|
||||
}
|
||||
|
||||
wallets=$(cat $WEBPATH/data/wallets-g1-membres.txt 2>/dev/null)
|
||||
[[ -z $wallets ]] && wallets=$(curl -s https://g1-stats.axiom-team.fr/data/wallets-g1-membres.txt)
|
||||
work members && unset wallets
|
||||
wallets=$(cat $WEBPATH/data/wallets-g1-simple.txt 2>/dev/null)
|
||||
[[ -z $wallets ]] && wallets=$(curl -s https://g1-stats.axiom-team.fr/data/wallets-g1-simple.txt)
|
||||
work && unset wallets
|
||||
|
||||
totalBalance=$(sort -nr <<<$totalBalance)
|
||||
[[ ! -d $GPATH/db ]] && mkdir $GPATH/db
|
||||
grep . <<<"$totalBalance" > $GPATH/db/wallets_balance.txt && rm /tmp/balance-g1.txt
|
||||
|
||||
# Construct HTML
|
||||
cp $GPATH/tpl/css/wallets_balance.css $WEBPATH/css/
|
||||
cp $GPATH/tpl/js/wallets_balance.js $WEBPATH/js/
|
||||
cp $GPATH/tpl/wallets_balance.html $WEBPATH/data/wallets_balance.html
|
||||
|
||||
echo "$htmlBloc" > /tmp/solde_g1_html.txt
|
||||
printf '%s\n' '/_LINE/r /tmp/solde_g1_html.txt' 1 '/_LINE/d' w | ed $WEBPATH/data/wallets_balance.html > /dev/null
|
||||
rm /tmp/solde_g1_html.txt
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,49 +1,3 @@
|
|||
body {
|
||||
background-color: #c4a787 !important;
|
||||
margin-top: 10px !important;
|
||||
margin-left: 20px !important;
|
||||
margin-right: 20px !important;
|
||||
font-family: "Gill Sans", sans-serif !important;
|
||||
}
|
||||
|
||||
.bootstrap-table .fixed-table-toolbar .bs-bars, .bootstrap-table .fixed-table-toolbar .columns, .bootstrap-table .fixed-table-toolbar .search {
|
||||
float: inherit !important;
|
||||
text-align: center;
|
||||
display:flex;
|
||||
justify-content:center;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
height: calc(1.5em + .75rem + 20px) !important;
|
||||
width: 500px !important;
|
||||
}
|
||||
|
||||
.bootstrap-table .fixed-table-container .fixed-table-body {
|
||||
height: inherit !important;
|
||||
}
|
||||
|
||||
.bootstrap-table .fixed-table-container {
|
||||
background-color: #DFCFBE;
|
||||
border-collapse: collapse !important; /* Collapse borders */
|
||||
border: 1px solid #ddd !important; /* Add a grey border */
|
||||
font-size: 16px !important; /* Increase font-size */
|
||||
}
|
||||
|
||||
.bootstrap-table .fixed-table-container th {
|
||||
background-color: #B69776;
|
||||
}
|
||||
|
||||
#dataDate {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.date {
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
#pseudo, #key {
|
||||
background-position: 10px 12px; /* Position the search icon */
|
||||
background-repeat: no-repeat; /* Do not repeat the icon image */
|
||||
|
@ -52,7 +6,6 @@ body {
|
|||
padding: 12px 20px 12px 20px; /* Add some padding */
|
||||
border: 1px solid #ddd; /* Add a grey border */
|
||||
margin-bottom: 12px; /* Add some space below the input */
|
||||
margin-top: 7px;
|
||||
}
|
||||
|
||||
#soldes {
|
||||
|
@ -60,7 +13,6 @@ body {
|
|||
width: 50%; /* Full-width */
|
||||
border: 1px solid #ddd; /* Add a grey border */
|
||||
font-size: 16px; /* Increase font-size */
|
||||
background-color: #DFCFBE;
|
||||
}
|
||||
|
||||
#soldes th, #soldes td {
|
||||
|
@ -80,7 +32,7 @@ body {
|
|||
|
||||
#soldes th {
|
||||
/* Add a grey background color to the table header and on hover */
|
||||
background-color: #B69776;
|
||||
background-color: #ddd;
|
||||
cursor: pointer;
|
||||
position: sticky;
|
||||
top: 0px;
|
||||
|
@ -88,4 +40,4 @@ body {
|
|||
|
||||
#splw {
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
|
@ -13,45 +13,47 @@
|
|||
|
||||
<div class="header">
|
||||
<center><h1>Ḡ1 Stats</h1>
|
||||
| <a href="/data/daily.json">Voir le JSON g1stats</a>
|
||||
| <a href="/data/search.html">Recherche</a>
|
||||
| <a href="/data/daily.json">Voir le fichier JSON</a>
|
||||
| <a href="/data/wallets-g1.txt">Liste de tous les wallets</a>
|
||||
| <a href="/data/wallets-g1-membres.txt">Liste des wallets membres</a>
|
||||
| <a href="/data/wallets-g1-simple.txt">Liste des simples portefeuilles</a>
|
||||
| <a href="/data/geoloc-members.json">Voir le JSON profiles membres</a> |
|
||||
| <a href="/data/wallets_balance.html">Classement FORBES</a> |
|
||||
</center>
|
||||
</div>
|
||||
|
||||
<div id="mainbloc">
|
||||
<pre>
|
||||
Date: <b>_day - _heure</b>
|
||||
Noeud scanné: <b>https://g1v1.p2p.legal</b>
|
||||
Date: <b>_day - _heure</b>
|
||||
Noeud scanné: <b>https://duniter-g1.p2p.legal</b>
|
||||
---
|
||||
Nombre total de portefeuille: <b>_nbrTotalWallets</b>
|
||||
Nombre total de wallet: <b>_nbrTotalWallets</b>
|
||||
Nombre de membres: <b>_nbrMembers</b> (_pourcentMbrs%)
|
||||
Nombre de simple portefeuille: <b>_nbrSimpleWallets</b> (_pourcentWallets%)
|
||||
Nombre de simple portefeuille: <b>_nbrSimpleWallets</b> (_pourcentWallets%)
|
||||
---
|
||||
Reçus simples portefeuille: <b>_sumRW Ḡ1</b>
|
||||
Envoyé simples portefeuille: <b>_sumSW Ḡ1</b>
|
||||
Soldes simples portefeuille: <b>_soldeW Ḡ1</b> (_pourcentSimpleWallet% de la masse monétaire totale)
|
||||
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>_sumRM Ḡ1</b> (sans les DU)
|
||||
Envoyé membres: <b>_sumSM Ḡ1</b>
|
||||
Soldes membres: <b>_soldeM Ḡ1</b> (sans les DU)
|
||||
---
|
||||
Masse monétaire: <b>_monetaryMass Ḡ1</b>
|
||||
Masse monétaire: <b>_monetaryMass Ḡ1</b>
|
||||
|
||||
---
|
||||
<h3>Analyse rapide</h3>
|
||||
<b>_sleepyG1%</b> des Ḡ1 n'ont jamais été utilisés.
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div id="charts">
|
||||
<center><h2 id="titleRW">Ḡ1 reçus sur les portefeuilles</h2></center>
|
||||
<center><h2 id="titleRW">Ḡ1 reçus sur les wallets</h2></center>
|
||||
<canvas id="chartRW" width="1600" height="500"></canvas>
|
||||
</div>
|
||||
</center>
|
||||
|
||||
<div id="charts">
|
||||
<center><h2 id="titleNBRW">Nombre de portefeuilles</h2></center>
|
||||
<center><h2 id="titleNBRW">Nombre de wallets</h2></center>
|
||||
<canvas id="chartNBRW" width="1600" height="500"></canvas>
|
||||
</div>
|
||||
</center>
|
||||
|
|
|
@ -23,25 +23,8 @@ var jsonfileRW = $.getJSON( "../data/cum-daily.json", function(data) {
|
|||
type: 'line',
|
||||
data: {
|
||||
labels: date,
|
||||
datasets: [
|
||||
|
||||
|
||||
{
|
||||
label: 'Portefeuilles membres',
|
||||
data: rmembers,
|
||||
backgroundColor: 'rgba(0, 178, 0, 0.3)',
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 6,
|
||||
pointHoverBackgroundColor: "beige",
|
||||
pointHoverBorderColor: "brown",
|
||||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 1,
|
||||
pointHitRadius: 4
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
label: 'Simples portefeuilles',
|
||||
datasets: [{
|
||||
label: 'Ḡ1 reçus sur les simples portefeuilles',
|
||||
data: rwallets,
|
||||
backgroundColor: 'rgba(0, 119, 204, 0.3)',
|
||||
pointBorderWidth: 1,
|
||||
|
@ -51,31 +34,22 @@ var jsonfileRW = $.getJSON( "../data/cum-daily.json", function(data) {
|
|||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 1,
|
||||
pointHitRadius: 4
|
||||
},
|
||||
|
||||
|
||||
|
||||
]
|
||||
}, {
|
||||
label: 'Ḡ1 reçus sur les portefeuilles membres',
|
||||
data: rmembers,
|
||||
backgroundColor: 'rgba(0, 178, 0, 0.3)',
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 6,
|
||||
pointHoverBackgroundColor: "beige",
|
||||
pointHoverBorderColor: "brown",
|
||||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 1,
|
||||
pointHitRadius: 4
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
maintainAspectRatio: false,
|
||||
responsive: true,
|
||||
|
||||
|
||||
scales: {
|
||||
xAxes: [{
|
||||
stacked: true
|
||||
}],
|
||||
yAxes: [
|
||||
{
|
||||
id: 'y-axis',
|
||||
stacked: true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
||||
responsive: true
|
||||
}
|
||||
};
|
||||
var myChartRW = new Chart(ctx, config);
|
||||
|
@ -87,11 +61,10 @@ scales: {
|
|||
type: 'line',
|
||||
data: {
|
||||
labels: date,
|
||||
datasets: [
|
||||
{
|
||||
label: 'Portefeuilles membres',
|
||||
data: nbrmembers,
|
||||
backgroundColor: 'rgba(0, 178, 0, 0.3)',
|
||||
datasets: [{
|
||||
label: 'Nombre de simple portefeuilles',
|
||||
data: nbrwallets,
|
||||
backgroundColor: 'rgba(0, 119, 204, 0.3)',
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 6,
|
||||
pointHoverBackgroundColor: "beige",
|
||||
|
@ -99,12 +72,10 @@ scales: {
|
|||
pointHoverBorderWidth: 2,
|
||||
pointRadius: 1,
|
||||
pointHitRadius: 4
|
||||
},
|
||||
|
||||
{
|
||||
label: 'Simples portefeuilles',
|
||||
data: nbrwallets,
|
||||
backgroundColor: 'rgba(0, 119, 204, 0.3)',
|
||||
}, {
|
||||
label: 'Nombre de portefeuilles membres',
|
||||
data: nbrmembers,
|
||||
backgroundColor: 'rgba(0, 178, 0, 0.3)',
|
||||
pointBorderWidth: 1,
|
||||
pointHoverRadius: 6,
|
||||
pointHoverBackgroundColor: "beige",
|
||||
|
@ -116,21 +87,7 @@ scales: {
|
|||
},
|
||||
options: {
|
||||
maintainAspectRatio: true,
|
||||
responsive: true,
|
||||
|
||||
scales: {
|
||||
xAxes: [{
|
||||
stacked: true
|
||||
}],
|
||||
yAxes: [
|
||||
{
|
||||
id: 'y-axis',
|
||||
stacked: true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
responsive: true
|
||||
}
|
||||
};
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,39 +0,0 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" href="../css/wallets_balance.css">
|
||||
<link rel="stylesheet" href="../css/src/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="../css/src/bootstrap-table.min.css">
|
||||
|
||||
<script src="../js/src/jquery.min.js"></script>
|
||||
<script src="../js/src/popper.min.js"></script>
|
||||
<script src="../js/src/bootstrap.min.js"></script>
|
||||
<script src="../js/src/bootstrap-table.min.js"></script>
|
||||
<script src="../js/src/bootstrap-table-fr-FR.min.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table id="walletsTable" data-toggle="table" data-locale="fr-FR" data-pagination="true" data-page-size='10' data-page-list="[10, 25, 50, 100, 500, all]" data-search="true" data-url="forbes.json">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-sortable="true" data-field="pubkey">Clé publique</th>
|
||||
<th data-sortable="true" data-field="id.username">Pseudo</th>
|
||||
<th data-sortable="true" data-field="id.isMember">Membre</th>
|
||||
<th data-sortable="true" data-field="balance">Solde (Ğ1)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
<br><br>
|
||||
<center>
|
||||
<div id="dataDate">
|
||||
Ces données ont été actualisées le 18/10/2021 à 06:16
|
||||
</div>
|
||||
</center>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -4,13 +4,12 @@
|
|||
<link rel="stylesheet" href="../css/wallets_balance.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="date"> Données générées le _DATE<br></div>
|
||||
<input type="text" id="pseudo" onkeyup="recherche('pseudo')" placeholder="Rechercher un pseudo...">
|
||||
<input type="text" id="key" onkeyup="recherche('key')" placeholder="Rechercher une clé publique...">
|
||||
<input type="checkbox" id="splw" value="splw" checked><label for="splw">Afficher les simples portefeuilles</label>
|
||||
|
||||
<table id="soldes">
|
||||
<tr><th>Solde (Ḡ1)</th><th>Clé publique</th><th>Identifiant utilisateur</th></tr>
|
||||
<tr><th>Solde (Ḡ1)</th><th>Clé publique</th><th>Pseudo</th></tr>
|
||||
_LINE
|
||||
</table>
|
||||
|
||||
|
|
Loading…
Reference in New Issue