- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control. - Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities. - Created .gitmodules to include OpenZeppelin contracts as a submodule. - Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment. - Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks. - Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring. - Created scripts for resource import and usage validation across non-US regions. - Added tests for CCIP error handling and integration to ensure robust functionality. - Included various new files and directories for the orchestration portal and deployment scripts.
92 lines
2.9 KiB
Bash
Executable File
92 lines
2.9 KiB
Bash
Executable File
#!/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 ""
|
|
|