Skip to content

feat(infra): USDT OFT Legacy Mesh warp route (Tron, Ethereum, Arbitrum)#8512

Draft
Mo-Hussain wants to merge 5 commits intoaudit-q2-2026from
mo/usdt-oft-legacy
Draft

feat(infra): USDT OFT Legacy Mesh warp route (Tron, Ethereum, Arbitrum)#8512
Mo-Hussain wants to merge 5 commits intoaudit-q2-2026from
mo/usdt-oft-legacy

Conversation

@Mo-Hussain
Copy link
Copy Markdown
Collaborator

@Mo-Hussain Mo-Hussain commented Apr 2, 2026

Summary

Cherry-picks from main

These were needed because audit-q2-2026 doesn't have Tron mainnet support:

  1. 2e622e8ab5feat(infra): add Tron mainnet deployment (#8356) — adds tron to supportedChainNames, agent config, validators, governance ICAs, gas prices
  2. 77db7192a1fix(solidity): scope Tron SafeERC20 workaround to USDT address only (#8467) — required because TokenBridgeOft uses safeTransferFrom on Tron USDT which returns false on success

Deployed Contracts (Legacy Mesh)

Chain Warp Route Legacy Mesh OFT Owner
arbitrum 0x9323793FB9a071ce5fE839079925c0e39f37170F 0x77652D5aba086137b595875263FC200182919B92 ICA 0xD2757B...
ethereum 0xC0dA8EF1225145E0b720d8A33471fa6360b7e73B 0x1F748c76dE468e9D11bd340fA9D5CBADf315dFB0 Safe 0x3965AC...
tron 0x43Bb7C9C64a05af94d67B52883a60756950058D7 0x3a08f76772e200653bb55c2a92998daca62e0e97 ICA 0xB96061...

Native vs Legacy Mesh

The USDT0 ecosystem has two separate OFT networks with different peer sets:

Tron is only in the Legacy Mesh, not the native mesh. A transfer from a native-only chain (e.g. plasma) to Tron requires two hops.

Test Transfers (0.1 USDT each via LayerZero)

Route Tx LayerZero Scan
Arbitrum → Ethereum arbiscan layerzeroscan
Arbitrum → Tron arbiscan layerzeroscan
Ethereum → Arbitrum etherscan layerzeroscan
Tron → Arbitrum tronscan layerzeroscan
Tron → Ethereum tronscan layerzeroscan

Related

Test plan

  • Production deployment on all 3 chains (including Tron via TronWallet)
  • Test transfers in 5 directions via cast send (EVM) and TronWeb script (Tron)
  • Ownership transferred to production addresses (safe/ICAs)

🤖 Generated with Claude Code

EvmWarpModule.createHookUpdateTxs() asserted proxyAdmin exists even for
unproxied collateralOft contracts. The EvmWarpRouteReader sets hook to
AddressZero as a sentinel for OFT/deposit-address contracts, but
AddressZero is truthy so the early-return check did not fire.

Now treats AddressZero hook as empty, matching the sentinel pattern.
Added collateralOft config getter for USDT/oft warp route across
ethereum, arbitrum, and plasma using LayerZero OFT bridge contracts.

Contracts deployed:
- arbitrum: 0xE4c1A1E54C232454311cF68610c3885FdD991c0E
- ethereum: 0x7Bb4fe8f406fB7B22487Fa2e3BCbCb6A38cF29E6
- plasma: 0x93bfFA2231fbA5029997603fb68D9aC08024Baa2
Added collateralOft config getter for USDT/oft-legacy warp route across
ethereum, arbitrum, and tron using Legacy Mesh OFT bridge contracts.

Uncommented tron ICA address in governance config.

Contracts deployed:
- arbitrum: 0x9323793FB9a071ce5fE839079925c0e39f37170F
- ethereum: 0xC0dA8EF1225145E0b720d8A33471fa6360b7e73B
- tron: 0x43Bb7C9C64a05af94d67B52883a60756950058D7

Ownership transferred to production addresses (safe/ICAs).
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 2, 2026

Codecov Report

❌ Patch coverage is 95.09804% with 5 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (audit-q2-2026@2057d1a). Learn more about missing BASE report.

Additional details and impacted files
@@               Coverage Diff                @@
##             audit-q2-2026    #8512   +/-   ##
================================================
  Coverage                 ?   79.28%           
================================================
  Files                    ?      140           
  Lines                    ?     4190           
  Branches                 ?      409           
================================================
  Hits                     ?     3322           
  Misses                   ?      840           
  Partials                 ?       28           
Flag Coverage Δ
solidity 80.60% <ø> (?)
tron-sdk 72.34% <95.09%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
core 87.80% <0.00%> (?)
hooks 78.11% <0.00%> (?)
isms 81.46% <0.00%> (?)
token 88.37% <0.00%> (?)
middlewares 88.02% <0.00%> (?)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

1 participant