Files
smom-dbis-138/docs/deployment/ETHERSCAN_VERIFICATION_GUIDE.md

163 lines
4.6 KiB
Markdown
Raw Normal View History

# Etherscan Contract Verification Guide
**Date**: 2025-12-11
**Status**: Ready for Verification
---
## 📋 Contracts to Verify
### Ethereum Mainnet
| Contract | Address | Status |
|----------|---------|--------|
| **CCIPWETH9Bridge** | `0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6` | ❌ Not Verified |
| **CCIPWETH10Bridge** | `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` | ❌ Not Verified |
---
## 🔧 Verification Methods
### Method 1: Automated Script (Recommended)
```bash
cd /home/intlc/projects/smom-dbis-138
./scripts/deployment/verify-mainnet-etherscan.sh
```
**Requirements**:
- `ETHERSCAN_API_KEY` set in `.env`
- Foundry installed
- Contracts compiled
---
### Method 2: Manual Foundry Verification
#### CCIPWETH9Bridge
```bash
# Encode constructor arguments
CONSTRUCTOR_ARGS=$(cast abi-encode "constructor(address,address,address)" \
0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D \
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 \
0x514910771AF9Ca656af840dff83E8264EcF986CA)
# Verify contract
forge verify-contract \
--chain-id 1 \
--num-of-optimizations 200 \
--watch \
--constructor-args "$CONSTRUCTOR_ARGS" \
0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6 \
contracts/ccip/CCIPWETH9Bridge.sol:CCIPWETH9Bridge \
$ETHERSCAN_API_KEY
```
#### CCIPWETH10Bridge
```bash
# Encode constructor arguments
CONSTRUCTOR_ARGS=$(cast abi-encode "constructor(address,address,address)" \
0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D \
0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f \
0x514910771AF9Ca656af840dff83E8264EcF986CA)
# Verify contract
forge verify-contract \
--chain-id 1 \
--num-of-optimizations 200 \
--watch \
--constructor-args "$CONSTRUCTOR_ARGS" \
0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e \
contracts/ccip/CCIPWETH10Bridge.sol:CCIPWETH10Bridge \
$ETHERSCAN_API_KEY
```
---
### Method 3: Etherscan Web UI
1. **Get Etherscan API Key**:
- Visit: https://etherscan.io/myapikey
- Create account (if needed)
- Generate API key
2. **Navigate to Contract**:
- CCIPWETH9Bridge: https://etherscan.io/address/0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6#code
- CCIPWETH10Bridge: https://etherscan.io/address/0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e#code
3. **Click "Verify and Publish"**:
- Select "Via Standard JSON Input"
- Upload compiler metadata
- Enter constructor arguments
- Submit
4. **Or use the verification page**:
- Visit: https://etherscan.io/myverify_address
- Enter contract address
- Follow verification wizard
---
## 📝 Constructor Arguments
### CCIPWETH9Bridge
| Parameter | Value | Description |
|-----------|-------|-------------|
| `_ccipRouter` | `0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D` | Chainlink CCIP Router |
| `_weth9` | `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | WETH9 token address |
| `_feeToken` | `0x514910771AF9Ca656af840dff83E8264EcF986CA` | LINK token address |
**Encoded**: `00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca`
### CCIPWETH10Bridge
| Parameter | Value | Description |
|-----------|-------|-------------|
| `_ccipRouter` | `0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D` | Chainlink CCIP Router |
| `_weth10` | `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f` | WETH10 token address |
| `_feeToken` | `0x514910771AF9Ca656af840dff83E8264EcF986CA` | LINK token address |
**Encoded**: `00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d000000000000000000000000f4bb2e28688e89fcce3c0580d37d36a7672e8a9f000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca`
---
## ⚙️ Compiler Settings
- **Compiler Version**: `0.8.19`
- **Optimization**: `200` runs
- **EVM Version**: `london` (default)
---
## ✅ Verification Checklist
- [ ] Etherscan API key obtained and added to `.env`
- [ ] Contracts compiled with correct settings
- [ ] Constructor arguments encoded correctly
- [ ] Network connection to Ethereum Mainnet working
- [ ] Sufficient gas for verification transaction (if needed)
---
## 🔗 Quick Links
- **Etherscan Verification Page**: https://etherscan.io/myverify_address
- **CCIPWETH9Bridge**: https://etherscan.io/address/0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6
- **CCIPWETH10Bridge**: https://etherscan.io/address/0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e
- **Get API Key**: https://etherscan.io/myapikey
---
## 📚 Additional Resources
- [Etherscan Verification Guide](https://docs.etherscan.io/contracts/verifying-contracts-on-etherscan)
- [Foundry Verification Docs](https://book.getfoundry.sh/reference/forge/forge-verify-contract)
---
**Last Updated**: 2025-12-11