# Etherscan Standard JSON - FIXED

**Error**: `Unknown key "compiler"`  
**Fix**: Removed invalid key from Standard JSON

---

## ✅ Fixed Standard JSON

**File**: `docs/CCIPWETH9Bridge_standard_json.json`

**Changes**:
- ❌ Removed invalid `"compiler"` key
- ✅ Kept valid Standard JSON Input format
- ✅ `viaIR: true` still included
- ✅ Optimizer settings correct

---

## 📋 Corrected Standard JSON Format

The Standard JSON Input format should **NOT** include a `"compiler"` key. The compiler version is:
1. Specified in the Etherscan form (when using Standard JSON Input)
2. Or inferred from the `pragma` statement in the source code

**Correct Format**:
```json
{
  "language": "Solidity",
  "sources": {
    "CCIPWETH9Bridge.sol": {
      "content": "[contract code]"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "viaIR": true,
    "evmVersion": "london",
    "outputSelection": {
      "*": {
        "*": ["abi", "evm.bytecode", "evm.deployedBytecode"]
      }
    }
  }
}
```

---

## 🎯 Updated Instructions

### Step 1: Go to Etherscan

1. Navigate to: https://etherscan.io/address/0x89dd12025bfcd38a168455a44b400e913ed33be2#code
2. Click **"Contract"** tab → **"Verify and Publish"**

### Step 2: Select Compiler Type

Select **"Standard JSON Input"**

### Step 3: Specify Compiler Version

**Important**: In the form, select:
- **Compiler Version**: `v0.8.20+commit.a1b79de6`

(This is separate from the JSON - Etherscan will use the version you select in the form)

### Step 4: Upload Standard JSON

1. Open: `docs/CCIPWETH9Bridge_standard_json.json`
2. Copy the **entire contents**
3. Paste into the **"Standard JSON Input"** field

### Step 5: Enter Constructor Arguments

```
0x00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca
```

### Step 6: Submit

Click **"Verify and Publish"**

---

## ⚠️ Important Notes

1. **Compiler Version**: Select `v0.8.20+commit.a1b79de6` in the Etherscan form (not in the JSON)
2. **Via IR**: Already set to `true` in the Standard JSON
3. **Optimizer**: Already set to enabled with 200 runs in the JSON

---

## 🔍 Why This Format

The Solidity Standard JSON Input format doesn't include a `"compiler"` key. The compiler version is:
- Specified separately in the Etherscan form UI
- Or can be inferred from the `pragma solidity ^0.8.19;` statement

However, since the contract was deployed with **0.8.20** (not 0.8.19), you **must** select `v0.8.20+commit.a1b79de6` in the Etherscan form.

---

**Last Updated**: $(date)  
**Status**: ✅ **FIXED - USE UPDATED STANDARD JSON**

