{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"b0f332d1-6b3b-44a7-a5ed-8369ca149f3f","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"03e3d81d7524b977a2018550b2c8531f26cb1a822b7a8787d7e5db96f478f99b","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"6c6cfd5bf463baa37279553a3f2c4924d6ec1324874072de3cf284f224f1ed48","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"c713994f3341374d1e975d4d7c603f4c2afe6cc3909e9833ed319db54ee28c25","dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"3014f1ea5961918ca059453a484bf4c8bcbbfc2248dbe31d94ac7c5cdf8f50bd","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"3014f1ea5961918ca059453a484bf4c8bcbbfc2248dbe31d94ac7c5cdf8f50bd","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"7958ce299d6035219d98c408901e7f9bc6229b0b4d177fcdb2ca26e041b500ea","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"7d61d19143a8583490dab548eb791e8fb1357dd27f320bdfefdef2630bc88a1e","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"a7697b3b8f9af3cdc1f50e2948526937cf37cc7181e77445e00d0ad12a289154","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"b6503de65ad02f845827887c23da4c3b56ccc5df7a459db263bae6e549d92f7f","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"b6503de65ad02f845827887c23da4c3b56ccc5df7a459db263bae6e549d92f7f","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"c364ebfc29668a80f7d990674495d6ab55c805d24e31e7c9c2adb76dbf27cd4e","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"51cd22f517d0848290595982d9d411970dc40f63abf2fb4f7fd20dd8a6908c80","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"73431852439ad3a343f3d2b7db1c43cd363b9f48f9bb51497374a0cf6d50b223","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"73431852439ad3a343f3d2b7db1c43cd363b9f48f9bb51497374a0cf6d50b223","skillId":"write-foundry-tests","state":"accepted"}],"objective":"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 set a peer. Use LayerZero V2 OApp/OFT semantics with 6 shared decimals. Put the LayerZero code the contract needs under src/ and add nothing under lib/. No fees, no pause, no upgrade path, no rescue function.","parentJobId":null,"planHash":"fd167538475c5a33993dc74cc192a8d3966e25e0099f1284503801c55691533d","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"b0f332d1-6b3b-44a7-a5ed-8369ca149f3f","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-770-home-chain-end-layerzero-v2"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51131","feedbackHash":"f4bf16f55dd7f08b8b20c3ba92ac9e680b7c07ae4ef2402f3cdfb27db28506df","nodeKey":"audit_economics","submissionHash":"03e3d81d7524b977a2018550b2c8531f26cb1a822b7a8787d7e5db96f478f99b","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51195","feedbackHash":"4413d715713c2b319aa7a235da8e464569bee8ac210d1164279bad050c14b553","nodeKey":"audit_flow","submissionHash":"6c6cfd5bf463baa37279553a3f2c4924d6ec1324874072de3cf284f224f1ed48","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52196","feedbackHash":"7eb2c67d4b6aea90d309e3e317c36616222c87f784336977f98b0ddb3262fb47","nodeKey":"audit_judge","submissionHash":"c713994f3341374d1e975d4d7c603f4c2afe6cc3909e9833ed319db54ee28c25","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"50967","feedbackHash":"4fa7e3a76ca6d96e5eb7eac1aad1e3f85cbdff59e1fe3b052934d322d0496cd9","nodeKey":"audit_math","submissionHash":"7958ce299d6035219d98c408901e7f9bc6229b0b4d177fcdb2ca26e041b500ea","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51191","feedbackHash":"f2531f51886ad88f1ef6054e00c166e17b5beb100c96e96199f3588ab3073345","nodeKey":"audit_permissions","submissionHash":"7d61d19143a8583490dab548eb791e8fb1357dd27f320bdfefdef2630bc88a1e","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51177","feedbackHash":"318a7a6696214208c0ebdf0b4041f77c613a6d3db3707347c9b3d94d08fdf6f5","nodeKey":"build_contract_project","submissionHash":"a7697b3b8f9af3cdc1f50e2948526937cf37cc7181e77445e00d0ad12a289154","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51359","feedbackHash":"f9be7373069486b7e640245bf27e7f8d4c7b98931cece64b48394f1e3ad02c4b","nodeKey":"manifest","submissionHash":"c364ebfc29668a80f7d990674495d6ab55c805d24e31e7c9c2adb76dbf27cd4e","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51389","feedbackHash":"8086789f622a252b3c520808033c94114214916be5833a62706767bf428e39f4","nodeKey":"write_foundry_tests","submissionHash":"51cd22f517d0848290595982d9d411970dc40f63abf2fb4f7fd20dd8a6908c80","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"6ac17c3dbe1ccb4f0e2b7f0fb7ab5f64d46b0bc1e43202a7ff9dc48b1309f03b","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"cff73d10f4cf84bc","findings":[],"hash":"03e3d81d7524b977a2018550b2c8531f26cb1a822b7a8787d7e5db96f478f99b","nodeId":"6da4a663-bb75-4e63-b179-51be0b12cd67","outcome":"completed","summary":"Wrote [.imd-findings.json](/root/.identitymd/work/b0f332d1-6b3b-44a7-a5ed-8369ca149f3f/6da4a663-bb75-4e63-b179-51be0b12cd67/.imd-findings.json): no substantiated defects; all 11 entry points covered.\n\nAll 46 existing tests and two additional economic probes passed. Implementation unchanged. The deployed Robinhood OFT and messaging configuration remain unverified.","treeHash":null,"usage":{"cachedInputTokens":2139904,"inputTokens":134821,"model":"gpt-6-astra","outputTokens":13993,"runtime":"codex","turns":6,"wallClockMs":413604}},{"artifacts":[],"attempt":1,"bundleHash":"d59a4be6416c6309b2b4b99e491069ee4030d96401a7663c5fbadee5d3786379","device":"63fda2736ec51b55","findings":[],"hash":"51cd22f517d0848290595982d9d411970dc40f63abf2fb4f7fd20dd8a6908c80","nodeId":"42c29dba-8fd8-4642-9f1a-38a479945208","outcome":"completed","summary":"Added 18 adversarial tests, three stateful custody invariants, and a three-user handler covering failures, retries, donations, and redemption. All changes are under `test/`.\n\nValidation passed:\n- `forge build`\n- `forge test --offline --summary`\n- 1,000 cases per new fuzz property\n- 256 invariant sequences × 64 calls, with zero unexpected reverts\n\nNo reproducible defects found. Tests use local mocks; live ZTO and endpoint behavior remain unverified.","treeHash":"69ed49b96aa52e5ff8645c2dc4e5a710b5ba6687","usage":{"cachedInputTokens":1108992,"inputTokens":108888,"model":"gpt-6-astra","outputTokens":15707,"runtime":"codex","turns":6,"wallClockMs":371921}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"e02ee782fe2a91c3","findings":[],"hash":"6c6cfd5bf463baa37279553a3f2c4924d6ec1324874072de3cf284f224f1ed48","nodeId":"bb428551-1185-46df-8739-923f8fe16146","outcome":"completed","summary":"Wrote [.imd-findings.json](/home/seat/.identitymd/work/b0f332d1-6b3b-44a7-a5ed-8369ca149f3f/bb428551-1185-46df-8739-923f8fe16146/.imd-findings.json).\n\nNo 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.","treeHash":null,"usage":{"cachedInputTokens":1015552,"inputTokens":110241,"model":"gpt-6-astra","outputTokens":9326,"runtime":"codex","turns":6,"wallClockMs":279645}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"7d4a49a940f788b7","findings":[],"hash":"7958ce299d6035219d98c408901e7f9bc6229b0b4d177fcdb2ca26e041b500ea","nodeId":"da80710e-81f5-46bd-8488-ecab26695801","outcome":"completed","summary":"Wrote [.imd-findings.json](/home/bc/.identitymd/work/b0f332d1-6b3b-44a7-a5ed-8369ca149f3f/da80710e-81f5-46bd-8488-ecab26695801/.imd-findings.json).\n\nNo substantiated findings. Covered all 11 entry points; 46 existing and 12 supplemental tests passed. Production files unchanged.\n\nRemote OFT and live messaging configuration remain unverified.","treeHash":null,"usage":{"cachedInputTokens":1315200,"inputTokens":128323,"model":"gpt-6-astra","outputTokens":11704,"runtime":"codex","turns":6,"wallClockMs":343708}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"96f910d48c47b222","findings":[],"hash":"7d61d19143a8583490dab548eb791e8fb1357dd27f320bdfefdef2630bc88a1e","nodeId":"d698d82f-1a5f-4f4d-a7b5-37f266e6f1d6","outcome":"completed","summary":"Recorded no substantiated defects and coverage for all 11 entry points in [.imd-findings.json](.imd-findings.json).\n\nAll 46 offline Foundry tests passed. Production Robinhood peer and messaging configuration remain unverified. Implementation files were unchanged.","treeHash":null,"usage":{"cachedInputTokens":821760,"inputTokens":122497,"model":"gpt-6-astra","outputTokens":7229,"runtime":"codex","turns":5,"wallClockMs":213507}},{"artifacts":[],"attempt":1,"bundleHash":"cd00c7b128f20cffb58894de6a86526551b81d1fb380408ce57d8f54681d73b1","device":"4339582cef9be0aa","findings":[],"hash":"a7697b3b8f9af3cdc1f50e2948526937cf37cc7181e77445e00d0ad12a289154","nodeId":"caba8e08-d2a7-43f5-a7ad-76ae302a0c33","outcome":"completed","summary":"Implemented [ZTOAdapter](/home/levi/imd/p8/work/b0f332d1-6b3b-44a7-a5ed-8369ca149f3f/caba8e08-d2a7-43f5-a7ad-76ae302a0c33/src/ZTOAdapter.sol) with lock/release behavior, six shared decimals, fixed owner/delegate, and owner-only Robinhood peer configuration. Dependencies are vendored under `src/`.\n\nVerified with Solidity 0.8.26:\n\n- `forge build` passed.\n- `forge test` passed: 46 tests, including fuzz coverage.\n- `forge fmt --check` passed.\n\nDeployment parameters, assumptions, and operational responsibilities are documented. Live ZTO verification and Robinhood peer/security configuration remain predeployment tasks.","treeHash":"f0bde480d691b15552d4b55fd99421558a3a820c","usage":{"cachedInputTokens":1700096,"inputTokens":102185,"model":"gpt-6-astra","outputTokens":27416,"runtime":"codex","turns":8,"wallClockMs":775667}},{"artifacts":[],"attempt":1,"bundleHash":"048c49661b927aaf5baef1953bb008a9ee0eb1f2c85620c7e8846cd1f5e97df6","device":"702ed53e16fa8728","findings":[],"hash":"c364ebfc29668a80f7d990674495d6ab55c805d24e31e7c9c2adb76dbf27cd4e","nodeId":"cc9d2b01-5103-4f1c-8f57-821d98716363","outcome":"completed","summary":"Created [launch.json](/home/seat/.identitymd/work/b0f332d1-6b3b-44a7-a5ed-8369ca149f3f/cc9d2b01-5103-4f1c-8f57-821d98716363/launch.json) listing only `ZTOAdapter` with no constructor arguments, matching its compiled ABI.\n\n- Manifest constraints validated.\n- `forge build` passed with vendor lint warnings.\n- `forge test`: 46 passed, 0 failed.\n- Only `launch.json` changed.","treeHash":"03ceff95c5c66fae4f59d24bfab58f80b6ec8e24","usage":{"cachedInputTokens":110976,"inputTokens":32024,"model":"gpt-6-astra","outputTokens":1966,"runtime":"codex","turns":3,"wallClockMs":63523}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"9b84a1e2e2a9ac5e","findings":[],"hash":"c713994f3341374d1e975d4d7c603f4c2afe6cc3909e9833ed319db54ee28c25","nodeId":"0bba5865-27fe-490d-8ffe-beaa8de810ac","outcome":"completed","summary":"Wrote [.imd-findings.json](/home/imd/.identitymd/work/b0f332d1-6b3b-44a7-a5ed-8369ca149f3f/0bba5865-27fe-490d-8ffe-beaa8de810ac/.imd-findings.json): no substantiated defects, with coverage for all 11 entry points.\n\nAll 66 Foundry tests passed offline. Live ZTO behavior and production bridge configuration remain unverified. No source or configuration files changed.","treeHash":null,"usage":{"cachedInputTokens":1416960,"inputTokens":147377,"model":"gpt-6-astra","outputTokens":7976,"runtime":"codex","turns":4,"wallClockMs":280756}}],"verification":[{"checks":[{"durationMs":6412,"exitCode":0,"name":"build","output":"Compiling 78 files with Solc 0.8.26\nSolc 0.8.26 finished in 6.05s\nCompiler run successful!\nwarning[unsafe-typecast]: typecast can truncate values\n   ╭▸ src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol:11:18\n   │\n11 │         result = bytes32(_addressBytes);\n   │                  ━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ├ note: consider disabling this lint if you're certain the cast is safe\n   │       \n   │       // casting to 'bytes32' is safe because [explain why]\n   │       // forge-lint: disable-next-line(unsafe-typecast)\n   │       \n   │       \n   ╰ help: https://getfoundry.sh/forge/linting/unsafe-typecast\n\nwarning[controlled-delegatecall]: `delegatecall` target is not provably trusted\n    ╭▸ src/vendor/@openzeppelin/contracts/utils/Address.sol:105:51\n    │\n105 │         (bool success, bytes memory returndata) = target.delegatecall(data);\n    │                                                   ━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/controlled-delegatecall\n\nwarning[unsafe-typecast]: typecast can truncate values\n   ╭▸ src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol:39:26\n   │\n39 │         result = address(bytes20(_addressBytes));\n   │                          ━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ├ note: consider disabling this lint if you're certain the cast is safe\n   │       \n   │       // casting to 'bytes20' is safe because [explain why]\n   │       // forge-lint: disable-next-line(unsafe-typecast)\n   │       \n   │       \n   ╰ help: https://getfoundry.sh/forge/linting/unsafe-typecast\n\nwarning[missing-zero-check]: address parameter is used in a state write or value transfer without a zero-address check\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:104:30\n    │\n104 │     function setMsgInspector(address _msgInspector) public virtual onlyOwner {\n    │                              ━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/missing-zero-check\n\nwarning[locked-ether]: contract can receive ETH but has no mechanism to send it out\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol:17:19\n   │\n17 │ abstract contract OApp is OAppSender, OAppReceiver {\n   │                   ━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/locked-ether\n\nwarning[locked-ether]: contract can receive ETH but has no mechanism to send it out\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol:12:19\n   │\n12 │ abstract contract OAppReceiver is IOAppReceiver, OAppCore {\n   │                   ━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/locked-ether\n\nwarning[reentrancy-events]: event emitted after an external call; reentrancy can reorder or fabricate logs that off-chain consumers rely on\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:223:9\n    │\n223 │         emit OFTSent(msgReceipt.guid, _sendParam.dstEid, msg.sender, amountSentLD, amountReceivedLD);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/reentrancy-events\n\nwarning[unused-return]: return value of an external call is not used\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:256:38\n    │\n256 │         if (inspector != address(0)) IOAppMsgInspector(inspector).inspect(message, options);\n    │                                      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/unused-return\n\nwarning[reentrancy-events]: event emitted after an external call; reentrancy can reorder or fabricate logs that off-chain consumers rely on\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:308:9\n    │\n308 │         emit OFTReceived(_guid, _origin.srcEid, toAddress, amountReceivedLD);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/reentrancy-events\n\nwarning[divide-before-multiply]: division before multiplication may lose precision\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:356:16\n    │\n356 │         return (_amountLD / decimalConversionRate) * decimalConversionRate;\n    │                ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/divide-before-multiply\n\nwarning[reentrancy-events]: event emitted after an external call; reentrancy can reorder or fabricate logs that off-chain consumers rely on\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol:48:9\n   │\n48 │         emit EnforcedOptionSet(_enforcedOptions);\n   │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/reentrancy-events\n\nwarning[require-revert-in-loop]: `require` or `revert` inside a loop\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol:97:43\n   │\n97 │         if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\n   │                                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/require-revert-in-loop\n\nwarning[unsafe-typecast]: typecast can truncate values\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:379:16\n    │\n379 │         return uint64(_amountSD);\n    │                ━━━━━━━━━━━━━━━━━\n    │\n    ├ note: consider disabling this lint if you're certain the cast is safe\n    │       \n    │       // casting to 'uint64' is safe because [explain why]\n    │       // forge-lint: disable-next-line(unsafe-typecast)\n    │       \n    │       \n    ╰ help: https://getfoundry.sh/forge/linting/unsafe-typecast\n\nwarning[arbitrary-send-erc20]: `transferFrom` uses an arbitrary `from`; require it to equal `msg.sender` or `address(this)`\n   ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTAdapter.sol:80:9\n   │\n80 │         innerToken.safeTransferFrom(_from, address(this), amountSentLD);\n   │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/arbitrary-send-erc20\n\nwarning[locked-ether]: contract can receive ETH but has no mechanism to send it out\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:13:19\n   │\n13 │ abstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\n   │                   ━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/locked-ether\n\nwarning[missing-zero-check]: address parameter is used in a state write or value transfer without a zero-address check\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:32:26\n   │\n32 │     function setPreCrime(address _preCrime) public virtual onlyOwner {\n   │                          ━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/missing-zero-check\n\nwarning[calls-loop]: external call inside a loop\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:59:13\n   │\n59 │ ┏             this.lzReceiveSimulate{value: packet.value}(\n60 │ ┃                 packet.origin, packet.guid, packet.message, packet.executor, packet.extraData\n61 │ ┃             );\n   │ ┗━━━━━━━━━━━━━┛\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/calls-loop\n\n","passed":true},{"durationMs":7413,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 13 tests for test/AdapterConfiguration.t.sol:AdapterConfigurationTest\n[PASS] testFuzz_ownerCannotEnableAnotherChain(uint32) (runs: 256, μ: 39762, ~: 39759)\n[PASS] test_allInheritedConfigurationIsOwnerOnly() (gas: 160664)\n[PASS] test_composedSendUsesSendAndCallOptionsAndIncludesOriginalSender() (gas: 526319)\n[PASS] test_constructorRejectsTokenWithFewerThanSixDecimals() (gas: 33301)\n[PASS] test_constructorSetsSpecifiedAddressesEvenWhenFactoryDeploys() (gas: 99452)\n[PASS] test_enforcedOptionsAreCombinedAndAppliedToSend() (gas: 550608)\n[PASS] test_factoryAndStrangerCannotSetPeer() (gas: 69263)\n[PASS] test_inspectorRejectionRollsBackSend() (gas: 409651)\n[PASS] test_legacyOptionsCannotBypassEnforcedOptions() (gas: 72691)\n[PASS] test_newDeploymentHasNoPeerOrOptionalHooks() (gas: 61766)\n[PASS] test_ownerCanReplaceAndRemovePeerWithEvents() (gas: 97167)\n[PASS] test_ownershipAndDelegateChangesHaveSeparateEffects() (gas: 176936)\n[PASS] test_runtimeFitsDeploymentPolicyAndContainsNoEscapeOpcodes() (gas: 7469563)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 168.19ms (195.50ms CPU time)\n\nRan 15 tests for test/AdapterReceive.t.sol:AdapterReceiveTest\n[PASS] test_composeQueueFailureRollsBackCreditThenAllowsRetry() (gas: 1404456)\n[PASS] test_directReceiveCannotUnlockEvenWithCorrectOrigin() (gas: 597753)\n[PASS] test_endpointWithWrongPeerCannotUnlock() (gas: 598133)\n[PASS] test_endpointWithWrongSourceChainCannotUnlock() (gas: 600185)\n[PASS] test_falseTransferReturnPreservesPacketForRetry() (gas: 1219797)\n[PASS] test_insufficientCustodyRevertsWithoutMinting() (gas: 91704)\n[PASS] test_receiveReleasesCustodyAndEmitsReceipt() (gas: 1044232)\n[PASS] test_receiveWithComposeCreditsAndQueuesStandardComposePayload() (gas: 1242559)\n[PASS] test_removedPeerBlocksPendingMessageUntilRestored() (gas: 1191240)\n[PASS] test_shortPayloadRevertsWithoutUnlocking() (gas: 610202)\n[PASS] test_simulationAlwaysRevertsAndCannotKeepUnlockedTokens() (gas: 642841)\n[PASS] test_simulationEntryPointCannotBeCalledDirectly() (gas: 596870)\n[PASS] test_transportRejectsReplayAndModifiedPacket() (gas: 1113269)\n[PASS] test_unorderedDeliveryConservesCustody() (gas: 1433813)\n[PASS] test_zeroRecipientRevertsAccordingToUnderlyingERC20() (gas: 607051)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 245.95ms (32.90ms CPU time)\n\nRan 18 tests for test/AdapterAdversarial.t.sol:AdapterAdversarialTest\n[PASS] testFuzz_anyCallerExceptEndpointCannotRelease(address) (runs: 1000, μ: 608598, ~: 608623)\n[PASS] testFuzz_everyTruncatedPayloadRevertsWithoutReleasing(uint256,bytes32) (runs: 1000, μ: 628958, ~: 628616)\nLogs:\n  Bound result 12\n\n[PASS] testFuzz_minimumAboveRoundedAmountRejectsQuoteAndSend(uint64,uint256) (runs: 1000, μ: 189401, ~: 189546)\nLogs:\n  Bound result 641180753\n\n[PASS] testFuzz_roundTripAcrossSharedAmountDomain(uint64,uint256) (runs: 1000, μ: 1130398, ~: 1126257)\nLogs:\n  Bound result 603414830343\n\n[PASS] testFuzz_untrustedPeerCannotSpendEscrow(bytes32) (runs: 1000, μ: 611297, ~: 611391)\n[PASS] test_endpointFailureRestoresBothTokenTransfersAndAllowances() (gas: 1098638)\n[PASS] test_falseFeeTokenTransferRollsBackZTOLock() (gas: 1070018)\n[PASS] test_feeTokenWithoutAllowanceRollsBackZTOLock() (gas: 980592)\n[PASS] test_fullSupplyRoundTrips() (gas: 1134326)\n[PASS] test_invalidOptionsBatchRollsBackEarlierValidEntry() (gas: 82750)\n[PASS] test_maximumSharedAmountPlusDustRoundTrips() (gas: 1157240)\n[PASS] test_nineLocalDecimalsRoundTrip() (gas: 1198606)\n[PASS] test_oneSharedUnitRoundTrips() (gas: 1121761)\n[PASS] test_oneWeiNeverCreatesARemoteClaim() (gas: 1004487)\n[PASS] test_rejectedRefundRollsBackQueueNonceLockAndFeePayment() (gas: 1165792)\n[PASS] test_replacingPeerBlocksOldInflightMessageUntilRestored() (gas: 1227146)\n[PASS] test_sixLocalDecimalsRoundTrip() (gas: 1198413)\n[PASS] test_uint256MaximumCannotTruncateIntoAValidPacket() (gas: 238893)\nSuite result: ok. 18 passed; 0 failed; 0 skipped; finished in 245.99ms (928.13ms CPU time)\n\nRan 18 tests for test/AdapterSend.t.sol:AdapterSendTest\n[PASS] testFuzz_roundTripConservesSupplyAndDust(uint96) (runs: 256, μ: 1099452, ~: 1099726)\nLogs:\n  Bound result 999999999999473238531963\n\n[PASS] test_endpointFailureRollsBackTokensAllowanceAndNativePayment() (gas: 264533)\n[PASS] test_excessNativeFeeIsRefundedToSpecifiedAddress() (gas: 434324)\n[PASS] test_falseTransferFromReturnRevertsWithoutSending() (gas: 202467)\n[PASS] test_nativeValueMustEqualSuppliedFee() (gas: 377797)\n[PASS] test_noPeerRevertsAndRollsBackLock() (gas: 249730)\n[PASS] test_optionalLayerZeroTokenFeeGoesToEndpoint() (gas: 1282511)\n[PASS] test_quoteHasNoBridgeFeeAndDoesNotMoveTokens() (gas: 88008)\n[PASS] test_sendLocksTokensEncodesPacketAndRetainsDust() (gas: 699138)\n[PASS] test_sendWithoutApprovalReverts() (gas: 96834)\n[PASS] test_senderCannotSpendAnotherUsersApproval() (gas: 210101)\n[PASS] test_sharedAmountOverflowRevertsAndRollsBackLock() (gas: 231213)\n[PASS] test_slippageAfterDustRemovalRevertsQuoteAndSend() (gas: 169023)\n[PASS] test_staleUnderpricedFeeRevertsAndRollsBackLock() (gas: 215705)\n[PASS] test_uint64MaximumSharedAmountCanBridge() (gas: 602672)\n[PASS] test_unavailableLayerZeroFeeTokenRevertsAtomically() (gas: 205617)\n[PASS] test_unconfiguredDestinationCannotSend() (gas: 202557)\n[PASS] test_zeroAndDustOnlyAmountsFollowStandardOFTSemantics() (gas: 924663)\nSuite result: ok. 18 passed; 0 failed; 0 skipped; finished in 246.02ms (181.92ms CPU time)\n\nRan 2 tests for test/AdapterInvariant.t.sol:AdapterInvariantTest\n[PASS]\nAdapterInvariantTest invariants:\n[PASS] invariant_authoritiesAndNativeFeesRemainCorrect\n[PASS] invariant_custodyBacksCirculationAndBothMessageQueues\n[PASS] invariant_eachUserReceivesExactlyTheirOwnTransfers\n AdapterInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭---------------+----------------------+-------+---------+----------╮\n| Contract      | Selector             | Calls | Reverts | Discards |\n+===================================================================+\n| BridgeHandler | deliverBack          | 1723  | 0       | 0        |\n|---------------+----------------------+-------+---------+----------|\n| BridgeHandler | deliverOut           | 1626  | 0       | 0        |\n|---------------+----------------------+-------+---------+----------|\n| BridgeHandler | donate               | 1600  | 0       | 0        |\n|---------------+----------------------+-------+---------+----------|\n| BridgeHandler | rejectedReceive      | 1663  | 0       | 0        |\n|---------------+----------------------+-------+---------+----------|\n| BridgeHandler | rejectedSend         | 1577  | 0       | 0        |\n|---------------+----------------------+-------+---------+----------|\n| BridgeHandler | replayLastReceive    | 1633  | 0       | 0        |\n|---------------+----------------------+-------+---------+----------|\n| BridgeHandler | sendBack             | 1603  | 0       | 0        |\n|---------------+----------------------+-------+---------+----------|\n| BridgeHandler | sendOut              | 1678  | 0       | 0        |\n|---------------+----------------------+-------+---------+----------|\n| BridgeHandler | transferBetweenUsers | 1654  | 0       | 0        |\n|---------------+----------------------+-------+---------+----------|\n| BridgeHandler | unauthorizedCalls    | 1627  | 0       | 0        |\n╰---------------+----------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 5887\n  Bound result 0\n  Bound result 0\n  Bound result 20424\n  Bound result 1955\n  Bound result 100000\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1000000\n  Bound result 1\n  Bound result 21444441145\n  Bound result 0\n  Bound result 8092214161091800210\n  Bound result 0\n  Bound result 20495\n  Bound result 6985\n\n[PASS] test_handlerExercisesFailuresTransfersDonationsAndDrain() (gas: 3520379)\nLogs:\n  Bound result 18446744073709551615\n\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 7.25s (7.23s CPU time)\n\nRan 5 test suites in 7.26s (8.16s CPU time): 66 tests passed, 0 failed, 0 skipped (66 total tests)\n","passed":true},{"durationMs":188,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"ZTOAdapter.lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\",\"ZTOAdapter.lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\",\"ZTOAdapter.lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\",\"ZTOAdapter.renounceOwnership()\",\"ZTOAdapter.send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)\",\"ZTOAdapter.setDelegate(address)\",\"ZTOAdapter.setEnforcedOptions((uint32,uint16,bytes)[])\",\"ZTOAdapter.setMsgInspector(address)\",\"ZTOAdapter.setPeer(uint32,bytes32)\",\"ZTOAdapter.setPreCrime(address)\",\"ZTOAdapter.transferOwnership(address)\"],\"files\":{\"README.md\":77,\"SECURITY.md\":34,\"foundry.toml\":25,\"src/ZTOAdapter.sol\":28,\"src/vendor/@layerzerolabs/LICENSE-LZBL-1.2\":42,\"src/vendor/@layerzerolabs/LICENSE-MIT\":25,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":89,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":19,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":26,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":68,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":32,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":36,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":9,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":33,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":41,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":102,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol\":39,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol\":83,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol\":138,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\":125,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":52,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\":22,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol\":42,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":27,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol\":99,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol\":121,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":55,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol\":38,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol\":62,\"src/vendor/@layerzerolabs/oft-evm/contracts/OFT.sol\":92,\"src/vendor/@layerzerolabs/oft-evm/contracts/OFTAdapter.sol\":109,\"src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol\":441,\"src/vendor/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol\":150,\"src/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":95,\"src/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol\":83,\"src/vendor/@openzeppelin/contracts/LICENSE\":22,\"src/vendor/@openzeppelin/contracts/access/Ownable.sol\":100,\"src/vendor/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":161,\"src/vendor/@openzeppelin/contracts/token/ERC20/ERC20.sol\":316,\"src/vendor/@openzeppelin/contracts/token/ERC20/IERC20.sol\":79,\"src/vendor/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":26,\"src/vendor/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":83,\"src/vendor/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":118,\"src/vendor/@openzeppelin/contracts/utils/Address.sol\":159,\"src/vendor/@openzeppelin/contracts/utils/Context.sol\":28,\"src/vendor/@openzeppelin/contracts/utils/introspection/IERC165.sol\":25,\"src/vendor/DEPENDENCIES.json\":77,\"src/vendor/LICENSE-SOURCES.json\":12,\"src/vendor/README.md\":16,\"test/AdapterAdversarial.t.sol\":313,\"test/AdapterConfiguration.t.sol\":195,\"test/AdapterInvariant.t.sol\":126,\"test/AdapterReceive.t.sol\":209,\"test/AdapterSend.t.sol\":274,\"test/BRIDGE_PROPERTIES.md\":68,\"test/BridgeTestBase.sol\":105,\"test/handlers/BridgeHandler.sol\":298,\"test/mocks/EndpointMock.sol\":134,\"test/mocks/MockZTO.sol\":31,\"test/mocks/RemoteOFT.sol\":10,\"test/vendor/forge-std/LICENSE-APACHE\":203,\"test/vendor/forge-std/LICENSE-MIT\":25,\"test/vendor/forge-std/PROVENANCE.json\":5,\"test/vendor/forge-std/src/Base.sol\":42,\"test/vendor/forge-std/src/Script.sol\":28,\"test/vendor/forge-std/src/StdAssertions.sol\":685,\"test/vendor/forge-std/src/StdChains.sol\":286,\"test/vendor/forge-std/src/StdCheats.sol\":829,\"test/vendor/forge-std/src/StdConstants.sol\":30,\"test/vendor/forge-std/src/StdError.sol\":15,\"test/vendor/forge-std/src/StdInvariant.sol\":122,\"test/vendor/forge-std/src/StdJson.sol\":277,\"test/vendor/forge-std/src/StdMath.sol\":43,\"test/vendor/forge-std/src/StdStorage.sol\":473,\"test/vendor/forge-std/src/StdStyle.sol\":333,\"test/vendor/forge-std/src/StdToml.sol\":277,\"test/vendor/forge-std/src/StdUtils.sol\":209,\"test/vendor/forge-std/src/Test.sol\":34,\"test/vendor/forge-std/src/Vm.sol\":2369,\"test/vendor/forge-std/src/console.sol\":1552,\"test/vendor/forge-std/src/console2.sol\":4,\"test/vendor/forge-std/src/interfaces/IERC1155.sol\":105,\"test/vendor/forge-std/src/interfaces/IERC165.sol\":12,\"test/vendor/forge-std/src/interfaces/IERC20.sol\":43,\"test/vendor/forge-std/src/interfaces/IERC4626.sol\":190,\"test/vendor/forge-std/src/interfaces/IERC6909.sol\":72,\"test/vendor/forge-std/src/interfaces/IERC721.sol\":164,\"test/vendor/forge-std/src/interfaces/IERC7540.sol\":144,\"test/vendor/forge-std/src/interfaces/IERC7575.sol\":241,\"test/vendor/forge-std/src/interfaces/IMulticall3.sol\":70,\"test/vendor/forge-std/src/safeconsole.sol\":13937},\"excluded\":[\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"51cd22f517d0848290595982d9d411970dc40f63abf2fb4f7fd20dd8a6908c80","verifiedTreeHash":"69ed49b96aa52e5ff8645c2dc4e5a710b5ba6687","verifierVersion":"0.1.0+5dba5e5e"},{"checks":[{"durationMs":5038,"exitCode":0,"name":"build","output":"Compiling 75 files with Solc 0.8.26\nSolc 0.8.26 finished in 4.60s\nCompiler run successful!\nwarning[controlled-delegatecall]: `delegatecall` target is not provably trusted\n    ╭▸ src/vendor/@openzeppelin/contracts/utils/Address.sol:105:51\n    │\n105 │         (bool success, bytes memory returndata) = target.delegatecall(data);\n    │                                                   ━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/controlled-delegatecall\n\nwarning[unsafe-typecast]: typecast can truncate values\n   ╭▸ src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol:11:18\n   │\n11 │         result = bytes32(_addressBytes);\n   │                  ━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ├ note: consider disabling this lint if you're certain the cast is safe\n   │       \n   │       // casting to 'bytes32' is safe because [explain why]\n   │       // forge-lint: disable-next-line(unsafe-typecast)\n   │       \n   │       \n   ╰ help: https://getfoundry.sh/forge/linting/unsafe-typecast\n\nwarning[unsafe-typecast]: typecast can truncate values\n   ╭▸ src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol:39:26\n   │\n39 │         result = address(bytes20(_addressBytes));\n   │                          ━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ├ note: consider disabling this lint if you're certain the cast is safe\n   │       \n   │       // casting to 'bytes20' is safe because [explain why]\n   │       // forge-lint: disable-next-line(unsafe-typecast)\n   │       \n   │       \n   ╰ help: https://getfoundry.sh/forge/linting/unsafe-typecast\n\nwarning[locked-ether]: contract can receive ETH but has no mechanism to send it out\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol:17:19\n   │\n17 │ abstract contract OApp is OAppSender, OAppReceiver {\n   │                   ━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/locked-ether\n\nwarning[locked-ether]: contract can receive ETH but has no mechanism to send it out\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol:12:19\n   │\n12 │ abstract contract OAppReceiver is IOAppReceiver, OAppCore {\n   │                   ━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/locked-ether\n\nwarning[locked-ether]: contract can receive ETH but has no mechanism to send it out\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:13:19\n   │\n13 │ abstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\n   │                   ━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/locked-ether\n\nwarning[missing-zero-check]: address parameter is used in a state write or value transfer without a zero-address check\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:32:26\n   │\n32 │     function setPreCrime(address _preCrime) public virtual onlyOwner {\n   │                          ━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/missing-zero-check\n\nwarning[calls-loop]: external call inside a loop\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:59:13\n   │\n59 │ ┏             this.lzReceiveSimulate{value: packet.value}(\n60 │ ┃                 packet.origin, packet.guid, packet.message, packet.executor, packet.extraData\n61 │ ┃             );\n   │ ┗━━━━━━━━━━━━━┛\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/calls-loop\n\nwarning[missing-zero-check]: address parameter is used in a state write or value transfer without a zero-address check\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:104:30\n    │\n104 │     function setMsgInspector(address _msgInspector) public virtual onlyOwner {\n    │                              ━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/missing-zero-check\n\nwarning[reentrancy-events]: event emitted after an external call; reentrancy can reorder or fabricate logs that off-chain consumers rely on\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol:48:9\n   │\n48 │         emit EnforcedOptionSet(_enforcedOptions);\n   │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/reentrancy-events\n\nwarning[require-revert-in-loop]: `require` or `revert` inside a loop\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol:97:43\n   │\n97 │         if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\n   │                                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/require-revert-in-loop\n\nwarning[arbitrary-send-erc20]: `transferFrom` uses an arbitrary `from`; require it to equal `msg.sender` or `address(this)`\n   ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTAdapter.sol:80:9\n   │\n80 │         innerToken.safeTransferFrom(_from, address(this), amountSentLD);\n   │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/arbitrary-send-erc20\n\nwarning[reentrancy-events]: event emitted after an external call; reentrancy can reorder or fabricate logs that off-chain consumers rely on\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:223:9\n    │\n223 │         emit OFTSent(msgReceipt.guid, _sendParam.dstEid, msg.sender, amountSentLD, amountReceivedLD);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/reentrancy-events\n\nwarning[unused-return]: return value of an external call is not used\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:256:38\n    │\n256 │         if (inspector != address(0)) IOAppMsgInspector(inspector).inspect(message, options);\n    │                                      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/unused-return\n\nwarning[reentrancy-events]: event emitted after an external call; reentrancy can reorder or fabricate logs that off-chain consumers rely on\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:308:9\n    │\n308 │         emit OFTReceived(_guid, _origin.srcEid, toAddress, amountReceivedLD);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/reentrancy-events\n\nwarning[divide-before-multiply]: division before multiplication may lose precision\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:356:16\n    │\n356 │         return (_amountLD / decimalConversionRate) * decimalConversionRate;\n    │                ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/divide-before-multiply\n\nwarning[unsafe-typecast]: typecast can truncate values\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:379:16\n    │\n379 │         return uint64(_amountSD);\n    │                ━━━━━━━━━━━━━━━━━\n    │\n    ├ note: consider disabling this lint if you're certain the cast is safe\n    │       \n    │       // casting to 'uint64' is safe because [explain why]\n    │       // forge-lint: disable-next-line(unsafe-typecast)\n    │       \n    │       \n    ╰ help: https://getfoundry.sh/forge/linting/unsafe-typecast\n\n","passed":true},{"durationMs":208,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 15 tests for test/AdapterReceive.t.sol:AdapterReceiveTest\n[PASS] test_composeQueueFailureRollsBackCreditThenAllowsRetry() (gas: 1404456)\n[PASS] test_directReceiveCannotUnlockEvenWithCorrectOrigin() (gas: 597753)\n[PASS] test_endpointWithWrongPeerCannotUnlock() (gas: 598133)\n[PASS] test_endpointWithWrongSourceChainCannotUnlock() (gas: 600185)\n[PASS] test_falseTransferReturnPreservesPacketForRetry() (gas: 1219797)\n[PASS] test_insufficientCustodyRevertsWithoutMinting() (gas: 91704)\n[PASS] test_receiveReleasesCustodyAndEmitsReceipt() (gas: 1044232)\n[PASS] test_receiveWithComposeCreditsAndQueuesStandardComposePayload() (gas: 1242559)\n[PASS] test_removedPeerBlocksPendingMessageUntilRestored() (gas: 1191240)\n[PASS] test_shortPayloadRevertsWithoutUnlocking() (gas: 610202)\n[PASS] test_simulationAlwaysRevertsAndCannotKeepUnlockedTokens() (gas: 642841)\n[PASS] test_simulationEntryPointCannotBeCalledDirectly() (gas: 596870)\n[PASS] test_transportRejectsReplayAndModifiedPacket() (gas: 1113269)\n[PASS] test_unorderedDeliveryConservesCustody() (gas: 1433813)\n[PASS] test_zeroRecipientRevertsAccordingToUnderlyingERC20() (gas: 607051)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 9.69ms (54.63ms CPU time)\n\nRan 13 tests for test/AdapterConfiguration.t.sol:AdapterConfigurationTest\n[PASS] testFuzz_ownerCannotEnableAnotherChain(uint32) (runs: 256, μ: 39761, ~: 39759)\n[PASS] test_allInheritedConfigurationIsOwnerOnly() (gas: 160664)\n[PASS] test_composedSendUsesSendAndCallOptionsAndIncludesOriginalSender() (gas: 526319)\n[PASS] test_constructorRejectsTokenWithFewerThanSixDecimals() (gas: 33301)\n[PASS] test_constructorSetsSpecifiedAddressesEvenWhenFactoryDeploys() (gas: 99452)\n[PASS] test_enforcedOptionsAreCombinedAndAppliedToSend() (gas: 550608)\n[PASS] test_factoryAndStrangerCannotSetPeer() (gas: 69263)\n[PASS] test_inspectorRejectionRollsBackSend() (gas: 409651)\n[PASS] test_legacyOptionsCannotBypassEnforcedOptions() (gas: 72691)\n[PASS] test_newDeploymentHasNoPeerOrOptionalHooks() (gas: 61766)\n[PASS] test_ownerCanReplaceAndRemovePeerWithEvents() (gas: 97167)\n[PASS] test_ownershipAndDelegateChangesHaveSeparateEffects() (gas: 176936)\n[PASS] test_runtimeFitsDeploymentPolicyAndContainsNoEscapeOpcodes() (gas: 7469563)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 44.75ms (108.46ms CPU time)\n\nRan 18 tests for test/AdapterSend.t.sol:AdapterSendTest\n[PASS] testFuzz_roundTripConservesSupplyAndDust(uint96) (runs: 256, μ: 1099429, ~: 1099726)\nLogs:\n  Bound result 999999999999003244633996\n\n[PASS] test_endpointFailureRollsBackTokensAllowanceAndNativePayment() (gas: 264533)\n[PASS] test_excessNativeFeeIsRefundedToSpecifiedAddress() (gas: 434324)\n[PASS] test_falseTransferFromReturnRevertsWithoutSending() (gas: 202467)\n[PASS] test_nativeValueMustEqualSuppliedFee() (gas: 377797)\n[PASS] test_noPeerRevertsAndRollsBackLock() (gas: 249730)\n[PASS] test_optionalLayerZeroTokenFeeGoesToEndpoint() (gas: 1282511)\n[PASS] test_quoteHasNoBridgeFeeAndDoesNotMoveTokens() (gas: 88008)\n[PASS] test_sendLocksTokensEncodesPacketAndRetainsDust() (gas: 699138)\n[PASS] test_sendWithoutApprovalReverts() (gas: 96834)\n[PASS] test_senderCannotSpendAnotherUsersApproval() (gas: 210101)\n[PASS] test_sharedAmountOverflowRevertsAndRollsBackLock() (gas: 231213)\n[PASS] test_slippageAfterDustRemovalRevertsQuoteAndSend() (gas: 169023)\n[PASS] test_staleUnderpricedFeeRevertsAndRollsBackLock() (gas: 215705)\n[PASS] test_uint64MaximumSharedAmountCanBridge() (gas: 602672)\n[PASS] test_unavailableLayerZeroFeeTokenRevertsAtomically() (gas: 205617)\n[PASS] test_unconfiguredDestinationCannotSend() (gas: 202557)\n[PASS] test_zeroAndDustOnlyAmountsFollowStandardOFTSemantics() (gas: 924663)\nSuite result: ok. 18 passed; 0 failed; 0 skipped; finished in 50.99ms (48.36ms CPU time)\n\nRan 3 test suites in 54.12ms (105.43ms CPU time): 46 tests passed, 0 failed, 0 skipped (46 total tests)\n","passed":true},{"durationMs":171,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"ZTOAdapter.lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\",\"ZTOAdapter.lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\",\"ZTOAdapter.lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\",\"ZTOAdapter.renounceOwnership()\",\"ZTOAdapter.send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)\",\"ZTOAdapter.setDelegate(address)\",\"ZTOAdapter.setEnforcedOptions((uint32,uint16,bytes)[])\",\"ZTOAdapter.setMsgInspector(address)\",\"ZTOAdapter.setPeer(uint32,bytes32)\",\"ZTOAdapter.setPreCrime(address)\",\"ZTOAdapter.transferOwnership(address)\"],\"files\":{\"README.md\":77,\"SECURITY.md\":34,\"foundry.toml\":25,\"src/ZTOAdapter.sol\":28,\"src/vendor/@layerzerolabs/LICENSE-LZBL-1.2\":42,\"src/vendor/@layerzerolabs/LICENSE-MIT\":25,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":89,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":19,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":26,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":68,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":32,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":36,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":9,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":33,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":41,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":102,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol\":39,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol\":83,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol\":138,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\":125,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":52,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\":22,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol\":42,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":27,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol\":99,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol\":121,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":55,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol\":38,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol\":62,\"src/vendor/@layerzerolabs/oft-evm/contracts/OFT.sol\":92,\"src/vendor/@layerzerolabs/oft-evm/contracts/OFTAdapter.sol\":109,\"src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol\":441,\"src/vendor/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol\":150,\"src/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":95,\"src/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol\":83,\"src/vendor/@openzeppelin/contracts/LICENSE\":22,\"src/vendor/@openzeppelin/contracts/access/Ownable.sol\":100,\"src/vendor/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":161,\"src/vendor/@openzeppelin/contracts/token/ERC20/ERC20.sol\":316,\"src/vendor/@openzeppelin/contracts/token/ERC20/IERC20.sol\":79,\"src/vendor/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":26,\"src/vendor/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":83,\"src/vendor/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":118,\"src/vendor/@openzeppelin/contracts/utils/Address.sol\":159,\"src/vendor/@openzeppelin/contracts/utils/Context.sol\":28,\"src/vendor/@openzeppelin/contracts/utils/introspection/IERC165.sol\":25,\"src/vendor/DEPENDENCIES.json\":77,\"src/vendor/LICENSE-SOURCES.json\":12,\"src/vendor/README.md\":16,\"test/AdapterConfiguration.t.sol\":195,\"test/AdapterReceive.t.sol\":209,\"test/AdapterSend.t.sol\":274,\"test/BridgeTestBase.sol\":105,\"test/mocks/EndpointMock.sol\":134,\"test/mocks/MockZTO.sol\":31,\"test/mocks/RemoteOFT.sol\":10,\"test/vendor/forge-std/LICENSE-APACHE\":203,\"test/vendor/forge-std/LICENSE-MIT\":25,\"test/vendor/forge-std/PROVENANCE.json\":5,\"test/vendor/forge-std/src/Base.sol\":42,\"test/vendor/forge-std/src/Script.sol\":28,\"test/vendor/forge-std/src/StdAssertions.sol\":685,\"test/vendor/forge-std/src/StdChains.sol\":286,\"test/vendor/forge-std/src/StdCheats.sol\":829,\"test/vendor/forge-std/src/StdConstants.sol\":30,\"test/vendor/forge-std/src/StdError.sol\":15,\"test/vendor/forge-std/src/StdInvariant.sol\":122,\"test/vendor/forge-std/src/StdJson.sol\":277,\"test/vendor/forge-std/src/StdMath.sol\":43,\"test/vendor/forge-std/src/StdStorage.sol\":473,\"test/vendor/forge-std/src/StdStyle.sol\":333,\"test/vendor/forge-std/src/StdToml.sol\":277,\"test/vendor/forge-std/src/StdUtils.sol\":209,\"test/vendor/forge-std/src/Test.sol\":34,\"test/vendor/forge-std/src/Vm.sol\":2369,\"test/vendor/forge-std/src/console.sol\":1552,\"test/vendor/forge-std/src/console2.sol\":4,\"test/vendor/forge-std/src/interfaces/IERC1155.sol\":105,\"test/vendor/forge-std/src/interfaces/IERC165.sol\":12,\"test/vendor/forge-std/src/interfaces/IERC20.sol\":43,\"test/vendor/forge-std/src/interfaces/IERC4626.sol\":190,\"test/vendor/forge-std/src/interfaces/IERC6909.sol\":72,\"test/vendor/forge-std/src/interfaces/IERC721.sol\":164,\"test/vendor/forge-std/src/interfaces/IERC7540.sol\":144,\"test/vendor/forge-std/src/interfaces/IERC7575.sol\":241,\"test/vendor/forge-std/src/interfaces/IMulticall3.sol\":70,\"test/vendor/forge-std/src/safeconsole.sol\":13937},\"excluded\":[\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":3964,"exitCode":0,"name":"slither","output":"[medium/medium] divide-before-multiply at src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:355: OFTCore._removeDust(uint256) (src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol#355-357) performs a multiplication on the result of a division:\n[medium/medium] unused-return at src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:233: OFTCore._buildMsgAndOptions(SendParam,uint256) (src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol#233-257) ignores return value by IOAppMsgInspector(inspector).inspect(message,options) (src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol#256)\n[low/high] shadowing-local at src/vendor/@layerzerolabs/oft-evm/contracts/OFT.sol:20: OFT.constructor(string,string,address,address)._symbol (src/vendor/@layerzerolabs/oft-evm/contracts/OFT.sol#20) shadows:\n[low/high] shadowing-local at src/vendor/@layerzerolabs/oft-evm/contracts/OFT.sol:20: OFT.constructor(string,string,address,address)._name (src/vendor/@layerzerolabs/oft-evm/contracts/OFT.sol#20) shadows:\n[low/medium] missing-zero-check at src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:32: OAppPreCrimeSimulator.setPreCrime(address)._preCrime (src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol#32) lacks a zero-check on :\n[low/medium] missing-zero-check at src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:104: OFTCore.setMsgInspector(address)._msgInspector (src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol#104) lacks a zero-check on :\n[low/medium] calls-loop at src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:45: OAppPreCrimeSimulator.lzReceiveAndRevert(InboundPacket[]) (src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol#45-66) has external calls inside a loop: this.lzReceiveSimulate{value: packet.value}(packet.origin,packet.guid,packet.message,packet.executor,packet.extraData) (src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol#59-61)\n[low/medium] reentrancy-events at src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:270: Reentrancy in OFTCore._lzReceive(Origin,bytes32,bytes,address,bytes) (src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol#270-309):\n[low/medium] reentrancy-events at src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:204: Reentrancy in OFTCore._send(SendParam,MessagingFee,address) (src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol#204-224):","passed":true},{"durationMs":1075,"exitCode":0,"name":"aderyn","output":"[low] centralization-risk at src/ZTOAdapter.sol:24: Centralization Risk (11 places)\n[low] costly-loop at src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol:42: Costly operations inside loop\n[low] internal-function-used-once at src/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol:71: Internal Function Used Only Once (2 places)\n[low] literal-instead-of-constant at src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol:10: Literal Instead of Constant (5 places)\n[low] require-revert-in-loop at src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol:42: Loop Contains `require`/`revert`\n[low] state-no-address-check at src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:33: Address State Variable Set Without Checks (3 places)\n[low] unsafe-erc20-operation at src/vendor/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol:37: Unsafe ERC20 Operation (4 places)\n[low] unspecific-solidity-pragma at src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol:3: Unspecific Solidity Pragma (32 places)\n[low] unused-error at src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol:14: Unused Error (24 places)\n[low] unused-import at src/vendor/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol:7: Unused Import","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"a7697b3b8f9af3cdc1f50e2948526937cf37cc7181e77445e00d0ad12a289154","verifiedTreeHash":"f0bde480d691b15552d4b55fd99421558a3a820c","verifierVersion":"0.1.0+5dba5e5e"},{"checks":[{"durationMs":2371,"exitCode":0,"name":"build","output":"Compiling 75 files with Solc 0.8.26\nSolc 0.8.26 finished in 2.17s\nCompiler run successful!\nwarning[locked-ether]: contract can receive ETH but has no mechanism to send it out\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:13:19\n   │\n13 │ abstract contract OAppPreCrimeSimulator is IOAppPreCrimeSimulator, Ownable {\n   │                   ━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/locked-ether\n\nwarning[locked-ether]: contract can receive ETH but has no mechanism to send it out\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol:12:19\n   │\n12 │ abstract contract OAppReceiver is IOAppReceiver, OAppCore {\n   │                   ━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/locked-ether\n\nwarning[missing-zero-check]: address parameter is used in a state write or value transfer without a zero-address check\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:32:26\n   │\n32 │     function setPreCrime(address _preCrime) public virtual onlyOwner {\n   │                          ━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/missing-zero-check\n\nwarning[calls-loop]: external call inside a loop\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol:59:13\n   │\n59 │ ┏             this.lzReceiveSimulate{value: packet.value}(\n60 │ ┃                 packet.origin, packet.guid, packet.message, packet.executor, packet.extraData\n61 │ ┃             );\n   │ ┗━━━━━━━━━━━━━┛\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/calls-loop\n\nwarning[missing-zero-check]: address parameter is used in a state write or value transfer without a zero-address check\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:104:30\n    │\n104 │     function setMsgInspector(address _msgInspector) public virtual onlyOwner {\n    │                              ━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/missing-zero-check\n\nwarning[unsafe-typecast]: typecast can truncate values\n   ╭▸ src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol:11:18\n   │\n11 │         result = bytes32(_addressBytes);\n   │                  ━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ├ note: consider disabling this lint if you're certain the cast is safe\n   │       \n   │       // casting to 'bytes32' is safe because [explain why]\n   │       // forge-lint: disable-next-line(unsafe-typecast)\n   │       \n   │       \n   ╰ help: https://getfoundry.sh/forge/linting/unsafe-typecast\n\nwarning[unsafe-typecast]: typecast can truncate values\n   ╭▸ src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol:39:26\n   │\n39 │         result = address(bytes20(_addressBytes));\n   │                          ━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ├ note: consider disabling this lint if you're certain the cast is safe\n   │       \n   │       // casting to 'bytes20' is safe because [explain why]\n   │       // forge-lint: disable-next-line(unsafe-typecast)\n   │       \n   │       \n   ╰ help: https://getfoundry.sh/forge/linting/unsafe-typecast\n\nwarning[controlled-delegatecall]: `delegatecall` target is not provably trusted\n    ╭▸ src/vendor/@openzeppelin/contracts/utils/Address.sol:105:51\n    │\n105 │         (bool success, bytes memory returndata) = target.delegatecall(data);\n    │                                                   ━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/controlled-delegatecall\n\nwarning[reentrancy-events]: event emitted after an external call; reentrancy can reorder or fabricate logs that off-chain consumers rely on\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:223:9\n    │\n223 │         emit OFTSent(msgReceipt.guid, _sendParam.dstEid, msg.sender, amountSentLD, amountReceivedLD);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/reentrancy-events\n\nwarning[unused-return]: return value of an external call is not used\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:256:38\n    │\n256 │         if (inspector != address(0)) IOAppMsgInspector(inspector).inspect(message, options);\n    │                                      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/unused-return\n\nwarning[arbitrary-send-erc20]: `transferFrom` uses an arbitrary `from`; require it to equal `msg.sender` or `address(this)`\n   ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTAdapter.sol:80:9\n   │\n80 │         innerToken.safeTransferFrom(_from, address(this), amountSentLD);\n   │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/arbitrary-send-erc20\n\nwarning[reentrancy-events]: event emitted after an external call; reentrancy can reorder or fabricate logs that off-chain consumers rely on\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:308:9\n    │\n308 │         emit OFTReceived(_guid, _origin.srcEid, toAddress, amountReceivedLD);\n    │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/reentrancy-events\n\nwarning[divide-before-multiply]: division before multiplication may lose precision\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:356:16\n    │\n356 │         return (_amountLD / decimalConversionRate) * decimalConversionRate;\n    │                ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n    │\n    ╰ help: https://getfoundry.sh/forge/linting/divide-before-multiply\n\nwarning[locked-ether]: contract can receive ETH but has no mechanism to send it out\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol:17:19\n   │\n17 │ abstract contract OApp is OAppSender, OAppReceiver {\n   │                   ━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/locked-ether\n\nwarning[unsafe-typecast]: typecast can truncate values\n    ╭▸ src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol:379:16\n    │\n379 │         return uint64(_amountSD);\n    │                ━━━━━━━━━━━━━━━━━\n    │\n    ├ note: consider disabling this lint if you're certain the cast is safe\n    │       \n    │       // casting to 'uint64' is safe because [explain why]\n    │       // forge-lint: disable-next-line(unsafe-typecast)\n    │       \n    │       \n    ╰ help: https://getfoundry.sh/forge/linting/unsafe-typecast\n\nwarning[reentrancy-events]: event emitted after an external call; reentrancy can reorder or fabricate logs that off-chain consumers rely on\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol:48:9\n   │\n48 │         emit EnforcedOptionSet(_enforcedOptions);\n   │         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/reentrancy-events\n\nwarning[require-revert-in-loop]: `require` or `revert` inside a loop\n   ╭▸ src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol:97:43\n   │\n97 │         if (optionsType != OPTION_TYPE_3) revert InvalidOptions(_options);\n   │                                           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n   │\n   ╰ help: https://getfoundry.sh/forge/linting/require-revert-in-loop\n\n","passed":true},{"durationMs":109,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 15 tests for test/AdapterReceive.t.sol:AdapterReceiveTest\n[PASS] test_composeQueueFailureRollsBackCreditThenAllowsRetry() (gas: 1404456)\n[PASS] test_directReceiveCannotUnlockEvenWithCorrectOrigin() (gas: 597753)\n[PASS] test_endpointWithWrongPeerCannotUnlock() (gas: 598133)\n[PASS] test_endpointWithWrongSourceChainCannotUnlock() (gas: 600185)\n[PASS] test_falseTransferReturnPreservesPacketForRetry() (gas: 1219797)\n[PASS] test_insufficientCustodyRevertsWithoutMinting() (gas: 91704)\n[PASS] test_receiveReleasesCustodyAndEmitsReceipt() (gas: 1044232)\n[PASS] test_receiveWithComposeCreditsAndQueuesStandardComposePayload() (gas: 1242559)\n[PASS] test_removedPeerBlocksPendingMessageUntilRestored() (gas: 1191240)\n[PASS] test_shortPayloadRevertsWithoutUnlocking() (gas: 610202)\n[PASS] test_simulationAlwaysRevertsAndCannotKeepUnlockedTokens() (gas: 642841)\n[PASS] test_simulationEntryPointCannotBeCalledDirectly() (gas: 596870)\n[PASS] test_transportRejectsReplayAndModifiedPacket() (gas: 1113269)\n[PASS] test_unorderedDeliveryConservesCustody() (gas: 1433813)\n[PASS] test_zeroRecipientRevertsAccordingToUnderlyingERC20() (gas: 607051)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 2.14ms (8.00ms CPU time)\n\nRan 13 tests for test/AdapterConfiguration.t.sol:AdapterConfigurationTest\n[PASS] testFuzz_ownerCannotEnableAnotherChain(uint32) (runs: 256, μ: 39762, ~: 39759)\n[PASS] test_allInheritedConfigurationIsOwnerOnly() (gas: 160664)\n[PASS] test_composedSendUsesSendAndCallOptionsAndIncludesOriginalSender() (gas: 526319)\n[PASS] test_constructorRejectsTokenWithFewerThanSixDecimals() (gas: 33301)\n[PASS] test_constructorSetsSpecifiedAddressesEvenWhenFactoryDeploys() (gas: 99452)\n[PASS] test_enforcedOptionsAreCombinedAndAppliedToSend() (gas: 550608)\n[PASS] test_factoryAndStrangerCannotSetPeer() (gas: 69263)\n[PASS] test_inspectorRejectionRollsBackSend() (gas: 409651)\n[PASS] test_legacyOptionsCannotBypassEnforcedOptions() (gas: 72691)\n[PASS] test_newDeploymentHasNoPeerOrOptionalHooks() (gas: 61766)\n[PASS] test_ownerCanReplaceAndRemovePeerWithEvents() (gas: 97167)\n[PASS] test_ownershipAndDelegateChangesHaveSeparateEffects() (gas: 176936)\n[PASS] test_runtimeFitsDeploymentPolicyAndContainsNoEscapeOpcodes() (gas: 7469563)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 14.93ms (19.60ms CPU time)\n\nRan 18 tests for test/AdapterSend.t.sol:AdapterSendTest\n[PASS] testFuzz_roundTripConservesSupplyAndDust(uint96) (runs: 256, μ: 1099406, ~: 1099726)\nLogs:\n  Bound result 999999999999000000012471\n\n[PASS] test_endpointFailureRollsBackTokensAllowanceAndNativePayment() (gas: 264533)\n[PASS] test_excessNativeFeeIsRefundedToSpecifiedAddress() (gas: 434324)\n[PASS] test_falseTransferFromReturnRevertsWithoutSending() (gas: 202467)\n[PASS] test_nativeValueMustEqualSuppliedFee() (gas: 377797)\n[PASS] test_noPeerRevertsAndRollsBackLock() (gas: 249730)\n[PASS] test_optionalLayerZeroTokenFeeGoesToEndpoint() (gas: 1282511)\n[PASS] test_quoteHasNoBridgeFeeAndDoesNotMoveTokens() (gas: 88008)\n[PASS] test_sendLocksTokensEncodesPacketAndRetainsDust() (gas: 699138)\n[PASS] test_sendWithoutApprovalReverts() (gas: 96834)\n[PASS] test_senderCannotSpendAnotherUsersApproval() (gas: 210101)\n[PASS] test_sharedAmountOverflowRevertsAndRollsBackLock() (gas: 231213)\n[PASS] test_slippageAfterDustRemovalRevertsQuoteAndSend() (gas: 169023)\n[PASS] test_staleUnderpricedFeeRevertsAndRollsBackLock() (gas: 215705)\n[PASS] test_uint64MaximumSharedAmountCanBridge() (gas: 602672)\n[PASS] test_unavailableLayerZeroFeeTokenRevertsAtomically() (gas: 205617)\n[PASS] test_unconfiguredDestinationCannotSend() (gas: 202557)\n[PASS] test_zeroAndDustOnlyAmountsFollowStandardOFTSemantics() (gas: 924663)\nSuite result: ok. 18 passed; 0 failed; 0 skipped; finished in 25.23ms (30.20ms CPU time)\n\nRan 3 test suites in 26.09ms (42.30ms CPU time): 46 tests passed, 0 failed, 0 skipped (46 total tests)\n","passed":true},{"durationMs":55,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"ZTOAdapter.lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\",\"ZTOAdapter.lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\",\"ZTOAdapter.lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\",\"ZTOAdapter.renounceOwnership()\",\"ZTOAdapter.send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)\",\"ZTOAdapter.setDelegate(address)\",\"ZTOAdapter.setEnforcedOptions((uint32,uint16,bytes)[])\",\"ZTOAdapter.setMsgInspector(address)\",\"ZTOAdapter.setPeer(uint32,bytes32)\",\"ZTOAdapter.setPreCrime(address)\",\"ZTOAdapter.transferOwnership(address)\"],\"files\":{\"README.md\":77,\"SECURITY.md\":34,\"foundry.toml\":25,\"launch.json\":10,\"src/ZTOAdapter.sol\":28,\"src/vendor/@layerzerolabs/LICENSE-LZBL-1.2\":42,\"src/vendor/@layerzerolabs/LICENSE-MIT\":25,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":89,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":19,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":26,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":68,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":32,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":36,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":9,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":33,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":41,\"src/vendor/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":102,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol\":39,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol\":83,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol\":138,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\":125,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":52,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\":22,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol\":42,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":27,\"src/vendor/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol\":99,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol\":121,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":55,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol\":38,\"src/vendor/@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol\":62,\"src/vendor/@layerzerolabs/oft-evm/contracts/OFT.sol\":92,\"src/vendor/@layerzerolabs/oft-evm/contracts/OFTAdapter.sol\":109,\"src/vendor/@layerzerolabs/oft-evm/contracts/OFTCore.sol\":441,\"src/vendor/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol\":150,\"src/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":95,\"src/vendor/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol\":83,\"src/vendor/@openzeppelin/contracts/LICENSE\":22,\"src/vendor/@openzeppelin/contracts/access/Ownable.sol\":100,\"src/vendor/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":161,\"src/vendor/@openzeppelin/contracts/token/ERC20/ERC20.sol\":316,\"src/vendor/@openzeppelin/contracts/token/ERC20/IERC20.sol\":79,\"src/vendor/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":26,\"src/vendor/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":83,\"src/vendor/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":118,\"src/vendor/@openzeppelin/contracts/utils/Address.sol\":159,\"src/vendor/@openzeppelin/contracts/utils/Context.sol\":28,\"src/vendor/@openzeppelin/contracts/utils/introspection/IERC165.sol\":25,\"src/vendor/DEPENDENCIES.json\":77,\"src/vendor/LICENSE-SOURCES.json\":12,\"src/vendor/README.md\":16,\"test/AdapterConfiguration.t.sol\":195,\"test/AdapterReceive.t.sol\":209,\"test/AdapterSend.t.sol\":274,\"test/BridgeTestBase.sol\":105,\"test/mocks/EndpointMock.sol\":134,\"test/mocks/MockZTO.sol\":31,\"test/mocks/RemoteOFT.sol\":10,\"test/vendor/forge-std/LICENSE-APACHE\":203,\"test/vendor/forge-std/LICENSE-MIT\":25,\"test/vendor/forge-std/PROVENANCE.json\":5,\"test/vendor/forge-std/src/Base.sol\":42,\"test/vendor/forge-std/src/Script.sol\":28,\"test/vendor/forge-std/src/StdAssertions.sol\":685,\"test/vendor/forge-std/src/StdChains.sol\":286,\"test/vendor/forge-std/src/StdCheats.sol\":829,\"test/vendor/forge-std/src/StdConstants.sol\":30,\"test/vendor/forge-std/src/StdError.sol\":15,\"test/vendor/forge-std/src/StdInvariant.sol\":122,\"test/vendor/forge-std/src/StdJson.sol\":277,\"test/vendor/forge-std/src/StdMath.sol\":43,\"test/vendor/forge-std/src/StdStorage.sol\":473,\"test/vendor/forge-std/src/StdStyle.sol\":333,\"test/vendor/forge-std/src/StdToml.sol\":277,\"test/vendor/forge-std/src/StdUtils.sol\":209,\"test/vendor/forge-std/src/Test.sol\":34,\"test/vendor/forge-std/src/Vm.sol\":2369,\"test/vendor/forge-std/src/console.sol\":1552,\"test/vendor/forge-std/src/console2.sol\":4,\"test/vendor/forge-std/src/interfaces/IERC1155.sol\":105,\"test/vendor/forge-std/src/interfaces/IERC165.sol\":12,\"test/vendor/forge-std/src/interfaces/IERC20.sol\":43,\"test/vendor/forge-std/src/interfaces/IERC4626.sol\":190,\"test/vendor/forge-std/src/interfaces/IERC6909.sol\":72,\"test/vendor/forge-std/src/interfaces/IERC721.sol\":164,\"test/vendor/forge-std/src/interfaces/IERC7540.sol\":144,\"test/vendor/forge-std/src/interfaces/IERC7575.sol\":241,\"test/vendor/forge-std/src/interfaces/IMulticall3.sol\":70,\"test/vendor/forge-std/src/safeconsole.sol\":13937},\"excluded\":[\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"c364ebfc29668a80f7d990674495d6ab55c805d24e31e7c9c2adb76dbf27cd4e","verifiedTreeHash":"03ceff95c5c66fae4f59d24bfab58f80b6ec8e24","verifierVersion":"0.1.0+5dba5e5e"}]}