11#! /usr/bin/env bash
22set -euo pipefail
33
4+ # --- Config ---
45PROJECT_ROOT=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) /.." && pwd) "
56SCRIPTS_DIR=" $PROJECT_ROOT /scripts/migrate"
67BROADCAST_DIR=" $PROJECT_ROOT /broadcast"
@@ -15,12 +16,14 @@ CAST="npx -y -p @foundry-rs/forge cast"
1516: " ${MNEMONIC:= math razor capable expose worth grape metal sunset metal sudden usage scheme} "
1617: " ${PRIVATE_KEY:= $($CAST wallet private-key --mnemonic " $MNEMONIC " --mnemonic-index 0)} "
1718
19+ # --- Helpers ---
1820die () { echo " ERROR: $* " >&2 ; exit 1; }
1921need () { command -v " $1 " > /dev/null 2>&1 || die " missing command: $1 " ; }
2022
2123need jq
2224need curl
2325
26+ # --- Wait for node ---
2427until curl -s " $RPC_URL " -H ' Content-Type: application/json' \
2528 -d ' {"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' > /dev/null; do
2629 sleep 0.3
2932CHAIN_ID=" $( $CAST chain-id --rpc-url " $RPC_URL " ) "
3033echo " RPC_URL=$RPC_URL CHAIN_ID=$CHAIN_ID "
3134
35+ # --- Deploy libraries ---
3236echo " ==> Deploy libraries"
3337LIB_COMMITMENT=" $(
3438 $FORGE create " $LIB_COMMITMENT_SPEC " \
@@ -45,6 +49,7 @@ LIB_MSGS="$(
4549echo " IBCCommitment: $LIB_COMMITMENT "
4650echo " IBCMsgs : $LIB_MSGS "
4751
52+ # --- 001_DeployCore ---
4853echo " ==> 001_DeployCore"
4954$FORGE script " $SCRIPTS_DIR /001_DeployCore.s.sol:DeployCore" \
5055 --rpc-url " $RPC_URL " --broadcast --private-key " $PRIVATE_KEY " \
@@ -58,6 +63,7 @@ IBC_HANDLER="$(jq -r '.transactions[] | select(.contractName=="OwnableIBCHandler
5863[[ -n " $IBC_HANDLER " && " $IBC_HANDLER " != " null" ]] || die " failed to extract IBC_HANDLER"
5964echo " IBC_HANDLER: $IBC_HANDLER "
6065
66+ # --- 002_DeployApp ---
6167echo " ==> 002_DeployApp"
6268$FORGE script " $SCRIPTS_DIR /002_DeployApp.s.sol:DeployApp" \
6369 --rpc-url " $RPC_URL " --broadcast --private-key " $PRIVATE_KEY " \
@@ -76,6 +82,7 @@ echo " MOCK_CLIENT : $MOCK_CLIENT"
7682PORT_CROSS=" ${PORT_CROSS:- cross} "
7783MOCK_CLIENT_TYPE=" ${MOCK_CLIENT_TYPE:- mock-client} "
7884
85+ # --- 003_Initialize ---
7986echo " ==> 003_Initialize"
8087$FORGE script " $SCRIPTS_DIR /003_Initialize.s.sol:InitializeContracts" \
8188 --rpc-url " $RPC_URL " --broadcast --private-key " $PRIVATE_KEY " \
0 commit comments