Files
proxmox/scripts/complete-all-contract-deployments.sh
defiQUG bea1903ac9
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Sync all local changes: docs, config, scripts, submodule refs, verification evidence
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:46:06 -08:00

70 lines
3.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Complete All Contract Deployments by Priority
# 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)
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
cd "$PROJECT_ROOT"
# 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
source config/ip-addresses.conf 2>/dev/null || true
RPC="${RPC_URL_138:-http://192.168.11.211:8545}"
if [[ -z "${PRIVATE_KEY:-}" ]]; then
echo "ERROR: PRIVATE_KEY required. Set PRIVATE_KEY in smom-dbis-138/.env or root .env."
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 "=============================================="