Files
smom-dbis-138/scripts/deployment/verify-mainnet-etherscan.sh

92 lines
2.9 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Verify Ethereum Mainnet contracts on Etherscan using Foundry
# This script provides the exact commands needed to verify contracts
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source .env 2>/dev/null || true
echo "=========================================="
echo "Ethereum Mainnet Contract Verification"
echo "=========================================="
echo ""
# Mainnet contract addresses
CCIPWETH9BRIDGE_MAINNET="0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6"
CCIPWETH10BRIDGE_MAINNET="0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e"
# Constructor arguments
CCIP_ROUTER="${CCIP_MAINNET_ROUTER:-0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D}"
WETH9_MAINNET="${WETH9_MAINNET:-0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}"
WETH10_MAINNET="${WETH10_MAINNET:-0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f}"
LINK_TOKEN="${CCIP_MAINNET_LINK:-0x514910771AF9Ca656af840dff83E8264EcF986CA}"
if [ -z "${ETHERSCAN_API_KEY:-}" ]; then
echo "⚠️ ETHERSCAN_API_KEY not set in .env"
echo " Please add your Etherscan API key to .env"
echo ""
echo " Get API key from: https://etherscan.io/myapikey"
exit 1
fi
echo "Verifying CCIPWETH9Bridge..."
echo "Address: $CCIPWETH9BRIDGE_MAINNET"
echo "Constructor Args:"
echo " Router: $CCIP_ROUTER"
echo " WETH9: $WETH9_MAINNET"
echo " LINK: $LINK_TOKEN"
echo ""
# Encode constructor arguments
CONSTRUCTOR_ARGS=$(cast abi-encode "constructor(address,address,address)" "$CCIP_ROUTER" "$WETH9_MAINNET" "$LINK_TOKEN")
echo "Running verification..."
forge verify-contract \
--chain-id 1 \
--num-of-optimizations 200 \
--watch \
--constructor-args "$CONSTRUCTOR_ARGS" \
--etherscan-api-key "$ETHERSCAN_API_KEY" \
"$CCIPWETH9BRIDGE_MAINNET" \
"contracts/ccip/CCIPWETH9Bridge.sol:CCIPWETH9Bridge"
echo ""
echo "=========================================="
echo ""
echo "Verifying CCIPWETH10Bridge..."
echo "Address: $CCIPWETH10BRIDGE_MAINNET"
echo "Constructor Args:"
echo " Router: $CCIP_ROUTER"
echo " WETH10: $WETH10_MAINNET"
echo " LINK: $LINK_TOKEN"
echo ""
# Encode constructor arguments
CONSTRUCTOR_ARGS=$(cast abi-encode "constructor(address,address,address)" "$CCIP_ROUTER" "$WETH10_MAINNET" "$LINK_TOKEN")
echo "Running verification..."
forge verify-contract \
--chain-id 1 \
--num-of-optimizations 200 \
--watch \
--constructor-args "$CONSTRUCTOR_ARGS" \
--etherscan-api-key "$ETHERSCAN_API_KEY" \
"$CCIPWETH10BRIDGE_MAINNET" \
"contracts/ccip/CCIPWETH10Bridge.sol:CCIPWETH10Bridge"
echo ""
echo "=========================================="
echo "Verification Complete"
echo "=========================================="
echo ""
echo "📄 View contracts:"
echo " • CCIPWETH9Bridge: https://etherscan.io/address/$CCIPWETH9BRIDGE_MAINNET"
echo " • CCIPWETH10Bridge: https://etherscan.io/address/$CCIPWETH10BRIDGE_MAINNET"
echo ""