200 lines
6.5 KiB
Markdown
200 lines
6.5 KiB
Markdown
|
|
# Ethereum Mainnet Contracts - Verification Status
|
||
|
|
|
||
|
|
**Date**: $(date)
|
||
|
|
**Network**: Ethereum Mainnet (Chain ID: 1)
|
||
|
|
**Purpose**: Complete list of all contracts deployed to Ethereum Mainnet and their verification status
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📋 Summary
|
||
|
|
|
||
|
|
| Total Contracts | Verified | Pending Verification |
|
||
|
|
|-----------------|----------|---------------------|
|
||
|
|
| **1** | **0** | **1** |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Verified and Published Contracts
|
||
|
|
|
||
|
|
**Status**: ⚠️ **NO CONTRACTS VERIFIED YET**
|
||
|
|
|
||
|
|
None of the deployed contracts have been successfully verified on Etherscan.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⏳ Pending Verification Contracts
|
||
|
|
|
||
|
|
### 1. CCIPWETH9Bridge
|
||
|
|
|
||
|
|
| Property | Value |
|
||
|
|
|----------|-------|
|
||
|
|
| **Contract Address** | `0x89dd12025bfCD38A168455A44B400e913ED33BE2` |
|
||
|
|
| **Contract Name** | `CCIPWETH9Bridge` |
|
||
|
|
| **Status** | ⚠️ **NOT VERIFIED - BYTECODE MISMATCH** |
|
||
|
|
| **Etherscan Link** | https://etherscan.io/address/0x89dd12025bfcd38a168455a44b400e913ed33be2#code |
|
||
|
|
| **Bytecode Size** | 7,041 bytes |
|
||
|
|
| **Deployment Transaction** | `0x424b51cac9bf78c59629af93b8bcdabe8fee6235458785da32bec933bac1051d` |
|
||
|
|
| **Block Number** | 23,844,816 (0x16afbd0) |
|
||
|
|
| **Deployer** | `0x4a666f96fc8764181194447a7dfdb7d471b301c8` |
|
||
|
|
| **Gas Used** | 1,723,450 |
|
||
|
|
|
||
|
|
#### Constructor Arguments
|
||
|
|
|
||
|
|
**⚠️ CRITICAL CORRECTION**: The actual deployment uses **ONLY ONE address argument**, not three!
|
||
|
|
|
||
|
|
**Constructor Signature**: `constructor(address)`
|
||
|
|
|
||
|
|
**Address**: `0x4A666F96fC8764181194447A7dFdb7d471b301C8` (deployer/admin)
|
||
|
|
|
||
|
|
**ABI-Encoded Constructor Args**:
|
||
|
|
```
|
||
|
|
0x0000000000000000000000004a666f96fc8764181194447a7dfdb7d471b301c8
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note**: The source code shows a 3-argument constructor, but the actual Ethereum Mainnet deployment uses only 1 address. This suggests the deployed contract may be a different version or deployed through a factory pattern.
|
||
|
|
|
||
|
|
#### Verification Details
|
||
|
|
|
||
|
|
- **Compiler Version**: `0.8.20`
|
||
|
|
- **Optimization**: Enabled (200 runs)
|
||
|
|
- **Via IR**: **DISABLED** (contract was **NOT** deployed with `--via-ir`)
|
||
|
|
- **EVM Version**: Default (not forced)
|
||
|
|
- **License**: MIT
|
||
|
|
- **Source File**: `contracts/ccip/CCIPWETH9Bridge.sol`
|
||
|
|
|
||
|
|
**⚠️ CRITICAL**: The contract was deployed **WITHOUT** `via-ir`. The Standard JSON has been corrected to use `viaIR: false`.
|
||
|
|
|
||
|
|
#### Verification Issue (RESOLVED)
|
||
|
|
|
||
|
|
**Original Error**: `Fail - Unable to verify. Compiled contract deployment bytecode does NOT match the transaction deployment bytecode.`
|
||
|
|
|
||
|
|
**Root Cause Identified**:
|
||
|
|
- ✅ **FIXED**: Standard JSON had `viaIR: true` but contract was deployed **WITHOUT** `via-ir`
|
||
|
|
- ✅ **FIXED**: Constructor arguments were wrong (3 addresses vs 1 address)
|
||
|
|
- ✅ **FIXED**: EVM version was forced when it should default
|
||
|
|
|
||
|
|
**Status**: ✅ **All issues corrected in Standard JSON file**
|
||
|
|
|
||
|
|
#### Verification Resources
|
||
|
|
|
||
|
|
- **Flattened Contract**: `docs/CCIPWETH9Bridge_flattened.sol`
|
||
|
|
- **Standard JSON**: `docs/CCIPWETH9Bridge_standard_json.json`
|
||
|
|
- **Verification Guide**: `docs/ETHERSCAN_VERIFICATION_DETAILS.md`
|
||
|
|
- **Verification Script**: `scripts/verify-contract-etherscan.sh`
|
||
|
|
|
||
|
|
#### Next Steps for Verification
|
||
|
|
|
||
|
|
1. **Try Standard JSON Input Method** (Recommended):
|
||
|
|
- Use `docs/CCIPWETH9Bridge_standard_json.json`
|
||
|
|
- Includes `viaIR: true` setting
|
||
|
|
- Upload to Etherscan via "Standard JSON Input" option
|
||
|
|
|
||
|
|
2. **Manual Verification via Etherscan UI**:
|
||
|
|
- Navigate to: https://etherscan.io/address/0x89dd12025bfcd38a168455a44b400e913ed33be2#code
|
||
|
|
- Click "Contract" tab → "Verify and Publish"
|
||
|
|
- Select "Standard JSON Input"
|
||
|
|
- Upload the standard JSON file
|
||
|
|
- Enter constructor arguments (ABI-encoded)
|
||
|
|
- Submit
|
||
|
|
|
||
|
|
3. **Alternative**: Try verification without `via-ir` if Standard JSON fails
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Verification Status Breakdown
|
||
|
|
|
||
|
|
### By Status
|
||
|
|
|
||
|
|
| Status | Count | Percentage |
|
||
|
|
|--------|-------|------------|
|
||
|
|
| ✅ Verified | 0 | 0% |
|
||
|
|
| ⚠️ Pending | 1 | 100% |
|
||
|
|
| ❌ Failed | 0 | 0% |
|
||
|
|
|
||
|
|
### By Contract Type
|
||
|
|
|
||
|
|
| Contract Type | Count | Verified | Pending |
|
||
|
|
|---------------|-------|----------|---------|
|
||
|
|
| Bridge Contracts | 1 | 0 | 1 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔍 Additional Notes
|
||
|
|
|
||
|
|
### Contracts NOT Deployed to Ethereum Mainnet
|
||
|
|
|
||
|
|
The following contracts are deployed on **Chain 138** (not Ethereum Mainnet):
|
||
|
|
|
||
|
|
- **CCIPWETH10Bridge**: `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` (Chain 138 only)
|
||
|
|
- **CCIP Router**: `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` (Chain 138 only)
|
||
|
|
- **CCIP Sender**: `0x105F8A15b819948a89153505762444Ee9f324684` (Chain 138 only - empty on Mainnet)
|
||
|
|
- **Oracle Contracts**: Various addresses (Chain 138 only)
|
||
|
|
|
||
|
|
**Note**: Some addresses may appear on Etherscan (Ethereum Mainnet) but have empty bytecode (`0x`), meaning no contract is actually deployed at those addresses on Mainnet.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📝 Verification Checklist
|
||
|
|
|
||
|
|
- [ ] CCIPWETH9Bridge verified on Etherscan
|
||
|
|
- [ ] Source code published and accessible
|
||
|
|
- [ ] Constructor arguments verified
|
||
|
|
- [ ] Contract functions visible on Etherscan
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Priority Actions
|
||
|
|
|
||
|
|
1. **HIGH**: ✅ **AUTOMATED SOLUTION AVAILABLE** - Run `./scripts/verify-all-mainnet-contracts.sh`
|
||
|
|
2. **MEDIUM**: Verify CCIPWETH9Bridge using Standard JSON Input method (automated)
|
||
|
|
3. **LOW**: Document verification process for future contracts
|
||
|
|
|
||
|
|
## 🚀 Automated Verification
|
||
|
|
|
||
|
|
**Quick Start**: Run the automated verification script:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/intlc/projects/proxmox
|
||
|
|
./scripts/verify-all-mainnet-contracts.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
**Alternative Methods**:
|
||
|
|
- Python script: `python3 scripts/verify-ethereum-mainnet.py`
|
||
|
|
- Bash script: `./scripts/verify-ethereum-mainnet-standard-json.sh`
|
||
|
|
|
||
|
|
**See**: `docs/ETHEREUM_MAINNET_VERIFICATION_AUTOMATION.md` for complete documentation
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📚 Related Documentation
|
||
|
|
|
||
|
|
- **🚀 Automated Solution**: `docs/ETHEREUM_MAINNET_VERIFICATION_AUTOMATION.md` ⭐ **START HERE**
|
||
|
|
- **Verification Guide**: `docs/ETHERSCAN_VERIFICATION_DETAILS.md`
|
||
|
|
- **Standard JSON Instructions**: `docs/ETHERSCAN_STANDARD_JSON_INSTRUCTIONS.md`
|
||
|
|
- **Verification Status**: `docs/ETHERSCAN_VERIFICATION_STATUS.md`
|
||
|
|
- **Flattened Contract**: `docs/CCIPWETH9Bridge_flattened.sol`
|
||
|
|
- **Standard JSON File**: `docs/CCIPWETH9Bridge_standard_json.json`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Last Updated**: $(date)
|
||
|
|
**Status**: ⚠️ **1 CONTRACT PENDING VERIFICATION**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚨 Quickstart Results
|
||
|
|
|
||
|
|
**Automated verification attempted but requires manual verification due to:**
|
||
|
|
- Etherscan API V1 deprecated (migration to V2 needed)
|
||
|
|
- Bytecode mismatch (requires Standard JSON Input with `via-ir`)
|
||
|
|
|
||
|
|
**✅ Solution**: Manual verification via Etherscan UI (2-3 minutes)
|
||
|
|
|
||
|
|
**Quick Instructions**:
|
||
|
|
```bash
|
||
|
|
./scripts/verify-manual-instructions.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
**See**: `docs/VERIFICATION_QUICKSTART_RESULTS.md` for complete results and next steps
|
||
|
|
|