#!/usr/bin/env bash # Deploy Chain 138 cross-chain flash infrastructure via Foundry: # - UniversalCCIPFlashBridgeAdapter # - CrossChainFlashRepayReceiver # - CrossChainFlashVaultCreditReceiver # # Requires: # PRIVATE_KEY # RPC_URL_138 # UNIVERSAL_CCIP_BRIDGE or FLASH_UNIVERSAL_CCIP_BRIDGE # CCIP_ROUTER / CCIP_ROUTER_ADDRESS / CCIP_ROUTER_CHAIN138 or FLASH_CCIP_ROUTER # # Optional: # FLASH_REPAY_RECEIVER_ROUTER # FLASH_VAULT_CREDIT_ROUTER # # Usage: # source scripts/lib/load-project-env.sh # ./scripts/deployment/deploy-cross-chain-flash-infra-chain138.sh # ./scripts/deployment/deploy-cross-chain-flash-infra-chain138.sh --dry-run set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" SMOM="$PROJECT_ROOT/smom-dbis-138" if [[ -f "$PROJECT_ROOT/scripts/lib/load-project-env.sh" ]]; then # shellcheck disable=SC1091 source "$PROJECT_ROOT/scripts/lib/load-project-env.sh" 2>/dev/null || true fi RPC="${RPC_URL_138:-}" if [[ -z "$RPC" ]]; then echo "ERROR: Set RPC_URL_138 (Core Chain 138 RPC)." >&2 exit 1 fi if [[ -z "${PRIVATE_KEY:-}" ]]; then echo "ERROR: PRIVATE_KEY must be set." >&2 exit 1 fi BRIDGE="${FLASH_UNIVERSAL_CCIP_BRIDGE:-${UNIVERSAL_CCIP_BRIDGE:-}}" if [[ -z "$BRIDGE" ]]; then echo "ERROR: Set FLASH_UNIVERSAL_CCIP_BRIDGE or UNIVERSAL_CCIP_BRIDGE." >&2 exit 1 fi ROUTER="${FLASH_CCIP_ROUTER:-${CCIP_ROUTER:-${CCIP_ROUTER_ADDRESS:-${CCIP_ROUTER_CHAIN138:-}}}}" if [[ -z "$ROUTER" ]]; then echo "ERROR: Set FLASH_CCIP_ROUTER or one of CCIP_ROUTER / CCIP_ROUTER_ADDRESS / CCIP_ROUTER_CHAIN138." >&2 exit 1 fi cd "$SMOM" ARGS=() if [[ "${1:-}" == "--dry-run" ]]; then ARGS=(-vvvv) else ARGS=(--broadcast --with-gas-price 1000000000 --gas-estimate-multiplier 150 -vvvv) fi echo "RPC_URL_138=$RPC" echo "FLASH_UNIVERSAL_CCIP_BRIDGE=$BRIDGE" echo "FLASH_CCIP_ROUTER=$ROUTER" if [[ -n "${FLASH_REPAY_RECEIVER_ROUTER:-}" ]]; then echo "FLASH_REPAY_RECEIVER_ROUTER=${FLASH_REPAY_RECEIVER_ROUTER}" fi if [[ -n "${FLASH_VAULT_CREDIT_ROUTER:-}" ]]; then echo "FLASH_VAULT_CREDIT_ROUTER=${FLASH_VAULT_CREDIT_ROUTER}" fi exec forge script script/deploy/DeployCrossChainFlashInfrastructure.s.sol:DeployCrossChainFlashInfrastructure \ --rpc-url "$RPC" "${ARGS[@]}"