33
44# Deploy DonationHandler implementation via CreateX CREATE2 (same address on each chain when init code matches).
55# Usage: ./scripts/deploy-implementation.sh <chain>
6- # Requires .env: PRIVATE_KEY, <CHAIN>_RPC (e.g. BASE_RPC), ETHERSCAN_API_KEY for --verify
6+ # Requires .env: PRIVATE_KEY, <CHAIN>_RPC (e.g. BASE_RPC), ETHERSCAN_API_KEY for --verify.
7+ # Arbitrum/Polygon: ARBITRUM_RPC / POLYGON_RPC (foundry.toml); ARBITRUM / POLYGON_RPC_URL are accepted as fallbacks.
78#
89# Build uses FOUNDRY_PROFILE=deterministic — see foundry.toml (must match manual forge script runs).
910# Chain names match foundry.toml [rpc_endpoints] keys (mainnet, base, sepolia, ...).
@@ -17,16 +18,21 @@ CHAIN="${1:?Usage: deploy-implementation.sh <chain> (e.g. base, mainnet, sepolia
1718cd " $( dirname " $0 " ) /.."
1819source .env
1920
21+ # foundry.toml and this script expect ARBITRUM_RPC / POLYGON_RPC; support common alternate names.
22+ export ARBITRUM_RPC=" ${ARBITRUM_RPC:- ${ARBITRUM:- } } "
23+ export POLYGON_RPC=" ${POLYGON_RPC:- ${POLYGON_RPC_URL:- } } "
24+
2025RPC_SUFFIX=$( echo " $CHAIN " | tr ' [:lower:]' ' [:upper:]' | tr ' -' ' _' )
2126RPC_VAR=" ${RPC_SUFFIX} _RPC"
27+ RPC_URL=" ${! RPC_VAR} "
2228
23- if [[ -z " ${ ! RPC_VAR} " ]]; then
24- echo " Error: $RPC_VAR is not set in .env"
29+ if [[ -z " $RPC_URL " ]]; then
30+ echo " Error: $RPC_VAR is not set in .env (for polygon, POLYGON_RPC or POLYGON_RPC_URL; for arbitrum, ARBITRUM_RPC or ARBITRUM) "
2531 exit 1
2632fi
2733
2834CREATEX_ADDRESS=" 0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed"
29- CREATEX_CODE=$( cast code " $CREATEX_ADDRESS " --rpc-url " ${ ! RPC_VAR} " 2> /dev/null || true)
35+ CREATEX_CODE=$( cast code " $CREATEX_ADDRESS " --rpc-url " $RPC_URL " 2> /dev/null || true)
3036if [[ -z " $CREATEX_CODE " || " $CREATEX_CODE " == " 0x" ]]; then
3137 echo " Error: CreateX not deployed at $CREATEX_ADDRESS on this RPC (cast code returned empty)."
3238 exit 1
4147export FOUNDRY_PROFILE=deterministic
4248
4349forge script script/DeployDonationHandlerImplementation.s.sol:DeployDonationHandlerImplementation \
44- --rpc-url " ${ ! RPC_VAR} " \
50+ --rpc-url " $RPC_URL " \
4551 --broadcast \
4652 --verify \
4753 --chain " $CHAIN " \
0 commit comments