refactor(archive): move historical contracts and adapters to archive directory
- Archived multiple non-EVM adapters (Algorand, Hedera, Tron, TON, Cosmos, Solana) and compliance contracts (IndyVerifier) to `archive/solidity/contracts/`. - Updated documentation to reflect the historical status of archived components. - Adjusted `foundry.toml` and `README.md` for clarity on historical dependencies and configurations. - Enhanced Makefile and package.json scripts for improved contract testing and building processes. - Removed obsolete contracts (AlltraCustomBridge, CommodityCCIPBridge, ISO4217WCCIPBridge, VaultBridgeAdapter) from the main directory. - Updated implementation reports to indicate archived status for various components.
This commit is contained in:
@@ -3,7 +3,11 @@
|
||||
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$0")/../.."
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
echo "=== Compiling and Testing Mainnet Contracts ==="
|
||||
|
||||
|
||||
@@ -3,7 +3,11 @@
|
||||
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$0")/../.."
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
# Color codes
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ set -euo pipefail
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
FORGE_SCOPE_RUNNER=(bash "$PROJECT_ROOT/scripts/forge/scope.sh")
|
||||
# Load .env via dotenv (RPC CR/LF trim). Fallback: raw source.
|
||||
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
@@ -65,7 +66,7 @@ run_ccip_remaining_mainnets() {
|
||||
continue
|
||||
fi
|
||||
echo -e "${YELLOW}DeployAll to $name (chain $chain_id)...${NC}"
|
||||
forge script script/DeployAll.s.sol:DeployAll \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployAll.s.sol:DeployAll \
|
||||
--rpc-url "$rpc" --chain-id "$chain_id" --private-key "$PRIVATE_KEY" \
|
||||
--broadcast --slow -vvv || echo -e "${RED}$name DeployAll failed${NC}"
|
||||
echo ""
|
||||
@@ -78,12 +79,12 @@ run_trustless() {
|
||||
echo -e "${YELLOW}=== Trustless Bridge (Chain 138 + Ethereum) ===${NC}"
|
||||
require_env PRIVATE_KEY RPC_URL_138 || return 1
|
||||
echo "Deploying Trustless (Lockbox) on Chain 138..."
|
||||
forge script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge \
|
||||
--rpc-url "$RPC_URL_138" --broadcast --via-ir --private-key "$PRIVATE_KEY" -vvv || true
|
||||
require_env ETHEREUM_MAINNET_RPC || return 1
|
||||
MAINNET_RPC=$(ensure_rpc "$ETHEREUM_MAINNET_RPC")
|
||||
echo "Deploying Trustless (BondManager, ChallengeManager, LP, Inbox, SwapRouter, Coordinator) on Ethereum..."
|
||||
forge script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge \
|
||||
--rpc-url "$MAINNET_RPC" --broadcast --via-ir --private-key "$PRIVATE_KEY" \
|
||||
${ETHERSCAN_API_KEY:+--verify --etherscan-api-key "$ETHERSCAN_API_KEY"} -vvv || true
|
||||
echo -e "${GREEN}Trustless phase done.${NC}"
|
||||
@@ -93,7 +94,7 @@ run_trustless() {
|
||||
run_oracle() {
|
||||
echo -e "${YELLOW}=== Oracle (Chain 138) ===${NC}"
|
||||
require_env PRIVATE_KEY RPC_URL_138 || return 1
|
||||
forge script script/DeployOracle.s.sol:DeployOracle \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployOracle.s.sol:DeployOracle \
|
||||
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY" \
|
||||
--with-gas-price "${GAS_PRICE_138:-1000000000}" --legacy -vvv || true
|
||||
echo -e "${GREEN}Oracle phase done.${NC}"
|
||||
@@ -105,7 +106,7 @@ run_mapper() {
|
||||
require_env PRIVATE_KEY || return 1
|
||||
if [ -n "${RPC_URL_138:-}" ]; then
|
||||
echo "Deploying AddressMapper on Chain 138..."
|
||||
forge script script/DeployAddressMapper.s.sol:DeployAddressMapper \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployAddressMapper.s.sol:DeployAddressMapper \
|
||||
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY" \
|
||||
--with-gas-price "${GAS_PRICE_138:-1000000000}" --legacy -vvv || true
|
||||
fi
|
||||
@@ -116,7 +117,7 @@ run_mapper() {
|
||||
[ -z "$rpc" ] && continue
|
||||
rpc=$(ensure_rpc "$rpc")
|
||||
echo "Deploying AddressMapperEmpty on chain $chain_id..."
|
||||
forge script script/DeployAddressMapperOtherChain.s.sol:DeployAddressMapperOtherChain \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployAddressMapperOtherChain.s.sol:DeployAddressMapperOtherChain \
|
||||
--rpc-url "$rpc" --chain-id "$chain_id" --broadcast --private-key "$PRIVATE_KEY" -vvv || true
|
||||
done
|
||||
echo -e "${GREEN}Mapper phase done.${NC}"
|
||||
@@ -128,7 +129,7 @@ run_pmm() {
|
||||
require_env PRIVATE_KEY RPC_URL_138 || return 1
|
||||
if [ -z "${DODO_PMM_INTEGRATION:-}" ] && [ -n "${DODO_VENDING_MACHINE_ADDRESS:-}" ]; then
|
||||
echo "Deploying DODOPMMIntegration on Chain 138..."
|
||||
forge script script/dex/DeployDODOPMMIntegration.s.sol:DeployDODOPMMIntegration \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/dex/DeployDODOPMMIntegration.s.sol:DeployDODOPMMIntegration \
|
||||
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY" \
|
||||
--with-gas-price "${GAS_PRICE_138:-1000000000}" --legacy -vvv || true
|
||||
else
|
||||
@@ -136,7 +137,7 @@ run_pmm() {
|
||||
fi
|
||||
if [ -n "${DODO_PMM_INTEGRATION:-}" ] && [ -n "${XAU_ADDRESS:-}" ]; then
|
||||
echo "Creating XAU-anchored pools..."
|
||||
forge script script/dex/DeployPrivatePoolRegistryAndPools.s.sol:DeployPrivatePoolRegistryAndPools \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/dex/DeployPrivatePoolRegistryAndPools.s.sol:DeployPrivatePoolRegistryAndPools \
|
||||
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY" \
|
||||
--with-gas-price "${GAS_PRICE_138:-1000000000}" --legacy -vvv || true
|
||||
fi
|
||||
|
||||
@@ -154,7 +154,7 @@ deploy_contract() {
|
||||
log_warn "Deploying ${contract_name}..."
|
||||
|
||||
# Run deployment script
|
||||
local output=$(forge script "$script_name" \
|
||||
local output=$(forge_scoped script "$script_name" \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -220,7 +220,7 @@ if [ -z "$CCIP_ROUTER" ] || [ "$CCIP_ROUTER" = "0x000000000000000000000000000000
|
||||
DATA_FEE_PER_BYTE=${CCIP_DATA_FEE_PER_BYTE:-"1000000000"} # 1 gwei per byte
|
||||
|
||||
# Deploy CCIP Router
|
||||
CCIP_ROUTER_ADDRESS=$(forge script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
|
||||
CCIP_ROUTER_ADDRESS=$(forge_scoped script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
|
||||
--sig "run(address,uint256,uint256)" "$CCIP_FEE_TOKEN" "$BASE_FEE" "$DATA_FEE_PER_BYTE" \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
@@ -373,4 +373,3 @@ ORACLE_AGGREGATOR_ADDRESS=$ORACLE_ADDRESS
|
||||
EOF
|
||||
|
||||
log_success "Deployment addresses saved to: ${DEPLOYMENT_FILE}"
|
||||
|
||||
|
||||
@@ -95,34 +95,34 @@ echo ""
|
||||
|
||||
# Phase 1: Phased core (registry + governance)
|
||||
run_phase 1 "Phased core (01_DeployCore)" "UNIVERSAL_ASSET_REGISTRY" \
|
||||
"forge script script/deploy/01_DeployCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/01_DeployCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 2: Phased bridges (CCIP bridge + orchestrator)
|
||||
run_phase 2 "Phased bridges (02_DeployBridges)" "UNIVERSAL_CCIP_BRIDGE" \
|
||||
"forge script script/deploy/02_DeployBridges.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/02_DeployBridges.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 3: Channel managers
|
||||
run_phase 3 "PaymentChannelManager" "PAYMENT_CHANNEL_MANAGER" \
|
||||
"forge script script/DeployPaymentChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/DeployPaymentChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
run_phase 3 "GenericStateChannelManager" "GENERIC_STATE_CHANNEL_MANAGER" \
|
||||
"forge script script/DeployGenericStateChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/DeployGenericStateChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 4: Deterministic core (CREATE2)
|
||||
run_phase 4 "Deterministic core (DeployDeterministicCore)" "CREATE2_FACTORY" \
|
||||
"forge script script/deploy/DeployDeterministicCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/DeployDeterministicCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 5: Vault system
|
||||
run_phase 5 "Vault system (DeployVaultSystem)" "VAULT_FACTORY" \
|
||||
"forge script script/deploy/vault/DeployVaultSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/vault/DeployVaultSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 6: Reserve system (requires TOKEN_FACTORY in .env)
|
||||
run_phase 6 "Reserve system (DeployReserveSystem)" "RESERVE_SYSTEM" \
|
||||
"forge script script/reserve/DeployReserveSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/reserve/DeployReserveSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 7: Trustless bridge (Lockbox138 on Chain 138)
|
||||
run_phase 7 "Trustless bridge (Lockbox138)" "LOCKBOX_138" \
|
||||
"forge script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
|
||||
@@ -9,6 +9,7 @@ set -euo pipefail
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
FORGE_SCOPE_RUNNER=(bash "${PROJECT_ROOT}/scripts/forge/scope.sh")
|
||||
# Load .env via dotenv (RPC CR/LF trim). Fallback: raw source.
|
||||
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
@@ -237,7 +238,7 @@ deploy_contracts() {
|
||||
|
||||
# Deploy WETH
|
||||
log "Deploying WETH..."
|
||||
WETH_ADDRESS=$(forge script script/DeployWETH.s.sol \
|
||||
WETH_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/DeployWETH.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -253,7 +254,7 @@ deploy_contracts() {
|
||||
# Deploy Multicall individually (if not using Deploy.s.sol)
|
||||
if [ -z "$MULTICALL_ADDRESS" ] || [ "$MULTICALL_ADDRESS" = "null" ]; then
|
||||
log "Deploying Multicall..."
|
||||
DEPLOY_OUTPUT=$(forge script script/DeployMulticall.s.sol \
|
||||
DEPLOY_OUTPUT=$("${FORGE_SCOPE_RUNNER[@]}" script script/DeployMulticall.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -274,7 +275,7 @@ deploy_contracts() {
|
||||
# Deploy Oracle Aggregator individually (if not using Deploy.s.sol)
|
||||
if [ -z "$ORACLE_ADDRESS" ] || [ "$ORACLE_ADDRESS" = "null" ]; then
|
||||
log "Deploying Oracle Aggregator..."
|
||||
DEPLOY_OUTPUT=$(forge script script/DeployOracle.s.sol \
|
||||
DEPLOY_OUTPUT=$("${FORGE_SCOPE_RUNNER[@]}" script script/DeployOracle.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -308,7 +309,7 @@ deploy_contracts() {
|
||||
# Deploy CCIP Router (optional)
|
||||
if [ -f "${PROJECT_ROOT}/script/DeployCCIPRouter.s.sol" ]; then
|
||||
log "Deploying CCIP Router..."
|
||||
DEPLOY_OUTPUT=$(forge script script/DeployCCIPRouter.s.sol \
|
||||
DEPLOY_OUTPUT=$("${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPRouter.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -560,4 +561,3 @@ main() {
|
||||
|
||||
# Run main function
|
||||
main "$@"
|
||||
|
||||
|
||||
@@ -10,6 +10,9 @@ YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Configuration
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
FORGE_SCOPE_RUNNER=(bash "$PROJECT_ROOT/scripts/forge/scope.sh")
|
||||
RPC_URL="${CHAIN_138_RPC_URL:-http://localhost:8545}"
|
||||
PRIVATE_KEY="${DEPLOYER_PRIVATE_KEY}"
|
||||
ADMIN_ADDRESS="${ADMIN_ADDRESS}"
|
||||
@@ -30,7 +33,7 @@ echo "Admin Address: $ADMIN_ADDRESS"
|
||||
|
||||
# Deploy contracts
|
||||
echo -e "${YELLOW}Deploying BridgeRegistry...${NC}"
|
||||
REGISTRY_ADDRESS=$(forge script script/bridge/interop/DeployBridgeRegistry.s.sol \
|
||||
REGISTRY_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployBridgeRegistry.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
--broadcast \
|
||||
@@ -39,7 +42,7 @@ REGISTRY_ADDRESS=$(forge script script/bridge/interop/DeployBridgeRegistry.s.sol
|
||||
echo "BridgeRegistry deployed at: $REGISTRY_ADDRESS"
|
||||
|
||||
echo -e "${YELLOW}Deploying BridgeEscrowVault...${NC}"
|
||||
VAULT_ADDRESS=$(forge script script/bridge/interop/DeployBridgeEscrowVault.s.sol \
|
||||
VAULT_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployBridgeEscrowVault.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
--broadcast \
|
||||
@@ -49,7 +52,7 @@ VAULT_ADDRESS=$(forge script script/bridge/interop/DeployBridgeEscrowVault.s.sol
|
||||
echo "BridgeEscrowVault deployed at: $VAULT_ADDRESS"
|
||||
|
||||
echo -e "${YELLOW}Deploying wXRP Token...${NC}"
|
||||
WXRP_ADDRESS=$(forge script script/bridge/interop/DeployWXRP.s.sol \
|
||||
WXRP_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployWXRP.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
--broadcast \
|
||||
@@ -64,7 +67,7 @@ if [ -z "$HSM_SIGNER_ADDRESS" ]; then
|
||||
HSM_SIGNER_ADDRESS="$ADMIN_ADDRESS"
|
||||
fi
|
||||
|
||||
CONTROLLER_ADDRESS=$(forge script script/bridge/interop/DeployMintBurnController.s.sol \
|
||||
CONTROLLER_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployMintBurnController.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
--broadcast \
|
||||
@@ -74,7 +77,7 @@ CONTROLLER_ADDRESS=$(forge script script/bridge/interop/DeployMintBurnController
|
||||
echo "MintBurnController deployed at: $CONTROLLER_ADDRESS"
|
||||
|
||||
echo -e "${YELLOW}Deploying BridgeVerifier...${NC}"
|
||||
VERIFIER_ADDRESS=$(forge script script/bridge/interop/DeployBridgeVerifier.s.sol \
|
||||
VERIFIER_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployBridgeVerifier.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
--broadcast \
|
||||
@@ -105,7 +108,7 @@ echo "Addresses saved to .bridge-deployment.json"
|
||||
|
||||
# Initialize registry with default destinations
|
||||
echo -e "${YELLOW}Initializing registry...${NC}"
|
||||
forge script script/bridge/interop/InitializeRegistry.s.sol \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/InitializeRegistry.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
--broadcast \
|
||||
|
||||
@@ -124,19 +124,15 @@ else
|
||||
ERRORS=$((ERRORS + 1))
|
||||
fi
|
||||
|
||||
# Step 5: Deploy CCIPTxReporter
|
||||
log_info "Step 5: Deploying CCIPTxReporter"
|
||||
# Step 5: Verify historical CCIPTxReporter
|
||||
log_info "Step 5: Checking CCIPTxReporter"
|
||||
|
||||
if [ -z "$CHAIN138_CCIP_REPORTER" ] || [ "$CHAIN138_CCIP_REPORTER" = "" ]; then
|
||||
if [ -f "scripts/ccip-deployment/deploy-ccip-reporter.js" ]; then
|
||||
log_warn "⚠️ CCIPTxReporter not deployed"
|
||||
echo " To deploy, run:"
|
||||
echo " npm run deploy:reporter:chain138"
|
||||
echo " Or:"
|
||||
echo " npx hardhat run scripts/ccip-deployment/deploy-ccip-reporter.js --network chain138"
|
||||
else
|
||||
log_warn "⚠️ CCIPTxReporter deployment script not found"
|
||||
fi
|
||||
log_warn "⚠️ CCIPTxReporter not configured"
|
||||
echo " Historical source archive:"
|
||||
echo " archive/solidity/contracts/ccip-integration/CCIPTxReporter.sol"
|
||||
echo " If you still rely on this flow, set CHAIN138_CCIP_REPORTER to the deployed address."
|
||||
echo " Restore the archived source before attempting a fresh redeploy."
|
||||
else
|
||||
log_success "✅ CCIPTxReporter address: $CHAIN138_CCIP_REPORTER"
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ set -e
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
FORGE_SCOPE_RUNNER=(bash "$PROJECT_ROOT/scripts/forge/scope.sh")
|
||||
# Load .env via dotenv (RPC CR/LF trim). Fallback: raw source.
|
||||
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
@@ -80,7 +81,7 @@ echo "━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
echo ""
|
||||
|
||||
echo "📋 2.1: Deploy CCIP Router..."
|
||||
forge script script/DeployCCIPRouter.s.sol:DeployCCIPRouter --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-router.log | grep -E "CCIP Router deployed|deployed at:|Error" | head -3
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPRouter.s.sol:DeployCCIPRouter --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-router.log | grep -E "CCIP Router deployed|deployed at:|Error" | head -3
|
||||
CCIP_ROUTER=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-router.log 2>/dev/null | head -1)
|
||||
if [ -n "$CCIP_ROUTER" ]; then
|
||||
echo " ✅ CCIP Router: $CCIP_ROUTER"
|
||||
@@ -90,7 +91,7 @@ fi
|
||||
|
||||
echo ""
|
||||
echo "📋 2.2: Deploy CCIP Sender..."
|
||||
forge script script/DeployCCIPSender.s.sol:DeployCCIPSender --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-sender.log | grep -E "CCIPSender deployed|deployed at:|Error" | head -3
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPSender.s.sol:DeployCCIPSender --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-sender.log | grep -E "CCIPSender deployed|deployed at:|Error" | head -3
|
||||
CCIP_SENDER=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-sender.log 2>/dev/null | head -1)
|
||||
if [ -n "$CCIP_SENDER" ]; then
|
||||
echo " ✅ CCIP Sender: $CCIP_SENDER"
|
||||
@@ -99,7 +100,7 @@ fi
|
||||
|
||||
echo ""
|
||||
echo "📋 2.3: Deploy CCIP Receiver..."
|
||||
forge script script/DeployCCIPReceiver.s.sol:DeployCCIPReceiver --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-receiver.log | grep -E "CCIPReceiver deployed|deployed at:|Error" | head -3
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPReceiver.s.sol:DeployCCIPReceiver --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-receiver.log | grep -E "CCIPReceiver deployed|deployed at:|Error" | head -3
|
||||
CCIP_RECEIVER=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-receiver.log 2>/dev/null | head -1)
|
||||
if [ -n "$CCIP_RECEIVER" ]; then
|
||||
echo " ✅ CCIP Receiver: $CCIP_RECEIVER"
|
||||
@@ -108,7 +109,7 @@ fi
|
||||
|
||||
echo ""
|
||||
echo "📋 2.4: Deploy CCIP WETH9 Bridge..."
|
||||
forge script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-weth9-bridge.log | grep -E "CCIPWETH9Bridge deployed|deployed at:|Error" | head -3
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-weth9-bridge.log | grep -E "CCIPWETH9Bridge deployed|deployed at:|Error" | head -3
|
||||
WETH9_BRIDGE=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-weth9-bridge.log 2>/dev/null | head -1)
|
||||
if [ -n "$WETH9_BRIDGE" ]; then
|
||||
echo " ✅ CCIP WETH9 Bridge: $WETH9_BRIDGE"
|
||||
@@ -117,7 +118,7 @@ fi
|
||||
|
||||
echo ""
|
||||
echo "📋 2.5: Deploy CCIP WETH10 Bridge..."
|
||||
forge script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-weth10-bridge.log | grep -E "CCIPWETH10Bridge deployed|deployed at:|Error" | head -3
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-weth10-bridge.log | grep -E "CCIPWETH10Bridge deployed|deployed at:|Error" | head -3
|
||||
WETH10_BRIDGE=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-weth10-bridge.log 2>/dev/null | head -1)
|
||||
if [ -n "$WETH10_BRIDGE" ]; then
|
||||
echo " ✅ CCIP WETH10 Bridge: $WETH10_BRIDGE"
|
||||
@@ -132,15 +133,15 @@ echo "━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
echo ""
|
||||
|
||||
echo "📋 3.1: Deploy Multicall..."
|
||||
forge script script/DeployMulticall.s.sol:DeployMulticall --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/multicall.log | grep -E "Multicall deployed|deployed at:|Error" | head -3
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployMulticall.s.sol:DeployMulticall --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/multicall.log | grep -E "Multicall deployed|deployed at:|Error" | head -3
|
||||
|
||||
echo ""
|
||||
echo "📋 3.2: Deploy Oracle..."
|
||||
forge script script/DeployOracle.s.sol:DeployOracle --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/oracle.log | grep -E "Aggregator|Proxy|deployed at:|Error" | head -5
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployOracle.s.sol:DeployOracle --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/oracle.log | grep -E "Aggregator|Proxy|deployed at:|Error" | head -5
|
||||
|
||||
echo ""
|
||||
echo "📋 3.3: Deploy MultiSig..."
|
||||
forge script script/DeployMultiSig.s.sol:DeployMultiSig --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/multisig.log | grep -E "MultiSig|deployed at:|Error" | head -3
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployMultiSig.s.sol:DeployMultiSig --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/multisig.log | grep -E "MultiSig|deployed at:|Error" | head -3
|
||||
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
@@ -80,7 +80,7 @@ deploy_contract() {
|
||||
log_warn "Deploying ${contract_name}..."
|
||||
|
||||
# Run deployment script
|
||||
local output=$(forge script "$script_name" \
|
||||
local output=$(forge_scoped script "$script_name" \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -132,7 +132,7 @@ if [ -z "$CCIP_ROUTER" ] || [ "$CCIP_ROUTER" = "0x000000000000000000000000000000
|
||||
log_warn "Warning: CCIP_FEE_TOKEN not set. Using zero address (native token)"
|
||||
fi
|
||||
|
||||
CCIP_ROUTER_ADDRESS=$(forge script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
|
||||
CCIP_ROUTER_ADDRESS=$(forge_scoped script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
|
||||
--sig "run(address,uint256,uint256)" "$FEE_TOKEN" "$BASE_FEE" "$DATA_FEE_PER_BYTE" \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
@@ -269,4 +269,3 @@ log_success "Oracle Aggregator: ${ORACLE_ADDRESS}"
|
||||
|
||||
log_success "=== Deployment Complete ==="
|
||||
log_success "All contract addresses have been updated in .env file"
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ log_warn "Phase 1: Deploying independent contracts in parallel..."
|
||||
# Deploy Multicall, WETH9, and WETH10 in parallel
|
||||
{
|
||||
log_warn "Deploying Multicall..."
|
||||
MULTICALL_OUTPUT=$(forge script script/DeployMulticall.s.sol:DeployMulticall \
|
||||
MULTICALL_OUTPUT=$(forge_scoped script script/DeployMulticall.s.sol:DeployMulticall \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -104,7 +104,7 @@ MULTICALL_PID=$!
|
||||
|
||||
{
|
||||
log_warn "Deploying WETH9..."
|
||||
WETH9_OUTPUT=$(forge script script/DeployWETH.s.sol:DeployWETH \
|
||||
WETH9_OUTPUT=$(forge_scoped script script/DeployWETH.s.sol:DeployWETH \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -119,7 +119,7 @@ WETH9_PID=$!
|
||||
|
||||
{
|
||||
log_warn "Deploying WETH10..."
|
||||
WETH10_OUTPUT=$(forge script script/DeployWETH10.s.sol:DeployWETH10 \
|
||||
WETH10_OUTPUT=$(forge_scoped script script/DeployWETH10.s.sol:DeployWETH10 \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -143,7 +143,7 @@ source .env
|
||||
# Phase 2: CCIP Router (if needed)
|
||||
if [ -z "$CCIP_ROUTER" ] || [ "$CCIP_ROUTER" = "0x0000000000000000000000000000000000000000" ]; then
|
||||
log_warn "Phase 2: Deploying CCIP Router..."
|
||||
CCIP_ROUTER_OUTPUT=$(forge script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
|
||||
CCIP_ROUTER_OUTPUT=$(forge_scoped script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
|
||||
--sig "run(address,uint256,uint256)" \
|
||||
"$CCIP_FEE_TOKEN" \
|
||||
"1000000000000000" \
|
||||
@@ -171,7 +171,7 @@ if [ "${DEPLOY_BRIDGES:-true}" = "true" ] && [ -n "$CCIP_ROUTER" ] && [ -n "$WET
|
||||
{
|
||||
log_warn "Deploying CCIPWETH9Bridge..."
|
||||
export CCIP_ROUTER WETH9_ADDRESS CCIP_FEE_TOKEN
|
||||
BRIDGE9_OUTPUT=$(forge script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge \
|
||||
BRIDGE9_OUTPUT=$(forge_scoped script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -187,7 +187,7 @@ if [ "${DEPLOY_BRIDGES:-true}" = "true" ] && [ -n "$CCIP_ROUTER" ] && [ -n "$WET
|
||||
{
|
||||
log_warn "Deploying CCIPWETH10Bridge..."
|
||||
export CCIP_ROUTER WETH10_ADDRESS CCIP_FEE_TOKEN
|
||||
BRIDGE10_OUTPUT=$(forge script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge \
|
||||
BRIDGE10_OUTPUT=$(forge_scoped script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -212,7 +212,7 @@ log_warn "Phase 4: Deploying Oracle and MultiSig in parallel..."
|
||||
# Deploy Oracle (independent)
|
||||
{
|
||||
export ORACLE_DESCRIPTION ORACLE_HEARTBEAT ORACLE_DEVIATION_THRESHOLD
|
||||
ORACLE_OUTPUT=$(forge script script/DeployOracle.s.sol:DeployOracle \
|
||||
ORACLE_OUTPUT=$(forge_scoped script script/DeployOracle.s.sol:DeployOracle \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -241,7 +241,7 @@ if [ -z "$MULTISIG_OWNERS" ]; then
|
||||
else
|
||||
{
|
||||
export OWNERS="$MULTISIG_OWNERS"
|
||||
MULTISIG_OUTPUT=$(forge script script/DeployMultiSig.s.sol:DeployMultiSig \
|
||||
MULTISIG_OUTPUT=$(forge_scoped script script/DeployMultiSig.s.sol:DeployMultiSig \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
@@ -279,4 +279,3 @@ log_success "MultiSig: ${MULTISIG_ADDRESS:-N/A}"
|
||||
log_success ""
|
||||
log_success "=== Parallel Deployment Complete ==="
|
||||
log_success "All addresses have been updated in .env file"
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
FORGE_SCOPE_RUNNER=(bash "$PROJECT_ROOT/scripts/forge/scope.sh")
|
||||
# Load .env via dotenv (RPC CR/LF trim). Fallback: raw source.
|
||||
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
@@ -146,7 +147,7 @@ deploy_contract() {
|
||||
return
|
||||
fi
|
||||
|
||||
forge script "$script" \
|
||||
"${FORGE_SCOPE_RUNNER[@]}" script "$script" \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
|
||||
@@ -108,44 +108,44 @@ echo ""
|
||||
|
||||
# Phase 1: CREATE2 / Deterministic core
|
||||
run_phase 1 "Deterministic core (DeployDeterministicCore)" "CREATE2_FACTORY" \
|
||||
"forge script script/deploy/DeployDeterministicCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/DeployDeterministicCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 2: Vault system
|
||||
run_phase 2 "Vault system (DeployVaultSystem)" "VAULT_FACTORY" \
|
||||
"forge script script/deploy/vault/DeployVaultSystem.s.sol:DeployVaultSystem --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/vault/DeployVaultSystem.s.sol:DeployVaultSystem --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 3: Reserve system (requires TOKEN_FACTORY)
|
||||
run_phase 3 "Reserve system (DeployReserveSystem)" "RESERVE_SYSTEM" \
|
||||
"forge script script/reserve/DeployReserveSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/reserve/DeployReserveSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 4: Reserve Keeper (requires ORACLE_PRICE_FEED unless RESERVE_KEEPER already set)
|
||||
run_phase 4 "Reserve Keeper (DeployKeeper)" "RESERVE_KEEPER" \
|
||||
"forge script script/reserve/DeployKeeper.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\"" \
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/reserve/DeployKeeper.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\"" \
|
||||
"ORACLE_PRICE_FEED"
|
||||
|
||||
# Phase 5: PaymentChannelManager + GenericStateChannelManager
|
||||
run_phase 5a "PaymentChannelManager" "PAYMENT_CHANNEL_MANAGER" \
|
||||
"forge script script/DeployPaymentChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/DeployPaymentChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
run_phase 5b "GenericStateChannelManager" "GENERIC_STATE_CHANNEL_MANAGER" \
|
||||
"forge script script/DeployGenericStateChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/DeployGenericStateChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 6: Trustless bridge (Lockbox138 on Chain 138)
|
||||
run_phase 6 "Trustless bridge (Lockbox138)" "LOCKBOX_138" \
|
||||
"forge script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 7: DODO / Swap (requires DODO_VENDING_MACHINE_ADDRESS, COMPLIANT_USDT_ADDRESS, COMPLIANT_USDC_ADDRESS)
|
||||
run_phase 7 "DODO PMM Integration" "DODOPMM_INTEGRATION_ADDRESS" \
|
||||
"forge script script/dex/DeployDODOPMMIntegration.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\"" \
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/dex/DeployDODOPMMIntegration.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\"" \
|
||||
"DODO_VENDING_MACHINE_ADDRESS"
|
||||
|
||||
# Phase 8: eMoney (Chain 138)
|
||||
run_phase 8 "eMoney (DeployChain138)" "TOKEN_FACTORY_138" \
|
||||
"forge script script/emoney/DeployChain138.s.sol:DeployChain138 --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/emoney/DeployChain138.s.sol:DeployChain138 --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
# Phase 9: Smart accounts (informational — actual deploy from ERC-4337 impl)
|
||||
run_phase 9 "Smart accounts kit (informational)" "" \
|
||||
"forge script script/smart-accounts/DeploySmartAccountsKit.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/smart-accounts/DeploySmartAccountsKit.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
|
||||
|
||||
echo ""
|
||||
echo "============================================"
|
||||
|
||||
@@ -3,6 +3,11 @@
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
@@ -11,10 +16,11 @@ NC='\033[0m' # No Color
|
||||
|
||||
# Configuration
|
||||
FABRIC_NETWORK="${FABRIC_NETWORK:-fabric-network}"
|
||||
CHAIN_138_RPC_URL="${CHAIN_138_RPC_URL:-http://localhost:8545}"
|
||||
CHAIN_138_RPC_URL="${CHAIN_138_RPC_URL:-${RPC_URL_138:-http://localhost:8545}}"
|
||||
FIREFLY_API_URL="${FIREFLY_API_URL:-http://localhost:5000}"
|
||||
CACTI_API_URL="${CACTI_API_URL:-http://localhost:4000}"
|
||||
INDY_API_URL="${INDY_API_URL:-http://localhost:9000}"
|
||||
DEPLOYER_PRIVATE_KEY="${DEPLOYER_PRIVATE_KEY:-${PRIVATE_KEY:-}}"
|
||||
|
||||
echo -e "${GREEN}Deploying Tokenization System...${NC}"
|
||||
|
||||
@@ -61,6 +67,18 @@ if [ -z "$DEPLOYER_PRIVATE_KEY" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for required_script in \
|
||||
script/tokenization/DeployTokenizedEUR.s.sol \
|
||||
script/tokenization/DeployTokenRegistry.s.sol \
|
||||
script/tokenization/RegisterToken.s.sol
|
||||
do
|
||||
if [ ! -f "$required_script" ]; then
|
||||
echo -e "${RED}Error: missing required script $required_script${NC}"
|
||||
echo -e "${YELLOW}This deployment wrapper is stale relative to the current repo layout and needs refreshed tokenization scripts before it can run.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
TOKENIZED_EUR_ADDRESS=$(forge script script/tokenization/DeployTokenizedEUR.s.sol \
|
||||
--rpc-url "$CHAIN_138_RPC_URL" \
|
||||
--private-key "$DEPLOYER_PRIVATE_KEY" \
|
||||
|
||||
@@ -50,6 +50,7 @@ elif [[ -f "$ENV_FILE" ]]; then
|
||||
set +a
|
||||
ENV_SOURCE="$ENV_FILE"
|
||||
fi
|
||||
source "$SMOM_ROOT/scripts/lib/forge-scope.sh"
|
||||
|
||||
RPC_URL_138="${RPC_URL_138:-http://192.168.11.211:8545}"
|
||||
WETH="${WETH:-$CHAIN138_WETH_DEFAULT}"
|
||||
@@ -231,9 +232,9 @@ echo ""
|
||||
|
||||
echo "Exact dry-run command"
|
||||
if [[ -f "$PROJECT_ENV_LOADER" ]]; then
|
||||
echo "cd \"$PROJECT_ROOT\" && source scripts/lib/load-project-env.sh && cd smom-dbis-138 && forge script script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
|
||||
echo "cd \"$PROJECT_ROOT\" && source scripts/lib/load-project-env.sh && cd smom-dbis-138 && bash scripts/forge/scope.sh script bridge/trustless script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
|
||||
else
|
||||
echo "cd \"$SMOM_ROOT\" && source .env && forge script script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
|
||||
echo "cd \"$SMOM_ROOT\" && source .env && bash scripts/forge/scope.sh script bridge/trustless script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
|
||||
fi
|
||||
echo ""
|
||||
echo "Example minimal exports before dry-run"
|
||||
|
||||
@@ -45,6 +45,7 @@ elif [[ -f "$ENV_FILE" ]]; then
|
||||
set +a
|
||||
ENV_SOURCE="$ENV_FILE"
|
||||
fi
|
||||
source "$SMOM_ROOT/scripts/lib/forge-scope.sh"
|
||||
|
||||
RPC_URL_138="${RPC_URL_138:-http://192.168.11.211:8545}"
|
||||
WETH="${WETH:-0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}"
|
||||
|
||||
@@ -3,7 +3,11 @@
|
||||
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$0")/../.."
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
# Color codes
|
||||
|
||||
@@ -49,8 +53,8 @@ declare -A CONTRACT_DEPS=(
|
||||
|
||||
declare -A CONTRACT_SCRIPTS=(
|
||||
["CCIPLogger"]="npx hardhat run scripts/ccip-deployment/deploy-ccip-logger.js --network mainnet"
|
||||
["CCIPWETH9Bridge"]="forge script script/DeployCCIPWETH9Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
["CCIPWETH10Bridge"]="forge script script/DeployCCIPWETH10Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
["CCIPWETH9Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
["CCIPWETH10Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
)
|
||||
|
||||
TOTAL_COST_WEI=0
|
||||
@@ -80,7 +84,7 @@ COSTS["CCIPWETH9Bridge"]=$cost_eth
|
||||
TOTAL_COST_WEI=$(echo "$TOTAL_COST_WEI + $cost_wei" | bc 2>/dev/null)
|
||||
echo " Estimated Cost: $cost_eth ETH"
|
||||
echo " Dependencies: CCIPRouter"
|
||||
echo " Script: forge script script/DeployCCIPWETH9Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
echo " Script: bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
|
||||
echo "3. CCIPWETH10Bridge"
|
||||
echo " Location: contracts/ccip/CCIPWETH10Bridge.sol"
|
||||
@@ -93,7 +97,7 @@ COSTS["CCIPWETH10Bridge"]=$cost_eth
|
||||
TOTAL_COST_WEI=$(echo "$TOTAL_COST_WEI + $cost_wei" | bc 2>/dev/null)
|
||||
echo " Estimated Cost: $cost_eth ETH"
|
||||
echo " Dependencies: CCIPRouter"
|
||||
echo " Script: forge script script/DeployCCIPWETH10Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
echo " Script: bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
|
||||
TOTAL_COST_ETH=$(echo "scale=10; $TOTAL_COST_WEI / 1000000000000000000" | bc 2>/dev/null)
|
||||
|
||||
|
||||
@@ -3,7 +3,11 @@
|
||||
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$0")/../.."
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
# Color codes
|
||||
|
||||
@@ -35,8 +39,8 @@ declare -A CONTRACT_DEPS=(
|
||||
|
||||
declare -A CONTRACT_SCRIPTS=(
|
||||
["CCIPLogger"]="npx hardhat run scripts/ccip-deployment/deploy-ccip-logger.js --network mainnet"
|
||||
["CCIPWETH9Bridge"]="forge script script/DeployCCIPWETH9Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
["CCIPWETH10Bridge"]="forge script script/DeployCCIPWETH10Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
["CCIPWETH9Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
["CCIPWETH10Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
)
|
||||
|
||||
log_success "Remaining Contracts for Mainnet Deployment:"
|
||||
|
||||
@@ -5,12 +5,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
SMOM_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
ENV_FILE="$SMOM_ROOT/.env"
|
||||
|
||||
if [[ -f "$ENV_FILE" ]]; then
|
||||
set -a
|
||||
# shellcheck disable=SC1090
|
||||
source "$ENV_FILE"
|
||||
set +a
|
||||
fi
|
||||
source "$SMOM_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
RPC_URL_138="${RPC_URL_138:-http://192.168.11.211:8545}"
|
||||
DODO_PMM_INTEGRATION_ADDRESS="${DODO_PMM_INTEGRATION_ADDRESS:-${DODO_PMM_INTEGRATION:-}}"
|
||||
@@ -114,7 +109,7 @@ for pool in "${pools[@]}"; do
|
||||
done
|
||||
|
||||
echo "Dry-run command:"
|
||||
echo " cd \"$SMOM_ROOT\" && source .env && bash scripts/deployment/inventory-register-dodo-pools-chain138.sh"
|
||||
echo " cd \"$SMOM_ROOT\" && source scripts/load-env.sh && bash scripts/deployment/inventory-register-dodo-pools-chain138.sh"
|
||||
echo ""
|
||||
echo "Broadcast command:"
|
||||
echo " cd \"$SMOM_ROOT\" && source .env && forge script script/liquidity/RegisterDODOPools.s.sol:RegisterDODOPools --rpc-url \"\$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\" --broadcast --slow --with-gas-price 1000000000"
|
||||
echo " cd \"$SMOM_ROOT\" && source scripts/load-env.sh && bash scripts/forge/scope.sh script liquidity script/liquidity/RegisterDODOPools.s.sol:RegisterDODOPools --rpc-url \"\$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\" --broadcast --slow --with-gas-price 1000000000"
|
||||
|
||||
@@ -39,12 +39,10 @@ echo " - WETH10: Predeployed at 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f"
|
||||
echo " - Status: Already exist on Mainnet (no deployment needed)"
|
||||
|
||||
log_info "4. CCIPTxReporter"
|
||||
echo " - CCIPTxReporter.sol (Chain-138 sender)"
|
||||
echo " Location: contracts/ccip-integration/CCIPTxReporter.sol"
|
||||
echo " Deployment: Hardhat script"
|
||||
echo " Script: scripts/ccip-deployment/deploy-ccip-reporter.js"
|
||||
echo " Status: Deploys to Chain-138 (not Mainnet)"
|
||||
echo " Note: This contract is deployed on Chain-138, not Mainnet"
|
||||
echo " - Historical Chain-138 sender"
|
||||
echo " Source archive: archive/solidity/contracts/ccip-integration/CCIPTxReporter.sol"
|
||||
echo " Status: Not part of the active Mainnet deployment set"
|
||||
echo " Note: Use CHAIN138_CCIP_REPORTER for the existing deployment if this flow is still needed"
|
||||
|
||||
log_warn "Summary:"
|
||||
echo " Total contracts for Mainnet: 3"
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Phase 2: Deploy Core Bridge Contracts ==="
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
# Load environment variables
|
||||
if [ -f .env ]; then
|
||||
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
|
||||
fi
|
||||
echo "=== Phase 2: Deploy Core Bridge Contracts ==="
|
||||
|
||||
# Check required variables
|
||||
REQUIRED_VARS=(
|
||||
@@ -72,4 +72,3 @@ echo ""
|
||||
echo "=== Phase 2 Complete ==="
|
||||
echo "Core bridge contracts deployed"
|
||||
echo "⚠️ Remember to update .env with all contract addresses"
|
||||
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Phase 3: Deploy EnhancedSwapRouter ==="
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
# Load environment variables
|
||||
if [ -f .env ]; then
|
||||
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
|
||||
fi
|
||||
echo "=== Phase 3: Deploy EnhancedSwapRouter ==="
|
||||
|
||||
# Check required variables
|
||||
REQUIRED_VARS=(
|
||||
@@ -55,4 +55,3 @@ echo ""
|
||||
echo "=== Phase 3 Complete ==="
|
||||
echo "EnhancedSwapRouter deployed"
|
||||
echo "⚠️ Remember to update .env with ENHANCED_SWAP_ROUTER address"
|
||||
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Phase 4: Deploy Integration Contracts ==="
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
# Load environment variables
|
||||
if [ -f .env ]; then
|
||||
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
|
||||
fi
|
||||
echo "=== Phase 4: Deploy Integration Contracts ==="
|
||||
|
||||
# Check required variables
|
||||
REQUIRED_VARS=(
|
||||
@@ -52,4 +52,3 @@ echo ""
|
||||
echo "=== Phase 4 Complete ==="
|
||||
echo "Integration contracts deployed"
|
||||
echo "⚠️ Remember to update .env with all contract addresses"
|
||||
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Phase 5: Initialize System ==="
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
# Load environment variables
|
||||
if [ -f .env ]; then
|
||||
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
|
||||
fi
|
||||
echo "=== Phase 5: Initialize System ==="
|
||||
|
||||
# Check required variables
|
||||
REQUIRED_VARS=(
|
||||
@@ -39,4 +39,3 @@ forge script script/bridge/trustless/InitializeBridgeSystem.s.sol:InitializeBrid
|
||||
echo ""
|
||||
echo "=== Phase 5 Complete ==="
|
||||
echo "System initialized and configured"
|
||||
|
||||
|
||||
@@ -3,7 +3,11 @@
|
||||
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$0")/../.."
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
cd "$PROJECT_ROOT"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
|
||||
|
||||
echo "=== Mainnet Deployment Prioritization ==="
|
||||
|
||||
@@ -32,8 +36,8 @@ declare -A CONTRACT_DEPS=(
|
||||
# Contract deployment scripts
|
||||
declare -A CONTRACT_SCRIPTS=(
|
||||
["CCIPLogger"]="npx hardhat run scripts/ccip-deployment/deploy-ccip-logger.js --network mainnet"
|
||||
["CCIPWETH9Bridge"]="forge script script/DeployCCIPWETH9Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
["CCIPWETH10Bridge"]="forge script script/DeployCCIPWETH10Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
["CCIPWETH9Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
["CCIPWETH10Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
|
||||
)
|
||||
|
||||
log_info "Wallet Balance: $WALLET_BALANCE ETH"
|
||||
|
||||
@@ -58,5 +58,6 @@ fi
|
||||
log_success "✅ Chain-138 environment setup complete"
|
||||
echo "Next steps:"
|
||||
echo " 1. Verify RPC connectivity: ./scripts/deployment/verify-chain138-full-deployment.sh"
|
||||
echo " 2. Deploy CCIPTxReporter: npm run deploy:reporter:chain138"
|
||||
echo " 2. If you use the historical CCIPTxReporter flow, set CHAIN138_CCIP_REPORTER in .env"
|
||||
echo " Source archive: archive/solidity/contracts/ccip-integration/CCIPTxReporter.sol"
|
||||
echo " 3. Run verification: ./scripts/deployment/verify-chain138-complete.sh"
|
||||
|
||||
Reference in New Issue
Block a user