#!/usr/bin/env bash
set -euo pipefail
LOCAL_RPC="${LOCAL_RPC:-http://127.0.0.1:8545}"
PUBLIC_RPC="${PUBLIC_RPC:-https://rpc.telos.net/evm}"
TELOS_HTTP="${TELOS_HTTP:-http://154.12.118.141:8888}"
TELOS_SHIP_HOST="${TELOS_SHIP_HOST:-154.12.118.141}"
TELOS_SHIP_PORT="${TELOS_SHIP_PORT:-8080}"
rpc_block() {
  curl -fsS --max-time 5 -H 'content-type: application/json' \
    --data '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' "$1" \
    | jq -r '.result' | xargs printf "%d\n"
}
printf 'services=' 
systemctl --no-pager --plain is-active telos-evm3-reth telos-evm3-consensus || true
if curl -fsS --max-time 5 -H 'content-type: application/json' --data '{}' "$TELOS_HTTP/v1/chain/get_info" >/tmp/telos-get-info.json; then
  printf 'external_nodeos_head='
  jq -r '.head_block_num // .last_irreversible_block_num // empty' /tmp/telos-get-info.json
else
  echo 'external_nodeos_head=unavailable'
fi
if timeout 5 bash -c "</dev/tcp/$TELOS_SHIP_HOST/$TELOS_SHIP_PORT" 2>/dev/null; then
  echo "external_ship=reachable"
else
  echo "external_ship=unavailable"
fi
if local_block="$(rpc_block "$LOCAL_RPC" 2>/dev/null)"; then
  public_block="$(rpc_block "$PUBLIC_RPC" 2>/dev/null || echo 0)"
  lag=$((public_block - local_block))
  echo "local_block=$local_block public_block=$public_block lag=$lag"
else
  echo 'local_reth=unavailable'
fi
ps -C telos-reth -o pid,pcpu,rss,etime,cmd || true
ps -C telos-consensus-client -o pid,pcpu,rss,etime,cmd || true
