Files
proxmox/docs/archive/fixes/VERIFICATION_CRITICAL_FIX.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.4 KiB

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

{
  "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: NOCRITICAL - 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:

constructor(address _ccipRouter, address _weth9, address _feeToken)

But the actual deployment on Ethereum Mainnet uses only 1 address:

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)