Files
sonr/scripts/chain-rpc-ready.sh
T
Prad NukalaandGitHub ebfa2b062a Feat/add networks (#1303)
* No commit suggestions generated

* No commit suggestions generated

* No commit suggestions generated
2025-10-12 11:23:20 -04:00

28 lines
809 B
Bash
Executable File

#!/bin/bash
# chain-rpc-ready.sh - Check if a CometBFT or Tendermint RPC service is ready
# Usage: chain-rpc-ready.sh [RPC_URL]
set -euo pipefail
RPC_URL=${1:-"http://localhost:26657"}
echo 1>&2 "Checking if $RPC_URL is ready..."
# Check if the RPC URL is reachable,
json=$(curl -s --connect-timeout 2 "$RPC_URL/status")
# and the bootstrap block state has been validated,
if [ "$(echo "$json" | jq -r '.result.sync_info | (.earliest_block_height < .latest_block_height)')" != true ]; then
echo 1>&2 "$RPC_URL is not ready: bootstrap block state has not been validated"
exit 1
fi
# and the node is not catching up.
if [ "$(echo "$json" | jq -r .result.sync_info.catching_up)" != false ]; then
echo 1>&2 "$RPC_URL is not ready: node is catching up"
exit 1
fi
echo "$json" | jq -r .result
exit 0