135 lines
3.4 KiB
Markdown
135 lines
3.4 KiB
Markdown
|
|
# Verification - Final Corrected Configuration
|
||
|
|
|
||
|
|
**Date**: $(date)
|
||
|
|
**Contract**: CCIPWETH9Bridge (`0x89dd12025bfCD38A168455A44B400e913ED33BE2`)
|
||
|
|
**Status**: ✅ **SETTINGS CORRECTED - READY FOR VERIFICATION**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Critical Fixes Applied
|
||
|
|
|
||
|
|
### 1. viaIR Setting ✅ FIXED
|
||
|
|
- **Before**: `viaIR: true` ❌
|
||
|
|
- **After**: `viaIR: false` ✅
|
||
|
|
- **Reason**: Contract deployed WITHOUT `via-ir` (bytecode starts with `6080604052...`)
|
||
|
|
|
||
|
|
### 2. EVM Version ✅ FIXED
|
||
|
|
- **Before**: `evmVersion: "london"` (forced) ❌
|
||
|
|
- **After**: Removed (let compiler default) ✅
|
||
|
|
|
||
|
|
### 3. Constructor Arguments ✅ CORRECTED
|
||
|
|
- **Before**: 3 addresses `(router, weth9, feeToken)` ❌
|
||
|
|
- **After**: 1 address `(admin)` ✅
|
||
|
|
- **Address**: `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||
|
|
- **Encoded**: `0x0000000000000000000000004a666f96fc8764181194447a7dfdb7d471b301c8`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📋 Corrected Standard JSON Settings
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"settings": {
|
||
|
|
"optimizer": {
|
||
|
|
"enabled": true,
|
||
|
|
"runs": 200
|
||
|
|
},
|
||
|
|
"viaIR": false,
|
||
|
|
"outputSelection": {
|
||
|
|
"*": {
|
||
|
|
"*": [
|
||
|
|
"abi",
|
||
|
|
"evm.bytecode",
|
||
|
|
"evm.deployedBytecode",
|
||
|
|
"evm.bytecode.sourceMap",
|
||
|
|
"evm.deployedBytecode.sourceMap"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**File**: `docs/CCIPWETH9Bridge_standard_json.json` (updated)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚠️ Source Code Mismatch Issue
|
||
|
|
|
||
|
|
**Problem**: The source code in the Standard JSON shows:
|
||
|
|
```solidity
|
||
|
|
constructor(address _ccipRouter, address _weth9, address _feeToken)
|
||
|
|
```
|
||
|
|
|
||
|
|
But the **actual deployment** uses:
|
||
|
|
```solidity
|
||
|
|
constructor(address _admin) // Single address only
|
||
|
|
```
|
||
|
|
|
||
|
|
**This means**:
|
||
|
|
- The source code in Standard JSON doesn't match what was actually deployed
|
||
|
|
- Verification may still fail due to source code mismatch
|
||
|
|
- The deployed contract might be a different version
|
||
|
|
|
||
|
|
**Possible Solutions**:
|
||
|
|
1. **Modify source code** in Standard JSON to have single-address constructor
|
||
|
|
2. **Find the correct source code** that matches the deployment
|
||
|
|
3. **Check if it's a proxy/factory** deployment pattern
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Verification Steps (Final)
|
||
|
|
|
||
|
|
1. **Go to Etherscan**:
|
||
|
|
https://etherscan.io/address/0x89dd12025bfcd38a168455a44b400e913ed33be2#code
|
||
|
|
|
||
|
|
2. **Click**: "Contract" → "Verify and Publish"
|
||
|
|
|
||
|
|
3. **Select**: "Standard JSON Input"
|
||
|
|
|
||
|
|
4. **Upload**: `docs/CCIPWETH9Bridge_standard_json.json`
|
||
|
|
|
||
|
|
5. **Compiler**: `v0.8.20+commit.a1b79de6`
|
||
|
|
|
||
|
|
6. **Settings**:
|
||
|
|
- Optimization: **Yes** (200 runs)
|
||
|
|
- **Via IR**: **NO** ← **CRITICAL**
|
||
|
|
- EVM Version: **Default** (don't force)
|
||
|
|
|
||
|
|
7. **Constructor Arguments**:
|
||
|
|
```
|
||
|
|
0x0000000000000000000000004a666f96fc8764181194447a7dfdb7d471b301c8
|
||
|
|
```
|
||
|
|
|
||
|
|
8. **Submit**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔧 If Verification Still Fails
|
||
|
|
|
||
|
|
If bytecode still doesn't match after these fixes, the issue is likely the **source code itself**:
|
||
|
|
|
||
|
|
1. **Check deployment transaction**: Verify exact source code used
|
||
|
|
2. **Modify source code**: Update Standard JSON source to have single-address constructor
|
||
|
|
3. **Alternative**: Try Sourcify verification service
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Summary of Changes
|
||
|
|
|
||
|
|
| Item | Status |
|
||
|
|
|------|--------|
|
||
|
|
| viaIR setting | ✅ Fixed (false) |
|
||
|
|
| EVM version | ✅ Fixed (removed) |
|
||
|
|
| Constructor args | ✅ Documented (1 address) |
|
||
|
|
| Standard JSON | ✅ Updated |
|
||
|
|
| Source code | ⚠️ May need modification |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Status**: ✅ **SETTINGS CORRECTED - READY FOR VERIFICATION**
|
||
|
|
**Priority**: Try verification with corrected settings
|
||
|
|
**Note**: Source code may need modification if verification still fails
|
||
|
|
**Last Updated**: $(date)
|
||
|
|
|