Import sibling archive WIP: keeper stack, CCIP scripts, and CCIP docs
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
95
scripts/deployment/configure-ccip-router.sh
Executable file
95
scripts/deployment/configure-ccip-router.sh
Executable file
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/env bash
|
||||
# Configure CCIP Router with supported chains and tokens
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
# Load environment
|
||||
if [ -f "$PROJECT_ROOT/.env" ]; then
|
||||
source "$PROJECT_ROOT/.env"
|
||||
fi
|
||||
|
||||
RPC_URL="${RPC_URL_138:-${CHAIN138_RPC_URL:-http://localhost:8545}}"
|
||||
PRIVATE_KEY="${PRIVATE_KEY:-}"
|
||||
|
||||
if [ -z "$PRIVATE_KEY" ]; then
|
||||
log_error "Error: PRIVATE_KEY environment variable not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CCIP_ROUTER="${CCIP_CHAIN138_ROUTER:-${CCIP_ROUTER:-}}"
|
||||
|
||||
if [ -z "$CCIP_ROUTER" ]; then
|
||||
log_error "Error: CCIP_CHAIN138_ROUTER not set. Deploy router first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_info "Configuring CCIP Router: $CCIP_ROUTER"
|
||||
log_info "RPC URL: $RPC_URL"
|
||||
|
||||
# Chain selectors
|
||||
ETH_MAINNET_SELECTOR="${ETH_MAINNET_SELECTOR:-5009297550715157269}"
|
||||
CHAIN138_SELECTOR="${CHAIN138_SELECTOR:-138}"
|
||||
|
||||
# Token addresses (from genesis)
|
||||
WETH9_ADDRESS="0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
|
||||
WETH10_ADDRESS="0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f"
|
||||
|
||||
log_info "Adding supported chains..."
|
||||
|
||||
# Add Ethereum Mainnet as supported chain
|
||||
log_info "Adding Ethereum Mainnet (selector: $ETH_MAINNET_SELECTOR)..."
|
||||
if cast send "$CCIP_ROUTER" "addSupportedChain(uint64)" "$ETH_MAINNET_SELECTOR" \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
--legacy 2>&1 | grep -q "Success\|success\|transactionHash"; then
|
||||
log_success "✅ Ethereum Mainnet added as supported chain"
|
||||
else
|
||||
log_warn "⚠️ Failed to add Ethereum Mainnet (may already be added)"
|
||||
fi
|
||||
|
||||
# Add supported tokens for Ethereum Mainnet
|
||||
log_info "Adding supported tokens for Ethereum Mainnet..."
|
||||
|
||||
log_info "Adding WETH9 ($WETH9_ADDRESS)..."
|
||||
if cast send "$CCIP_ROUTER" "addSupportedToken(uint64,address)" "$ETH_MAINNET_SELECTOR" "$WETH9_ADDRESS" \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
--legacy 2>&1 | grep -q "Success\|success\|transactionHash"; then
|
||||
log_success "✅ WETH9 added as supported token"
|
||||
else
|
||||
log_warn "⚠️ Failed to add WETH9 (may already be added)"
|
||||
fi
|
||||
|
||||
log_info "Adding WETH10 ($WETH10_ADDRESS)..."
|
||||
if cast send "$CCIP_ROUTER" "addSupportedToken(uint64,address)" "$ETH_MAINNET_SELECTOR" "$WETH10_ADDRESS" \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--private-key "$PRIVATE_KEY" \
|
||||
--legacy 2>&1 | grep -q "Success\|success\|transactionHash"; then
|
||||
log_success "✅ WETH10 added as supported token"
|
||||
else
|
||||
log_warn "⚠️ Failed to add WETH10 (may already be added)"
|
||||
fi
|
||||
|
||||
# Verify configuration
|
||||
log_info "Verifying configuration..."
|
||||
|
||||
ETH_CHAIN_SUPPORTED=$(cast call "$CCIP_ROUTER" "supportedChains(uint64)" "$ETH_MAINNET_SELECTOR" --rpc-url "$RPC_URL" 2>/dev/null || echo "false")
|
||||
if [ "$ETH_CHAIN_SUPPORTED" = "true" ]; then
|
||||
log_success "✅ Ethereum Mainnet is supported"
|
||||
else
|
||||
log_warn "⚠️ Ethereum Mainnet support verification failed"
|
||||
fi
|
||||
|
||||
log_success "✅ CCIP Router configuration complete!"
|
||||
echo ""
|
||||
echo "Router Address: $CCIP_ROUTER"
|
||||
echo "Supported Chains:"
|
||||
echo " - Ethereum Mainnet ($ETH_MAINNET_SELECTOR)"
|
||||
echo "Supported Tokens (Ethereum Mainnet):"
|
||||
echo " - WETH9: $WETH9_ADDRESS"
|
||||
echo " - WETH10: $WETH10_ADDRESS"
|
||||
|
||||
189
scripts/deployment/deploy-ccip-chain138-complete.sh
Executable file
189
scripts/deployment/deploy-ccip-chain138-complete.sh
Executable file
@@ -0,0 +1,189 @@
|
||||
#!/usr/bin/env bash
|
||||
# Complete CCIP Deployment Script for ChainID 138
|
||||
# This script performs the complete CCIP deployment and configuration
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
# Load environment
|
||||
if [ -f "$PROJECT_ROOT/.env" ]; then
|
||||
source "$PROJECT_ROOT/.env"
|
||||
fi
|
||||
|
||||
RPC_URL="${RPC_URL_138:-${CHAIN138_RPC_URL:-http://localhost:8545}}"
|
||||
PRIVATE_KEY="${PRIVATE_KEY:-}"
|
||||
|
||||
if [ -z "$PRIVATE_KEY" ]; then
|
||||
log_error "Error: PRIVATE_KEY environment variable not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_info "=== CCIP Complete Deployment for ChainID 138 ==="
|
||||
echo "RPC URL: $RPC_URL"
|
||||
echo ""
|
||||
|
||||
# Verify RPC connectivity
|
||||
if ! cast block-number --rpc-url "$RPC_URL" &>/dev/null; then
|
||||
log_error "Error: Cannot connect to RPC at $RPC_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CHAIN_ID=$(cast chain-id --rpc-url "$RPC_URL" 2>/dev/null || echo "unknown")
|
||||
if [ "$CHAIN_ID" != "138" ]; then
|
||||
log_warn "⚠️ Warning: Chain ID is $CHAIN_ID, expected 138"
|
||||
read -p "Continue anyway? (y/N) " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Chain ID: $CHAIN_ID"
|
||||
echo ""
|
||||
|
||||
# Step 1: Calculate Chain Selector
|
||||
log_info "Step 1: Calculating chain selector..."
|
||||
if [ -f "$PROJECT_ROOT/scripts/ccip/calculate-chain-selector.sh" ]; then
|
||||
bash "$PROJECT_ROOT/scripts/ccip/calculate-chain-selector.sh"
|
||||
log_success "✅ Chain selector calculated"
|
||||
else
|
||||
log_warn "⚠️ Chain selector script not found, using default: 138"
|
||||
CHAIN138_SELECTOR="${CHAIN138_SELECTOR:-138}"
|
||||
fi
|
||||
|
||||
# Step 2: Deploy CCIP Router
|
||||
log_info "Step 2: Deploying CCIP Router..."
|
||||
CCIP_ROUTER="${CCIP_CHAIN138_ROUTER:-}"
|
||||
|
||||
if [ -z "$CCIP_ROUTER" ] || [ "$CCIP_ROUTER" = "" ]; then
|
||||
log_info "Deploying CCIP Router..."
|
||||
|
||||
# Set default fee configuration if not set
|
||||
export CCIP_FEE_TOKEN="${CCIP_CHAIN138_LINK_TOKEN:-0x0000000000000000000000000000000000000000}"
|
||||
export CCIP_BASE_FEE="${CCIP_BASE_FEE:-1000000000000000}"
|
||||
export CCIP_DATA_FEE_PER_BYTE="${CCIP_DATA_FEE_PER_BYTE:-100000000}"
|
||||
|
||||
ROUTER_OUTPUT=$(forge script script/DeployCCIPRouter.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" 2>&1 || true)
|
||||
|
||||
ROUTER_ADDRESS=$(echo "$ROUTER_OUTPUT" | grep -E "CCIP Router deployed at:|deployed at:" | tail -1 | sed 's/.*at: //' | awk '{print $1}' | tr -d '\n' || echo "")
|
||||
|
||||
if [ -n "$ROUTER_ADDRESS" ] && [ "$ROUTER_ADDRESS" != "" ]; then
|
||||
CCIP_ROUTER="$ROUTER_ADDRESS"
|
||||
log_success "✅ CCIP Router deployed at: $CCIP_ROUTER"
|
||||
|
||||
# Update .env
|
||||
if grep -q "^CCIP_CHAIN138_ROUTER=" "$PROJECT_ROOT/.env" 2>/dev/null; then
|
||||
sed -i.bak "s|^CCIP_CHAIN138_ROUTER=.*|CCIP_CHAIN138_ROUTER=$CCIP_ROUTER|" "$PROJECT_ROOT/.env"
|
||||
else
|
||||
echo "CCIP_CHAIN138_ROUTER=$CCIP_ROUTER" >> "$PROJECT_ROOT/.env"
|
||||
fi
|
||||
|
||||
# Configure router
|
||||
log_info "Configuring CCIP Router..."
|
||||
export CCIP_CHAIN138_ROUTER="$CCIP_ROUTER"
|
||||
bash "$PROJECT_ROOT/scripts/deployment/configure-ccip-router.sh" || log_warn "⚠️ Router configuration had issues"
|
||||
else
|
||||
log_error "❌ Failed to deploy CCIP Router"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
log_success "✅ CCIP Router already deployed: $CCIP_ROUTER"
|
||||
fi
|
||||
|
||||
# Step 3: Deploy CCIPWETH9Bridge
|
||||
log_info "Step 3: Deploying CCIPWETH9Bridge..."
|
||||
WETH9_BRIDGE="${CCIPWETH9_BRIDGE_CHAIN138:-}"
|
||||
|
||||
if [ -z "$WETH9_BRIDGE" ] || [ "$WETH9_BRIDGE" = "" ]; then
|
||||
log_info "Deploying CCIPWETH9Bridge..."
|
||||
|
||||
export CCIP_ROUTER="$CCIP_ROUTER"
|
||||
export CCIP_FEE_TOKEN="${CCIP_CHAIN138_LINK_TOKEN:-0x0000000000000000000000000000000000000000}"
|
||||
|
||||
BRIDGE9_OUTPUT=$(forge script script/DeployCCIPWETH9Bridge.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" 2>&1 || true)
|
||||
|
||||
BRIDGE9_ADDRESS=$(echo "$BRIDGE9_OUTPUT" | grep -E "CCIPWETH9Bridge deployed at:|deployed at:" | tail -1 | sed 's/.*at: //' | awk '{print $1}' | tr -d '\n' || echo "")
|
||||
|
||||
if [ -n "$BRIDGE9_ADDRESS" ] && [ "$BRIDGE9_ADDRESS" != "" ]; then
|
||||
WETH9_BRIDGE="$BRIDGE9_ADDRESS"
|
||||
log_success "✅ CCIPWETH9Bridge deployed at: $WETH9_BRIDGE"
|
||||
|
||||
# Update .env
|
||||
if grep -q "^CCIPWETH9_BRIDGE_CHAIN138=" "$PROJECT_ROOT/.env" 2>/dev/null; then
|
||||
sed -i.bak "s|^CCIPWETH9_BRIDGE_CHAIN138=.*|CCIPWETH9_BRIDGE_CHAIN138=$WETH9_BRIDGE|" "$PROJECT_ROOT/.env"
|
||||
else
|
||||
echo "CCIPWETH9_BRIDGE_CHAIN138=$WETH9_BRIDGE" >> "$PROJECT_ROOT/.env"
|
||||
fi
|
||||
else
|
||||
log_error "❌ Failed to deploy CCIPWETH9Bridge"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
log_success "✅ CCIPWETH9Bridge already deployed: $WETH9_BRIDGE"
|
||||
fi
|
||||
|
||||
# Step 4: Deploy CCIPWETH10Bridge
|
||||
log_info "Step 4: Deploying CCIPWETH10Bridge..."
|
||||
WETH10_BRIDGE="${CCIPWETH10_BRIDGE_CHAIN138:-}"
|
||||
|
||||
if [ -z "$WETH10_BRIDGE" ] || [ "$WETH10_BRIDGE" = "" ]; then
|
||||
log_info "Deploying CCIPWETH10Bridge..."
|
||||
|
||||
export CCIP_ROUTER="$CCIP_ROUTER"
|
||||
export CCIP_FEE_TOKEN="${CCIP_CHAIN138_LINK_TOKEN:-0x0000000000000000000000000000000000000000}"
|
||||
|
||||
BRIDGE10_OUTPUT=$(forge script script/DeployCCIPWETH10Bridge.s.sol \
|
||||
--rpc-url "$RPC_URL" \
|
||||
--broadcast \
|
||||
--private-key "$PRIVATE_KEY" 2>&1 || true)
|
||||
|
||||
BRIDGE10_ADDRESS=$(echo "$BRIDGE10_OUTPUT" | grep -E "CCIPWETH10Bridge deployed at:|deployed at:" | tail -1 | sed 's/.*at: //' | awk '{print $1}' | tr -d '\n' || echo "")
|
||||
|
||||
if [ -n "$BRIDGE10_ADDRESS" ] && [ "$BRIDGE10_ADDRESS" != "" ]; then
|
||||
WETH10_BRIDGE="$BRIDGE10_ADDRESS"
|
||||
log_success "✅ CCIPWETH10Bridge deployed at: $WETH10_BRIDGE"
|
||||
|
||||
# Update .env
|
||||
if grep -q "^CCIPWETH10_BRIDGE_CHAIN138=" "$PROJECT_ROOT/.env" 2>/dev/null; then
|
||||
sed -i.bak "s|^CCIPWETH10_BRIDGE_CHAIN138=.*|CCIPWETH10_BRIDGE_CHAIN138=$WETH10_BRIDGE|" "$PROJECT_ROOT/.env"
|
||||
else
|
||||
echo "CCIPWETH10_BRIDGE_CHAIN138=$WETH10_BRIDGE" >> "$PROJECT_ROOT/.env"
|
||||
fi
|
||||
else
|
||||
log_error "❌ Failed to deploy CCIPWETH10Bridge"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
log_success "✅ CCIPWETH10Bridge already deployed: $WETH10_BRIDGE"
|
||||
fi
|
||||
|
||||
# Step 5: Verify Deployment
|
||||
log_info "Step 5: Verifying deployment..."
|
||||
bash "$PROJECT_ROOT/scripts/deployment/verify-ccip-deployment.sh" || log_warn "⚠️ Verification had issues"
|
||||
|
||||
# Step 6: Summary
|
||||
echo ""
|
||||
log_success "=== Deployment Summary ==="
|
||||
echo "CCIP Router: $CCIP_ROUTER"
|
||||
echo "CCIPWETH9Bridge: $WETH9_BRIDGE"
|
||||
echo "CCIPWETH10Bridge: $WETH10_BRIDGE"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo "1. Configure bridge destinations:"
|
||||
echo " ./scripts/deployment/configure-weth9-bridge.sh"
|
||||
echo " ./scripts/deployment/configure-weth10-bridge.sh"
|
||||
echo "2. Verify on explorer"
|
||||
echo "3. Test cross-chain transfers"
|
||||
echo "4. Update documentation with deployed addresses"
|
||||
|
||||
log_success "✅ CCIP deployment complete!"
|
||||
|
||||
180
scripts/deployment/verify-ccip-deployment.sh
Executable file
180
scripts/deployment/verify-ccip-deployment.sh
Executable file
@@ -0,0 +1,180 @@
|
||||
#!/usr/bin/env bash
|
||||
# Verify CCIP deployment on ChainID 138
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/../lib/init.sh"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
# Load environment
|
||||
if [ -f "$PROJECT_ROOT/.env" ]; then
|
||||
source "$PROJECT_ROOT/.env"
|
||||
fi
|
||||
|
||||
RPC_URL="${RPC_URL_138:-${CHAIN138_RPC_URL:-http://localhost:8545}}"
|
||||
|
||||
log_info "=== CCIP Deployment Verification for ChainID 138 ==="
|
||||
echo "RPC URL: $RPC_URL"
|
||||
echo ""
|
||||
|
||||
# Check if RPC is accessible
|
||||
if ! cast block-number --rpc-url "$RPC_URL" &>/dev/null; then
|
||||
log_error "Error: Cannot connect to RPC at $RPC_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CHAIN_ID=$(cast chain-id --rpc-url "$RPC_URL" 2>/dev/null || echo "unknown")
|
||||
if [ "$CHAIN_ID" != "138" ]; then
|
||||
log_warn "⚠️ Warning: Chain ID is $CHAIN_ID, expected 138"
|
||||
fi
|
||||
|
||||
echo "Chain ID: $CHAIN_ID"
|
||||
echo ""
|
||||
|
||||
# Required addresses
|
||||
CCIP_ROUTER="${CCIP_CHAIN138_ROUTER:-}"
|
||||
LINK_TOKEN="${CCIP_CHAIN138_LINK_TOKEN:-}"
|
||||
WETH9_BRIDGE="${CCIPWETH9_BRIDGE_CHAIN138:-}"
|
||||
WETH10_BRIDGE="${CCIPWETH10_BRIDGE_CHAIN138:-}"
|
||||
CHAIN_SELECTOR="${CHAIN138_SELECTOR:-}"
|
||||
|
||||
# Verification results
|
||||
VERIFICATION_PASSED=0
|
||||
VERIFICATION_FAILED=0
|
||||
VERIFICATION_WARNINGS=0
|
||||
|
||||
check_contract() {
|
||||
local name=$1
|
||||
local address=$2
|
||||
local required=${3:-true}
|
||||
|
||||
if [ -z "$address" ] || [ "$address" = "" ]; then
|
||||
if [ "$required" = "true" ]; then
|
||||
echo " ❌ $name: Not configured"
|
||||
((VERIFICATION_FAILED++))
|
||||
else
|
||||
echo " ⚠️ $name: Not configured (optional)"
|
||||
((VERIFICATION_WARNINGS++))
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check if address has code
|
||||
CODE=$(cast code "$address" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
|
||||
if [ -z "$CODE" ] || [ "$CODE" = "0x" ]; then
|
||||
echo " ❌ $name: No code at address $address"
|
||||
((VERIFICATION_FAILED++))
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo " ✅ $name: Deployed at $address"
|
||||
((VERIFICATION_PASSED++))
|
||||
return 0
|
||||
}
|
||||
|
||||
verify_router_config() {
|
||||
local router=$1
|
||||
if [ -z "$router" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Router Configuration:"
|
||||
|
||||
# Check supported chains
|
||||
ETH_SELECTOR="5009297550715157269"
|
||||
ETH_SUPPORTED=$(cast call "$router" "supportedChains(uint64)" "$ETH_SELECTOR" --rpc-url "$RPC_URL" 2>/dev/null || echo "false")
|
||||
if [ "$ETH_SUPPORTED" = "true" ]; then
|
||||
echo " ✅ Ethereum Mainnet is supported"
|
||||
else
|
||||
echo " ⚠️ Ethereum Mainnet not configured as supported chain"
|
||||
((VERIFICATION_WARNINGS++))
|
||||
fi
|
||||
|
||||
# Check fee token
|
||||
FEE_TOKEN=$(cast call "$router" "feeToken()" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
|
||||
if [ -n "$FEE_TOKEN" ]; then
|
||||
if [ "$FEE_TOKEN" = "0x0000000000000000000000000000000000000000" ]; then
|
||||
echo " ✅ Fee token: Native ETH"
|
||||
else
|
||||
echo " ✅ Fee token: $FEE_TOKEN"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
verify_bridge_config() {
|
||||
local bridge=$1
|
||||
local name=$2
|
||||
if [ -z "$bridge" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "$name Configuration:"
|
||||
|
||||
# Check router
|
||||
BRIDGE_ROUTER=$(cast call "$bridge" "ccipRouter()" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
|
||||
if [ -n "$BRIDGE_ROUTER" ] && [ "$BRIDGE_ROUTER" != "0x0000000000000000000000000000000000000000" ]; then
|
||||
echo " ✅ Router: $BRIDGE_ROUTER"
|
||||
else
|
||||
echo " ⚠️ Router not configured"
|
||||
((VERIFICATION_WARNINGS++))
|
||||
fi
|
||||
|
||||
# Check destinations
|
||||
ETH_SELECTOR="5009297550715157269"
|
||||
DEST=$(cast call "$bridge" "destinations(uint64)" "$ETH_SELECTOR" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
|
||||
if [ -n "$DEST" ] && echo "$DEST" | grep -q "0x[0-9a-f]\{40\}"; then
|
||||
echo " ✅ Ethereum Mainnet destination configured"
|
||||
else
|
||||
echo " ⚠️ Ethereum Mainnet destination not configured"
|
||||
((VERIFICATION_WARNINGS++))
|
||||
fi
|
||||
}
|
||||
|
||||
echo "=== Contract Deployment Verification ==="
|
||||
check_contract "CCIP Router" "$CCIP_ROUTER" true
|
||||
check_contract "LINK Token" "$LINK_TOKEN" false
|
||||
check_contract "CCIPWETH9Bridge" "$WETH9_BRIDGE" true
|
||||
check_contract "CCIPWETH10Bridge" "$WETH10_BRIDGE" true
|
||||
|
||||
if [ -n "$CCIP_ROUTER" ]; then
|
||||
verify_router_config "$CCIP_ROUTER"
|
||||
fi
|
||||
|
||||
if [ -n "$WETH9_BRIDGE" ]; then
|
||||
verify_bridge_config "$WETH9_BRIDGE" "CCIPWETH9Bridge"
|
||||
fi
|
||||
|
||||
if [ -n "$WETH10_BRIDGE" ]; then
|
||||
verify_bridge_config "$WETH10_BRIDGE" "CCIPWETH10Bridge"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== Chain Selector ==="
|
||||
if [ -n "$CHAIN_SELECTOR" ]; then
|
||||
echo " ✅ Chain Selector: $CHAIN_SELECTOR"
|
||||
else
|
||||
echo " ⚠️ Chain Selector: Not configured"
|
||||
((VERIFICATION_WARNINGS++))
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== Verification Summary ==="
|
||||
echo "✅ Passed: $VERIFICATION_PASSED"
|
||||
echo "❌ Failed: $VERIFICATION_FAILED"
|
||||
echo "⚠️ Warnings: $VERIFICATION_WARNINGS"
|
||||
echo ""
|
||||
|
||||
if [ $VERIFICATION_FAILED -eq 0 ]; then
|
||||
log_success "✅ All required contracts are deployed!"
|
||||
if [ $VERIFICATION_WARNINGS -gt 0 ]; then
|
||||
log_warn "⚠️ Some optional configurations are missing"
|
||||
fi
|
||||
exit 0
|
||||
else
|
||||
log_error "❌ Some required contracts are missing or invalid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user