Files
proxmox/docs/archive/fixes/ETHERSCAN_VERIFICATION_FIX_COMPILER_VERSION.md
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

3.8 KiB

Etherscan Verification Fix - Compiler Version Issue

Date: $(date)
Issue: Compiler version mismatch causing bytecode mismatch
Status: FIXED - Updated Standard JSON


🔍 Problem Identified

Error from Etherscan:

Compiler Version: v0.8.19+commit.7dd6d404
But we were unable to locate a matching bytecode (err_code_2)

Root Cause:

  • Contract was deployed with Solidity 0.8.20
  • Etherscan defaulted to 0.8.19 when processing Standard JSON
  • Bytecode mismatch due to compiler version difference

Solution

Updated Standard JSON File

File: docs/CCIPWETH9Bridge_standard_json.json

Changes Made:

  • Added compiler version specification in settings (for reference)
  • Note: Etherscan UI still requires manual compiler version selection

Manual Verification Steps (Updated)

When verifying on Etherscan UI, CRITICAL: Select the correct compiler version:

  1. Go to Etherscan: https://etherscan.io/address/0x89dd12025bfcd38a168455a44b400e913ed33be2#code

  2. Click "Contract" tab → "Verify and Publish"

  3. Select "Standard JSON Input"

  4. IMPORTANT - Select Compiler Version:

    • Compiler Version: Select v0.8.20+commit.a1b79de6 (NOT 0.8.19!)
    • This is the version used during deployment
    • Must match exactly: 0.8.20
  5. Upload Standard JSON:

    • File: docs/CCIPWETH9Bridge_standard_json.json
    • Or paste contents
  6. Enter Constructor Arguments:

    0x00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca
    
  7. Verify Settings:

    • Optimization: Yes (200 runs)
    • Via IR: Yes (enabled in Standard JSON)
    • EVM Version: London
  8. Click "Verify and Publish"


📋 Verification Checklist

  • Standard JSON file updated
  • Compiler version documented (0.8.20)
  • Manual verification with correct compiler versionNEXT STEP
  • Verify source code is visible on Etherscan
  • Confirm bytecode matches

🔧 Technical Details

Compiler Version

Deployed With: 0.8.20
Etherscan Defaulted To: 0.8.19 (incorrect)
Required: 0.8.20+commit.a1b79de6

Standard JSON Settings

{
  "settings": {
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "viaIR": true,
    "evmVersion": "london",
    "compiler": {
      "version": "0.8.20"
    }
  }
}

Note: The compiler.version field in Standard JSON is for reference. Etherscan UI requires manual selection of compiler version in the form.


⚠️ Common Mistakes to Avoid

  1. Wrong Compiler Version: Selecting 0.8.19 instead of 0.8.20
  2. Missing Via IR: Not enabling "Via IR" option
  3. Wrong Optimization: Not setting to 200 runs
  4. Wrong Constructor Args: Using incorrect ABI-encoded arguments

  • Standard JSON: docs/CCIPWETH9Bridge_standard_json.json (updated)
  • Verification Guide: docs/ETHERSCAN_VERIFICATION_DETAILS.md
  • Manual Instructions: scripts/verify-manual-instructions.sh

Status: STANDARD JSON FIXED - INVALID FIELD REMOVED
Critical: Must select compiler version 0.8.20 in Etherscan UI
Note: If bytecode mismatch persists, regenerate Standard JSON from source
Last Updated: $(date)


🔄 Regenerating Standard JSON

If verification still fails with bytecode mismatch, regenerate Standard JSON from source:

cd /home/intlc/projects/proxmox
./scripts/generate-standard-json-from-source.sh

This will:

  1. Build the contract with exact deployment settings
  2. Extract Standard JSON from build artifacts
  3. Create a fresh Standard JSON file for verification

Output: docs/CCIPWETH9Bridge_standard_json_generated.json