2026-02-12 15:46:57 -08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
# Complete All Contract Deployments by Priority
|
2026-02-21 15:46:06 -08:00
|
|
|
# Run from project root. Requires: PRIVATE_KEY, RPC_URL_138 (Chain 138 Core) or network access to RPC.
|
|
|
|
|
# Usage: ./scripts/complete-all-contract-deployments.sh (PRIVATE_KEY read from smom-dbis-138/.env or root .env)
|
2026-02-12 15:46:57 -08:00
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
|
cd "$PROJECT_ROOT"
|
|
|
|
|
|
2026-02-21 15:46:06 -08:00
|
|
|
# Load PRIVATE_KEY from dotenv (root .env, then smom-dbis-138/.env)
|
|
|
|
|
[[ -f "${SCRIPT_DIR}/lib/load-project-env.sh" ]] && source "${SCRIPT_DIR}/lib/load-project-env.sh" 2>/dev/null || true
|
2026-02-12 15:46:57 -08:00
|
|
|
source config/ip-addresses.conf 2>/dev/null || true
|
2026-02-21 15:46:06 -08:00
|
|
|
RPC="${RPC_URL_138:-http://192.168.11.211:8545}"
|
2026-02-12 15:46:57 -08:00
|
|
|
|
|
|
|
|
if [[ -z "${PRIVATE_KEY:-}" ]]; then
|
2026-02-21 15:46:06 -08:00
|
|
|
echo "ERROR: PRIVATE_KEY required. Set PRIVATE_KEY in smom-dbis-138/.env or root .env."
|
2026-02-12 15:46:57 -08:00
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "=============================================="
|
|
|
|
|
echo "Complete Contract Deployments (Chain 138)"
|
|
|
|
|
echo "=============================================="
|
|
|
|
|
echo "RPC: $RPC"
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
# Priority 1: CCIP WETH9 Bridge
|
|
|
|
|
echo ">>> Priority 1: CCIP WETH9 Bridge"
|
|
|
|
|
bash scripts/deploy-and-configure-weth9-bridge-chain138.sh
|
|
|
|
|
echo " Add printed CCIPWETH9_BRIDGE_CHAIN138 to .env"
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
# Priority 2: Blockscout verification
|
|
|
|
|
echo ">>> Priority 2: Blockscout verification"
|
|
|
|
|
echo " Run: ./scripts/verify-contracts-blockscout.sh"
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
# Priority 3: alltra-lifi-settlement
|
|
|
|
|
echo ">>> Priority 3: alltra-lifi-settlement"
|
|
|
|
|
if [[ -d alltra-lifi-settlement ]]; then
|
|
|
|
|
RELAYER="${SETTLEMENT_RELAYER_ADDRESS:-$(cast wallet address --private-key "$PRIVATE_KEY" 2>/dev/null || echo "")}"
|
|
|
|
|
if [[ -n "$RELAYER" ]]; then
|
|
|
|
|
(cd alltra-lifi-settlement && RPC_URL_138="$RPC" PRIVATE_KEY="$PRIVATE_KEY" SETTLEMENT_RELAYER_ADDRESS="$RELAYER" forge script scripts/deploy/deploy-merchant-settlement-registry.s.sol --rpc-url "$RPC" --broadcast --private-key "$PRIVATE_KEY" 2>&1) || echo " MerchantSettlementRegistry: check logs"
|
|
|
|
|
source smom-dbis-138/.env 2>/dev/null || true
|
|
|
|
|
if [[ -n "${COMPLIANT_USDC_ADDRESS:-}" ]] && [[ -n "${WITHDRAWAL_RELAYER_ADDRESS:-}" ]]; then
|
|
|
|
|
(cd alltra-lifi-settlement && forge script scripts/deploy/deploy-withdrawal-escrow.s.sol --rpc-url "$RPC" --broadcast --private-key "$PRIVATE_KEY" 2>&1) || echo " WithdrawalEscrow: check logs"
|
|
|
|
|
else
|
|
|
|
|
echo " WithdrawalEscrow: set COMPLIANT_USDC_ADDRESS, WITHDRAWAL_RELAYER_ADDRESS in .env"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo " Set SETTLEMENT_RELAYER_ADDRESS"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo " alltra-lifi-settlement not found"
|
|
|
|
|
fi
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
# Priority 4: Phased core
|
|
|
|
|
echo ">>> Priority 4: Phased core (UniversalAssetRegistry, UniversalCCIPBridge)"
|
|
|
|
|
cd smom-dbis-138
|
|
|
|
|
forge script script/deploy/01_DeployCore.s.sol --rpc-url "$RPC" --broadcast --private-key "$PRIVATE_KEY" 2>&1 || echo " 01_DeployCore: check deps"
|
|
|
|
|
echo " Update .env with UNIVERSAL_ASSET_REGISTRY, GOVERNANCE_CONTROLLER from output"
|
|
|
|
|
forge script script/deploy/02_DeployBridges.s.sol --rpc-url "$RPC" --broadcast --private-key "$PRIVATE_KEY" 2>&1 || echo " 02_DeployBridges: check deps"
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "=============================================="
|
|
|
|
|
echo "Done. Run verify-contracts-blockscout.sh next."
|
|
|
|
|
echo "=============================================="
|