#!/usr/bin/env bash # 1) Deploy ChainRegistry (if CHAIN_REGISTRY_ADDRESS_138 not set). 2) Deploy TruthNetworkAdapter and register Truth. # Requires: RPC_URL_138, PRIVATE_KEY in smom-dbis-138/.env or repo .env. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" SMOM="$REPO_ROOT/smom-dbis-138" if [[ -f "$SMOM/.env" ]]; then set -a source "$SMOM/.env" set +a elif [[ -f "$REPO_ROOT/.env" ]]; then set -a source "$REPO_ROOT/.env" set +a fi RPC="${RPC_URL_138:-${CHAIN_138_RPC_URL:-}}" KEY="${PRIVATE_KEY:-}" REGISTRY="${CHAIN_REGISTRY_ADDRESS_138:-${CHAIN_REGISTRY_ADDRESS:-}}" if [[ -z "$RPC" ]] || [[ -z "$KEY" ]]; then echo "Error: RPC_URL_138 and PRIVATE_KEY required. Set in smom-dbis-138/.env or repo .env." exit 1 fi if [[ -z "$REGISTRY" ]]; then echo "Deploying ChainRegistry on Chain 138..." cd "$SMOM" OUT=$(forge script script/deploy/DeployChainRegistry.s.sol:DeployChainRegistry \ --rpc-url "$RPC" \ --broadcast \ --private-key "$KEY" \ --with-gas-price 1000000000 \ -vvv 2>&1) REGISTRY=$(echo "$OUT" | grep "CHAIN_REGISTRY_ADDRESS_138" | grep -oE "0x[a-fA-F0-9]{40}" | head -1) if [[ -z "$REGISTRY" ]]; then REGISTRY=$(echo "$OUT" | grep -oE "0x[a-fA-F0-9]{40}" | tail -1) fi if [[ -z "$REGISTRY" ]]; then echo "Could not parse ChainRegistry address."; echo "$OUT" | tail -50; exit 1 fi echo "ChainRegistry deployed at $REGISTRY" export CHAIN_REGISTRY_ADDRESS_138="$REGISTRY" if [[ -f "$SMOM/.env" ]]; then if ! grep -q "CHAIN_REGISTRY_ADDRESS_138=" "$SMOM/.env" 2>/dev/null; then echo "" >> "$SMOM/.env" echo "CHAIN_REGISTRY_ADDRESS_138=$REGISTRY" >> "$SMOM/.env" echo "Appended CHAIN_REGISTRY_ADDRESS_138 to $SMOM/.env" fi fi else export CHAIN_REGISTRY_ADDRESS_138="$REGISTRY" echo "Using existing CHAIN_REGISTRY_ADDRESS_138=$REGISTRY" fi export RPC_URL_138="$RPC" export PRIVATE_KEY="$KEY" "$SCRIPT_DIR/deploy-and-register-truth-on-chain138.sh" echo "Done: ChainRegistry and Truth Network registration complete."