Skip to content

[DO NOT MERGE] Mainnet vs main: EVM bridge contract upgrade diff#210

Closed
vishalchangrani wants to merge 2 commits into
vishal/mainnet-deployedfrom
vishal/target
Closed

[DO NOT MERGE] Mainnet vs main: EVM bridge contract upgrade diff#210
vishalchangrani wants to merge 2 commits into
vishal/mainnet-deployedfrom
vishal/target

Conversation

@vishalchangrani

Copy link
Copy Markdown

⚠️ DO NOT MERGE — Review Only

This PR exists solely for multi-signer upgrade review. It shows the exact diff between the contracts currently deployed on Flow mainnet and the target versions on main.

How to read this PR

Side Branch Contents
Base (left, red) vishal/mainnet-deployed Contracts as live on mainnet today, fetched via flow CLI from 0x1e4aa0b87d10b141, 0x93c18b0282a6b82c, 0xf1ab99c82dee3526
Head (right, green) vishal/target Target versions from main — what will be upgraded to

Green (additions) = new code being introduced by the upgrade
Red (deletions) = existing code being replaced/removed

Contracts covered (27 files)

Bridge contracts (0x1e4aa0b87d10b141)

  • FlowEVMBridge — core bridge logic
  • FlowEVMBridgeAccessor — bridge accessor
  • FlowEVMBridgeConfig — configuration
  • FlowEVMBridgeCustomAssociationTypes — custom association types
  • FlowEVMBridgeCustomAssociations — custom associations
  • FlowEVMBridgeHandlers — token/NFT handlers
  • FlowEVMBridgeNFTEscrow — NFT escrow
  • FlowEVMBridgeResolver — bridge resolver
  • FlowEVMBridgeTemplates — templates
  • FlowEVMBridgeTokenEscrow — token escrow
  • FlowEVMBridgeUtils — utilities (largest change)
  • Interfaces: CrossVMNFT, CrossVMToken, FlowEVMBridgeHandlerInterfaces, IBridgePermissions, ICrossVM, ICrossVMAsset, IEVMBridgeNFTMinter, IEVMBridgeTokenMinter, IFlowEVMNFTBridge, IFlowEVMTokenBridge
  • Utils: ArrayUtils, ScopedFTProviders, Serialize, SerializeMetadata, StringUtils

Example/handled token contracts

  • ExampleNFT, ExampleToken (0x93c18b0282a6b82c)
  • USDCFlow (0xf1ab99c82dee3526)

Key changes to review

  1. FlowEVMBridgeUtils (largest diff) — EVM.Result/call()EVM.ResultDecoded/callWithSigAndArgs() API migration for reduced computation cost
  2. FlowEVMBridge — updates to use new EVM call API throughout core bridge logic
  3. FlowEVMBridgeAccessor — bridge accessor using new EVM API
  4. FlowEVMBridgeHandlers — handler updates for new EVM API
  5. USDCFlow — USDC handled token contract changes

🤖 Generated with Claude Code

This represents the versions to be upgraded to from mainnet.
DO NOT MERGE — this is a review-only branch showing mainnet → main diff.
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.96491% with 16 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
cadence/contracts/bridge/FlowEVMBridgeUtils.cdc 86.95% 12 Missing ⚠️
cadence/contracts/bridge/FlowEVMBridge.cdc 75.00% 2 Missing ⚠️
cadence/contracts/bridge/FlowEVMBridgeHandlers.cdc 71.42% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

@vishalchangrani

Copy link
Copy Markdown
Author

Closing in favour of a simpler PR using main directly.

@github-project-automation github-project-automation Bot moved this from 👀 In Review to ✅ Done in 🌊 Flow 4D Apr 16, 2026
@vishalchangrani vishalchangrani deleted the vishal/target branch April 16, 2026 23:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done
Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants