# 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)

