diff --git a/blocknumber.sh b/blocknumber.sh index b6ee602f..9439b80d 100755 --- a/blocknumber.sh +++ b/blocknumber.sh @@ -1,5 +1,19 @@ #!/bin/bash +ms_to_human_readable() { + local ms=$1 + local days=$((ms / 86400000)) + ms=$((ms % 86400000)) + local hours=$((ms / 3600000)) + ms=$((ms % 3600000)) + local minutes=$((ms / 60000)) + ms=$((ms % 60000)) + local seconds=$((ms / 1000)) + local milliseconds=$((ms % 1000)) + + printf "%d days, %02d hours, %02d minutes, %02d seconds, %03d milliseconds\n" $days $hours $minutes $seconds $milliseconds +} + BASEPATH="$(dirname "$0")" source $BASEPATH/.env @@ -32,7 +46,17 @@ for path in $pathlist; do latest_block_number=$(echo "$response" | jq -r '.result.number') latest_block_number_decimal=$((16#${latest_block_number#0x})) - echo "$latest_block_number_decimal" + latest_block_timestamp=$(echo "$response" | jq -r '.result.timestamp') + latest_block_timestamp_decimal=$((16#${latest_block_timestamp#0x})) + current_time=$(date +%s) + time_difference=$((current_time - latest_block_timestamp_decimal)) + + if [[ $2 == "true" ]]; then + ms_to_human_readable "$time_difference" + else + echo "$latest_block_number_decimal" + fi + exit 0; fi fi