Files
smom-dbis-138/scripts/deployment/verify-ccip-logger-other-chains.sh
2026-03-02 12:14:09 -08:00

81 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Verify CCIPLogger on Etherscan-V2-supported chains (BSC, Polygon, Gnosis, Optimism, Base, Arbitrum, Avalanche).
# Prerequisite: Deploy CCIPLogger per chain (deploy-ccip-logger-all-chains.sh) and set in .env:
# CCIP_LOGGER_BSC, CCIP_BSC_ROUTER (and same for polygon, gnosis, optimism, base, arbitrum, avalanche).
# Mainnet: already verified (see COMPLETION_RUN_WITH_KEYS_20260223.md). Cronos: not Etherscan V2; use Cronoscan.
# Usage: cd smom-dbis-138 && ./scripts/deployment/verify-ccip-logger-other-chains.sh
# Requires: ETHERSCAN_API_KEY and PRIVATE_KEY in .env; npm/hardhat.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
if [[ -f .env ]]; then
set -a
source .env
set +a
fi
AUTH_SIGNER="${AUTHORIZED_SIGNER:-0x0000000000000000000000000000000000000000}"
SOURCE_CHAIN_SELECTOR="${CHAIN138_SELECTOR:-138}"
# Network -> env suffix (logger address, router). mainnet skipped (already verified); cronos skipped (no V2).
declare -A LOGGER_VAR=(
[bsc]=CCIP_LOGGER_BSC
[polygon]=CCIP_LOGGER_POLYGON
[gnosis]=CCIP_LOGGER_GNOSIS
[optimism]=CCIP_LOGGER_OPTIMISM
[base]=CCIP_LOGGER_BASE
[arbitrum]=CCIP_LOGGER_ARBITRUM
[avalanche]=CCIP_LOGGER_AVALANCHE
)
declare -A ROUTER_VAR=(
[bsc]=CCIP_BSC_ROUTER
[polygon]=CCIP_POLYGON_ROUTER
[gnosis]=CCIP_GNOSIS_ROUTER
[optimism]=CCIP_OPTIMISM_ROUTER
[base]=CCIP_BASE_ROUTER
[arbitrum]=CCIP_ARBITRUM_ROUTER
[avalanche]=CCIP_AVALANCHE_ROUTER
)
if [[ -z "${ETHERSCAN_API_KEY:-}" ]]; then
echo "ETHERSCAN_API_KEY not set. Add to .env and re-run." >&2
exit 1
fi
VERIFIED=0
SKIPPED=0
FAILED=0
for net in bsc polygon gnosis optimism base arbitrum avalanche; do
addr_var="${LOGGER_VAR[$net]}"
router_var="${ROUTER_VAR[$net]}"
addr="${!addr_var:-}"
router="${!router_var:-}"
if [[ -z "$addr" || "$addr" = "0x0000000000000000000000000000000000000000" ]]; then
echo "[$net] Skip (no $addr_var in .env)"
SKIPPED=$((SKIPPED + 1))
continue
fi
if [[ -z "$router" || "$router" = "0x0000000000000000000000000000000000000000" ]]; then
echo "[$net] Skip ($addr_var set but $router_var missing)"
SKIPPED=$((SKIPPED + 1))
continue
fi
echo "[$net] Verifying CCIPLogger $addr ..."
if npx hardhat verify --network "$net" "$addr" "$router" "$AUTH_SIGNER" "$SOURCE_CHAIN_SELECTOR" 2>&1; then
echo "[$net] Verified."
VERIFIED=$((VERIFIED + 1))
else
echo "[$net] Verify failed (may already be verified)."
FAILED=$((FAILED + 1))
fi
done
echo ""
echo "Summary: $VERIFIED verified, $SKIPPED skipped (no address/router), $FAILED failed."
echo "To deploy first: ./scripts/deployment/deploy-ccip-logger-all-chains.sh then set CCIP_LOGGER_* and CCIP_*_ROUTER in .env."