Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m12s
CI/CD Pipeline / Security Scanning (push) Successful in 2m21s
CI/CD Pipeline / Lint and Format (push) Failing after 25s
CI/CD Pipeline / Terraform Validation (push) Failing after 24s
CI/CD Pipeline / Kubernetes Validation (push) Successful in 22s
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 41s
Validation / validate-genesis (push) Successful in 27s
Validation / validate-terraform (push) Failing after 25s
Validation / validate-kubernetes (push) Failing after 9s
Validation / validate-smart-contracts (push) Failing after 9s
Validation / validate-security (push) Failing after 1m6s
Validation / validate-documentation (push) Failing after 16s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 23s
Verify Deployment / Verify Deployment (push) Failing after 52s
Includes Monad↔Chain138 CCIP proof/deploy/verify tooling, relay service guards, bridge integration tweaks, and frontend ENS/network config follow-ups. Co-authored-by: Cursor <cursoragent@cursor.com>
78 lines
2.6 KiB
Bash
Executable File
78 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Preflight Monad mainnet (143) CCIP stack deploy: RPC, deployer MON balance, CCIP router code.
|
|
#
|
|
# Usage: cd smom-dbis-138 && ./scripts/deployment/preflight-monad-deploy.sh
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
cd "$PROJECT_ROOT"
|
|
|
|
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
|
|
# shellcheck disable=SC1090
|
|
source "$SCRIPT_DIR/../lib/deployment/dotenv.sh"
|
|
load_deployment_env --repo-root "$PROJECT_ROOT"
|
|
elif [[ -f "$PROJECT_ROOT/.env" ]]; then
|
|
set -a
|
|
# shellcheck disable=SC1090
|
|
source "$PROJECT_ROOT/.env"
|
|
set +a
|
|
fi
|
|
|
|
DEPLOYER="${DEPLOYER_ADDRESS:-0x4A666F96fC8764181194447A7dFdb7d471b301C8}"
|
|
RPC="${MONAD_MAINNET_RPC:-https://rpc.monad.xyz}"
|
|
# Infura template without expanded INFURA_PROJECT_ID is unusable — fall back to public RPC
|
|
if [[ "$RPC" =~ infura\.io/v3/?$ ]]; then
|
|
RPC="${MONAD_MAINNET_RPC_PUBLIC:-https://rpc.monad.xyz}"
|
|
fi
|
|
ROUTER="${CCIP_MONAD_ROUTER:-0x33566fE5976AAa420F3d5C64996641Fc3858CaDB}"
|
|
MIN_MON="${MONAD_DEPLOY_MIN_MON:-1}"
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
echo "=== Monad deploy preflight (chain 143) ==="
|
|
echo "Deployer: $DEPLOYER"
|
|
echo "RPC: ${RPC%%\?*}"
|
|
|
|
if ! command -v cast >/dev/null 2>&1; then
|
|
echo -e "${RED}cast (Foundry) required${NC}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
chain_id=$(cast chain-id --rpc-url "$RPC" 2>/dev/null || echo "")
|
|
if [[ "$chain_id" != "143" ]]; then
|
|
echo -e "${RED}RPC chain-id=$chain_id (expected 143)${NC}" >&2
|
|
exit 1
|
|
fi
|
|
echo -e "${GREEN}RPC OK (chain 143)${NC}"
|
|
|
|
bal_wei=$(cast balance "$DEPLOYER" --rpc-url "$RPC" 2>/dev/null || echo "0")
|
|
bal_mon=$(cast --to-unit "$bal_wei" ether 2>/dev/null || echo "0")
|
|
echo "Deployer MON balance: $bal_mon"
|
|
if awk -v b="$bal_mon" -v m="$MIN_MON" 'BEGIN { exit !(b+0 >= m+0) }'; then
|
|
echo -e "${GREEN}Balance OK (>= ${MIN_MON} MON recommended)${NC}"
|
|
else
|
|
echo -e "${RED}Insufficient MON (need >= ${MIN_MON})${NC}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
code=$(cast code "$ROUTER" --rpc-url "$RPC" 2>/dev/null || echo "0x")
|
|
if [[ "$code" == "0x" || -z "$code" ]]; then
|
|
echo -e "${RED}CCIP router has no code at $ROUTER${NC}" >&2
|
|
exit 1
|
|
fi
|
|
echo -e "${GREEN}CCIP router code present${NC}"
|
|
|
|
if [[ -n "${CCIPWETH9_BRIDGE_MONAD:-}" && -n "${CCIPWETH10_BRIDGE_MONAD:-}" ]]; then
|
|
echo -e "${YELLOW}CCIPWETH9_BRIDGE_MONAD / CCIPWETH10_BRIDGE_MONAD already set — deploy script will skip unless forced${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Preflight OK. Next:"
|
|
echo " DRY_RUN=1 ./scripts/deployment/deploy-monad-ccip-stack.sh"
|
|
echo " ./scripts/deployment/deploy-monad-ccip-stack.sh --execute"
|