#!/usr/bin/env bash set -euo pipefail log_info(){ echo "[INFO] $(date -Iseconds) $*"; } log_warn(){ echo "[WARN] $(date -Iseconds) $*" >&2; } log_error(){ echo "[ERROR] $(date -Iseconds) $*" >&2; } need(){ command -v "$1" >/dev/null 2>&1 || { log_error "Missing tool: $1"; return 1; }; } json_escape() { local s="$1" s="${s//\\/\\\\}"; s="${s//\"/\\\"}"; s="${s//$'\n'/\\n}" printf "%s" "$s" } net_flag() { : "${BTC_NETWORK:=testnet}" case "$BTC_NETWORK" in mainnet) echo "" ;; testnet) echo "-testnet" ;; signet) echo "-signet" ;; *) echo "-testnet" ;; esac }