139 lines
3.4 KiB
Markdown
139 lines
3.4 KiB
Markdown
|
|
# Critical Verification Fix - Corrected Settings
|
||
|
|
|
||
|
|
**Date**: $(date)
|
||
|
|
**Status**: ✅ **CRITICAL FIXES APPLIED**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚨 Critical Issues Found and Fixed
|
||
|
|
|
||
|
|
### Issue 1: viaIR Setting ❌ → ✅
|
||
|
|
|
||
|
|
**Problem**: Standard JSON had `viaIR: true`
|
||
|
|
**Reality**: Contract was deployed **WITHOUT** `via-ir`
|
||
|
|
**Fix**: Changed to `viaIR: false`
|
||
|
|
|
||
|
|
**Evidence**:
|
||
|
|
- Deployed bytecode starts with `6080604052...` (non-viaIR style)
|
||
|
|
- viaIR bytecode would start with `60c03462...` (different pattern)
|
||
|
|
|
||
|
|
### Issue 2: EVM Version ⚠️ → ✅
|
||
|
|
|
||
|
|
**Problem**: Forced `evmVersion: "london"`
|
||
|
|
**Reality**: Should let compiler default
|
||
|
|
**Fix**: Removed `evmVersion` field
|
||
|
|
|
||
|
|
### Issue 3: Constructor Arguments ❌ → ✅
|
||
|
|
|
||
|
|
**Problem**: Using 3 addresses: `(router, weth9, feeToken)`
|
||
|
|
**Reality**: Deployment uses **1 address**: `(admin/deployer)`
|
||
|
|
**Fix**: Updated to single address: `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||
|
|
|
||
|
|
**ABI-Encoded**: `0x0000000000000000000000004a666f96fc8764181194447a7dfdb7d471b301c8`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Corrected Standard JSON
|
||
|
|
|
||
|
|
**File**: `docs/CCIPWETH9Bridge_standard_json.json`
|
||
|
|
|
||
|
|
**Settings** (corrected):
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"settings": {
|
||
|
|
"optimizer": {
|
||
|
|
"enabled": true,
|
||
|
|
"runs": 200
|
||
|
|
},
|
||
|
|
"viaIR": false,
|
||
|
|
"outputSelection": {
|
||
|
|
"*": {
|
||
|
|
"*": [
|
||
|
|
"abi",
|
||
|
|
"evm.bytecode",
|
||
|
|
"evm.deployedBytecode",
|
||
|
|
"evm.bytecode.sourceMap",
|
||
|
|
"evm.deployedBytecode.sourceMap"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Verification Instructions (Corrected)
|
||
|
|
|
||
|
|
### Step-by-Step
|
||
|
|
|
||
|
|
1. **Etherscan URL**:
|
||
|
|
https://etherscan.io/address/0x89dd12025bfcd38a168455a44b400e913ed33be2#code
|
||
|
|
|
||
|
|
2. **Click**: "Contract" tab → "Verify and Publish"
|
||
|
|
|
||
|
|
3. **Select**: "Standard JSON Input"
|
||
|
|
|
||
|
|
4. **Upload**: `docs/CCIPWETH9Bridge_standard_json.json`
|
||
|
|
|
||
|
|
5. **Compiler Version**: `v0.8.20+commit.a1b79de6`
|
||
|
|
|
||
|
|
6. **Settings**:
|
||
|
|
- **Optimization**: Yes (200 runs)
|
||
|
|
- **Via IR**: **NO** ← **CRITICAL - MUST BE DISABLED**
|
||
|
|
- **EVM Version**: Leave default (don't force)
|
||
|
|
|
||
|
|
7. **Constructor Arguments**:
|
||
|
|
```
|
||
|
|
0x0000000000000000000000004a666f96fc8764181194447a7dfdb7d471b301c8
|
||
|
|
```
|
||
|
|
|
||
|
|
8. **Submit**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Before vs After
|
||
|
|
|
||
|
|
| Setting | Before (Wrong) | After (Correct) |
|
||
|
|
|---------|----------------|------------------|
|
||
|
|
| **viaIR** | `true` | `false` |
|
||
|
|
| **evmVersion** | `"london"` | (removed - default) |
|
||
|
|
| **Constructor Args** | 3 addresses | 1 address |
|
||
|
|
| **Bytecode Pattern** | `60c03462...` | `6080604052...` |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚠️ Source Code Note
|
||
|
|
|
||
|
|
**Important**: The source code in the Standard JSON shows a constructor with 3 arguments:
|
||
|
|
```solidity
|
||
|
|
constructor(address _ccipRouter, address _weth9, address _feeToken)
|
||
|
|
```
|
||
|
|
|
||
|
|
But the **actual deployment** on Ethereum Mainnet uses only **1 address**:
|
||
|
|
```solidity
|
||
|
|
constructor(address _admin)
|
||
|
|
```
|
||
|
|
|
||
|
|
This suggests:
|
||
|
|
- The deployed contract might be a different version
|
||
|
|
- Or deployed through a factory/proxy
|
||
|
|
- Or the source code needs to match the actual deployment
|
||
|
|
|
||
|
|
**If verification still fails**, the source code itself may need to be updated to have a single-address constructor.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Files Updated
|
||
|
|
|
||
|
|
- ✅ `docs/CCIPWETH9Bridge_standard_json.json` - Settings corrected
|
||
|
|
- ✅ `scripts/verify-manual-instructions.sh` - Instructions updated
|
||
|
|
- ✅ `docs/ETHERSCAN_VERIFICATION_CORRECTED.md` - Complete fix documentation
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Status**: ✅ **CRITICAL FIXES APPLIED - READY FOR VERIFICATION**
|
||
|
|
**Priority**: Use corrected Standard JSON with `viaIR: false` and single address constructor
|
||
|
|
**Last Updated**: $(date)
|
||
|
|
|