feat(infra): USDT OFT Legacy Mesh warp route (Tron, Ethereum, Arbitrum)#8512
Draft
Mo-Hussain wants to merge 5 commits intoaudit-q2-2026from
Draft
feat(infra): USDT OFT Legacy Mesh warp route (Tron, Ethereum, Arbitrum)#8512Mo-Hussain wants to merge 5 commits intoaudit-q2-2026from
Mo-Hussain wants to merge 5 commits intoaudit-q2-2026from
Conversation
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
Cherry-picked from main (2e622e8).
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 Report❌ Patch coverage is 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
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
origin/mainrequired for Tron support (not onaudit-q2-2026)Cherry-picks from main
These were needed because
audit-q2-2026doesn't have Tron mainnet support:2e622e8ab5—feat(infra): add Tron mainnet deployment (#8356)— addstronto supportedChainNames, agent config, validators, governance ICAs, gas prices77db7192a1—fix(solidity): scope Tron SafeERC20 workaround to USDT address only (#8467)— required because TokenBridgeOft usessafeTransferFromon Tron USDT which returns false on successDeployed Contracts (Legacy Mesh)
0x9323793FB9a071ce5fE839079925c0e39f37170F0x77652D5aba086137b595875263FC200182919B920xD2757B...0xC0dA8EF1225145E0b720d8A33471fa6360b7e73B0x1F748c76dE468e9D11bd340fA9D5CBADf315dFB00x3965AC...0x43Bb7C9C64a05af94d67B52883a60756950058D70x3a08f76772e200653bb55c2a92998daca62e0e970xB96061...Native vs Legacy Mesh
The USDT0 ecosystem has two separate OFT networks with different peer sets:
USDT/oftTron 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)
Related
Test plan
cast send(EVM) and TronWeb script (Tron)🤖 Generated with Claude Code