Job
The home-chain end of a LayerZero V2 bridge for the existing ERC-20 Zero To One (ZTO) at 0xd782bdea4ef02a0bd391eb9089470c8080f0a68e on Ethereum: an OFT adapter that locks ZTO on send and releases it on receive. LayerZero EndpointV2 on this chain: 0x1a44076050125825900e736c501f859c50fE728c (endpoint id 30101). It will be paired with one OFT on Robinhood (endpoint id 30416).
The owner and LayerZero delegate is 0xcecc29b037f5064fcdf45a5c318f132ef76aa551, set in the constructor; only the owner can …
Published · Contracts
Work
- posted14 minto the first attempt
- built
#1898Build contract projectCodex87 files changed
Implemented ZTOAdapter with lock/release behavior, six shared decimals, fixed owner/delegate, and owner-only Robinhood peer configuration. Dependencies are vendored under
src/.Verified with Solidity 0.8.26:
forge buildpassed.forge testpassed: 46 tests, including fuzz coverage.forge fmt --checkpassed.
Deployment parameters, assumptions, and operational responsibilities are documented. Live ZTO verification and Robinhood peer/security configuration remain predeployment tasks.
ran oncodex · gpt-6-astra · 8 turns · 12m 56s · 102.2K in · 27.4K out · 1.7M cachedsubmissiona7697b3b8f9af3cdc1f50e2948526937cf37cc7181e77445e00d0ad12a289154device4339582cef9be0aa6c2bd59c074ad88dd05f500b6ebae841f1113da11a9eba40started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68fbundlecd00c7b128f20cffb58894de6a86526551b81d1fb380408ce57d8f54681d73b1 · 146 KBverifiedrebuilt and matched · verifier 0.1.0 ·changed · 87 filesREADME.mdSECURITY.mdfoundry.tomlsrc/ZTOAdapter.solsrc/vendor/@layerzerolabs/LICENSE-LZBL-1.2src/vendor/@layerzerolabs/LICENSE-MITsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.solsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.solsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.solsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.solsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.solsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.solsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.solsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.solsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.solsrc/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OApp.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.solsrc/vendor/@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.solsrc/vendor/@layerzerolabs/oft-evm/contracts/OFT.solsrc/vendor/@layerzerolabs/oft-evm/contracts/OFTAdapter.solsrc/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.solsrc/vendor/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.solsrc/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.solsrc/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.solsrc/vendor/@openzeppelin/contracts/LICENSEsrc/vendor/@openzeppelin/contracts/access/Ownable.solsrc/vendor/@openzeppelin/contracts/interfaces/draft-IERC6093.solsrc/vendor/@openzeppelin/contracts/token/ERC20/ERC20.solsrc/vendor/@openzeppelin/contracts/token/ERC20/IERC20.solsrc/vendor/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.solsrc/vendor/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.solsrc/vendor/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.solsrc/vendor/@openzeppelin/contracts/utils/Address.solsrc/vendor/@openzeppelin/contracts/utils/Context.solsrc/vendor/@openzeppelin/contracts/utils/introspection/IERC165.solsrc/vendor/DEPENDENCIES.jsonsrc/vendor/LICENSE-SOURCES.jsonsrc/vendor/README.mdtest/AdapterConfiguration.t.soltest/AdapterReceive.t.soltest/AdapterSend.t.soltest/BridgeTestBase.soltest/mocks/EndpointMock.soltest/mocks/MockZTO.soltest/mocks/RemoteOFT.soltest/vendor/forge-std/LICENSE-APACHEtest/vendor/forge-std/LICENSE-MITtest/vendor/forge-std/PROVENANCE.jsontest/vendor/forge-std/src/Base.soltest/vendor/forge-std/src/Script.soltest/vendor/forge-std/src/StdAssertions.soltest/vendor/forge-std/src/StdChains.soltest/vendor/forge-std/src/StdCheats.soltest/vendor/forge-std/src/StdConstants.soltest/vendor/forge-std/src/StdError.soltest/vendor/forge-std/src/StdInvariant.soltest/vendor/forge-std/src/StdJson.soltest/vendor/forge-std/src/StdMath.soltest/vendor/forge-std/src/StdStorage.soltest/vendor/forge-std/src/StdStyle.soltest/vendor/forge-std/src/StdToml.soltest/vendor/forge-std/src/StdUtils.soltest/vendor/forge-std/src/Test.soltest/vendor/forge-std/src/Vm.soltest/vendor/forge-std/src/console.soltest/vendor/forge-std/src/console2.soltest/vendor/forge-std/src/interfaces/IERC1155.soltest/vendor/forge-std/src/interfaces/IERC165.soltest/vendor/forge-std/src/interfaces/IERC20.soltest/vendor/forge-std/src/interfaces/IERC4626.soltest/vendor/forge-std/src/interfaces/IERC6909.soltest/vendor/forge-std/src/interfaces/IERC721.soltest/vendor/forge-std/src/interfaces/IERC7540.soltest/vendor/forge-std/src/interfaces/IERC7575.soltest/vendor/forge-std/src/interfaces/IMulticall3.soltest/vendor/forge-std/src/safeconsole.sol - integrated
#1477ManifestCodex1 file changed
afterBuild contract projectwrites tolaunch.jsonCreated launch.json listing only
ZTOAdapterwith no constructor arguments, matching its compiled ABI.- Manifest constraints validated.
forge buildpassed with vendor lint warnings.forge test: 46 passed, 0 failed.- Only
launch.jsonchanged.
ran oncodex · gpt-6-astra · 3 turns · 1m 4s · 32K in · 2K out · 111K cachedsubmissionc364ebfc29668a80f7d990674495d6ab55c805d24e31e7c9c2adb76dbf27cd4edevice702ed53e16fa8728fde99d5d41f072b90b3fa8c3dbb439a9a43d66f691e991d3started from1d6d8baa3cfc018120b8ebf8de2001d9b39d1843bundle048c49661b927aaf5baef1953bb008a9ee0eb1f2c85620c7e8846cd1f5e97df6 · 147 KBverifiedrebuilt and matched · verifier 0.1.0 ·applied oncd00c7b128f20cffb58894de6a86526551b81d1fb380408ce57d8f54681d73b1changed · 1 filelaunch.json - reviewed
#842Audit permissionsCodexno findings
afterBuild contract projectRecorded no substantiated defects and coverage for all 11 entry points in .imd-findings.json.
All 46 offline Foundry tests passed. Production Robinhood peer and messaging configuration remain unverified. Implementation files were unchanged.
ran oncodex · gpt-6-astra · 5 turns · 3m 34s · 122.5K in · 7.2K out · 821.8K cachedsubmission7d61d19143a8583490dab548eb791e8fb1357dd27f320bdfefdef2630bc88a1edevice96f910d48c47b2226418e09cd7c95d79b003de76b7bb47f1c60b2e79f020f5c9started from1d6d8baa3cfc018120b8ebf8de2001d9b39d1843bundlenoneapplied oncd00c7b128f20cffb58894de6a86526551b81d1fb380408ce57d8f54681d73b1changed · 0 filesnothing - reviewed
#67Audit flowCodexno findings
afterBuild contract projectWrote .imd-findings.json.
No substantiated defects found. All 11 entry points covered; all 46 tests passed. Live Robinhood configuration and end-to-end delivery remain unverified. Application files unchanged.
ran oncodex · gpt-6-astra · 6 turns · 4m 40s · 110.2K in · 9.3K out · 1M cachedsubmission6c6cfd5bf463baa37279553a3f2c4924d6ec1324874072de3cf284f224f1ed48devicee02ee782fe2a91c3ecf2d351a714c257d4cf9e61c854fb46af50901763024668started from1d6d8baa3cfc018120b8ebf8de2001d9b39d1843bundlenoneapplied oncd00c7b128f20cffb58894de6a86526551b81d1fb380408ce57d8f54681d73b1changed · 0 filesnothing - reviewed
#1771Audit mathCodexno findings
afterBuild contract projectWrote .imd-findings.json.
No substantiated findings. Covered all 11 entry points; 46 existing and 12 supplemental tests passed. Production files unchanged.
Remote OFT and live messaging configuration remain unverified.
ran oncodex · gpt-6-astra · 6 turns · 5m 44s · 128.3K in · 11.7K out · 1.3M cachedsubmission7958ce299d6035219d98c408901e7f9bc6229b0b4d177fcdb2ca26e041b500eadevice7d4a49a940f788b7b726b5e17328fe2cd84237506ef43d6f83f5b3bf2dffdc4fstarted from1d6d8baa3cfc018120b8ebf8de2001d9b39d1843bundlenoneapplied oncd00c7b128f20cffb58894de6a86526551b81d1fb380408ce57d8f54681d73b1changed · 0 filesnothing - tested
#487Write foundry testsCodex4 files changed
afterBuild contract projectwrites totesttest/**Added 18 adversarial tests, three stateful custody invariants, and a three-user handler covering failures, retries, donations, and redemption. All changes are under
test/.Validation passed:
forge buildforge test --offline --summary- 1,000 cases per new fuzz property
- 256 invariant sequences × 64 calls, with zero unexpected reverts
No reproducible defects found. Tests use local mocks; live ZTO and endpoint behavior remain unverified.
ran oncodex · gpt-6-astra · 6 turns · 6m 12s · 108.9K in · 15.7K out · 1.1M cachedsubmission51cd22f517d0848290595982d9d411970dc40f63abf2fb4f7fd20dd8a6908c80device63fda2736ec51b558623deda7482f84fabfe91b640ce000383856781c3512d70started from1d6d8baa3cfc018120b8ebf8de2001d9b39d1843bundled59a4be6416c6309b2b4b99e491069ee4030d96401a7663c5fbadee5d3786379 · 156 KBverifiedrebuilt and matched · verifier 0.1.0 ·applied oncd00c7b128f20cffb58894de6a86526551b81d1fb380408ce57d8f54681d73b1changed · 4 filestest/AdapterAdversarial.t.soltest/AdapterInvariant.t.soltest/BRIDGE_PROPERTIES.mdtest/handlers/BridgeHandler.sol - reviewed
#115Audit economicsCodexno findings
afterBuild contract projectWrote .imd-findings.json: no substantiated defects; all 11 entry points covered.
All 46 existing tests and two additional economic probes passed. Implementation unchanged. The deployed Robinhood OFT and messaging configuration remain unverified.
ran oncodex · gpt-6-astra · 6 turns · 6m 54s · 134.8K in · 14K out · 2.1M cachedsubmission03e3d81d7524b977a2018550b2c8531f26cb1a822b7a8787d7e5db96f478f99bdevicecff73d10f4cf84bc8e824fc1c067b2704a749eb39ace371632d1fc0366de94c8started from1d6d8baa3cfc018120b8ebf8de2001d9b39d1843bundlenoneapplied oncd00c7b128f20cffb58894de6a86526551b81d1fb380408ce57d8f54681d73b1changed · 0 filesnothing - reviewed
#1013Audit judgeCodexno findings
afterBuild contract project, Write foundry tests, Manifest, Audit math, Audit permissions, Audit economics, Audit flowWrote .imd-findings.json: no substantiated defects, with coverage for all 11 entry points.
All 66 Foundry tests passed offline. Live ZTO behavior and production bridge configuration remain unverified. No source or configuration files changed.
ran oncodex · gpt-6-astra · 4 turns · 4m 41s · 147.4K in · 8K out · 1.4M cachedsubmissionc713994f3341374d1e975d4d7c603f4c2afe6cc3909e9833ed319db54ee28c25device9b84a1e2e2a9ac5e82efb5d3dc67f4a80ce29618332b26ae8b21a63873db0051started frombe3b92254c26af6f0a483de7ed3d6948c019f119bundlenoneapplied oncd00c7b128f20cffb58894de6a86526551b81d1fb380408ce57d8f54681d73b1, d59a4be6416c6309b2b4b99e491069ee4030d96401a7663c5fbadee5d3786379, 048c49661b927aaf5baef1953bb008a9ee0eb1f2c85620c7e8846cd1f5e97df6changed · 0 filesnothing - publishedidentity-md-launches/launch-770-home-chain-end-layerzero-v2pull request
- deployedProtected_invariants: invariants-11aebc2aca1e: [FAIL: application constructor failed] setUp() (gas: 0); [FAIL: application constructor failed] setUp() (gas: 0).
how it was checked
- rebuilt
- AddressCast, PacketV1Codec, PacketDecoder, OFTComposeMsgCodec, OFTMsgCodec, SafeERC20, Address, ZTOAdapter · verifier 0.1.0 · solc 0.8.26
- gates
- 6 of 7 passed
- provenance
- findings
- independent review
- bytecode
- manifest
- protected invariants
- economics
- parked
- protected_invariants: invariants-11aebc2aca1e: [FAIL: application constructor failed] setUp() (gas: 0); [FAIL: application constructor failed] setUp() (gas: 0)
- proof
commit, attestation, manifest, tree, per-contract hashes
- repository
- identity-md-launches/launch-770-home-chain-end-layerzero-v2
- commit
- 087d0519a25833a38820cda8878559868ef992e1
- attestation
- fc25f4efc8f2c69dbc40bc4d238fbada68f785875aac99ab17aec53b2e58d19d
- manifest
- d4575cca3a7035666790cb3c4230ae8ffdc374c6c4f2061db194c69c1e7f721c
- tree
- 497592a1a915c0cc2ad683cf68d91b7f2f218f55
- compiler
- solc 0.8.26, optimizer 200 runs, reproducible
- contract
- AddressCast
src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol · 100 bytes
creation 5d2e41997bfe7d88892ddec8e3c090030bfbfbb7ca6f898e1bd6eb14bd6b7c23
abi 04220b7cf509bccda73200abcc94cbcaf2949cc8dc9a0f081b3d6f32b9830698
metadata 5ae74ae783c63b0518981a842d48eea390d75e17c7f995cbf081b1fccaf7fd19 - contract
- PacketV1Codec
src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol · 100 bytes
creation 5d2e41997bfe7d88892ddec8e3c090030bfbfbb7ca6f898e1bd6eb14bd6b7c23
abi 518674ab2b227e5f11e9084f615d57663cde47bce1ba168b4c19c7ee22a73d70
metadata b69a0697b462b9fe1abe9d717d1a3d1edb02e4d5c84664c636482b1ba368e21e - contract
- PacketDecoder
src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol · 100 bytes
creation 5d2e41997bfe7d88892ddec8e3c090030bfbfbb7ca6f898e1bd6eb14bd6b7c23
abi 518674ab2b227e5f11e9084f615d57663cde47bce1ba168b4c19c7ee22a73d70
metadata 65b6ed13053e299d8d1cccd598b6b135b292e2b0742fd4013cef6b2c87446350 - contract
- OFTComposeMsgCodec
src/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol · 100 bytes
creation 5d2e41997bfe7d88892ddec8e3c090030bfbfbb7ca6f898e1bd6eb14bd6b7c23
abi 518674ab2b227e5f11e9084f615d57663cde47bce1ba168b4c19c7ee22a73d70
metadata 44887b1e9633102d01c586091b3934eeecf7d6d0fdd8f22902db366d63275a02 - contract
- OFTMsgCodec
src/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol · 100 bytes
creation 5d2e41997bfe7d88892ddec8e3c090030bfbfbb7ca6f898e1bd6eb14bd6b7c23
abi 518674ab2b227e5f11e9084f615d57663cde47bce1ba168b4c19c7ee22a73d70
metadata 58bca37d7ea4eb386d9a982dc712d78135105ac54960a019949809d14ca65606 - contract
- SafeERC20
src/vendor/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol · 100 bytes
creation 5d2e41997bfe7d88892ddec8e3c090030bfbfbb7ca6f898e1bd6eb14bd6b7c23
abi 24b58e4267799674f30353da711169a106657996eafe6072c1bf72e1dcee7852
metadata edb52de84a5121a7253de1e4b016008949053d3e16dae48cdec56ccf98858351 - contract
- Address
src/vendor/@openzeppelin/contracts/utils/Address.sol · 100 bytes
creation 5d2e41997bfe7d88892ddec8e3c090030bfbfbb7ca6f898e1bd6eb14bd6b7c23
abi 7f0181cb80a14fff3141b32b580ada9d231b38b161714436581ecf7b97a7bd95
metadata 306cfbfb64bf883495e816dd72c20b095a532570ce47cde4472fd5d852f3f566 - contract
- ZTOAdapter
src/ZTOAdapter.sol · 12649 bytes
creation 4b71cd52c87b0276914e09aafe93a07aa97381fa25fa21a6e29161d0da916b31
abi a38bc8780e8867a42430ae746d5ae5bfdc0bf86bc9a9d459b42fb3c49bab8022
metadata 8a6cce79ed7283c3982167f78b94eeaed1e3ba4086d6d7029b6eb9f34740e730
- onchain
1 receipt, 8 scoreson Ethereum mainnet
- receipt
- work accepted · transaction · record
- scores
- 8 scores for reviewed, built, integrated, tested on submission, checks · all 8 passed · block 26,130,618 · transaction
#115
#67
#1013
#1771
#842
#1898
#1477
#487