{"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":"ddd89530-1c52-4fb2-8a57-139a07cc03fb","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"f3875f67aa4300ab1875bacd08fb7ba88bb0ee2a8e00f605ed20705c6c1febfb","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":"18b43d5398edb0493cd7f166ed4839870c67d4a65e54442574160187bb0c7065","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":"7667883719de2f8fbecdc27b7e9b6d528ae248665f43ee46605e112aa89cf384","dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"f0d87cfec6376ee51d7109f641bfe43f58ec8908234f01d64925d34b68005532","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":"27ccb46095b10ba484e7dff55cefdd631790735538438139ca8ff237ef5990f5","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":"2fd229bc3177dcd9327dbe7d1a6b953ad0d2f178555f01eb4d907c5ad9cbc8f5","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"d3cc229000bf0489a43582db301b77a9151236d9e3d85d6049d49fb94594da32","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"77396f85d5adf8c62551671f3a6dc3e7cbb0c5389be9da03029ffedcbd8c5bc2","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: Offsets (OFFSETS).\nToken name: Offsets\nToken symbol: OFFSETS\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"4422e9b296c267b36eb6dc120d6d8e46eb7e559a9e195c36e6239429e4f1045a","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"ddd89530-1c52-4fb2-8a57-139a07cc03fb","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-2051-offsets"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52366","feedbackHash":"d7ceda4084f75fc5b94a28bfe8d918c1f0bd24f9d4cae75c0b3bd3b5b93ea484","nodeKey":"audit_economics","submissionHash":"f3875f67aa4300ab1875bacd08fb7ba88bb0ee2a8e00f605ed20705c6c1febfb","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51508","feedbackHash":"8858f4df53524e9515a9bfa5f2a31c58b66c0edb68798b4c5c35383dc53b7efd","nodeKey":"audit_flow","submissionHash":"18b43d5398edb0493cd7f166ed4839870c67d4a65e54442574160187bb0c7065","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51082","feedbackHash":"f54f750377369d86412e8020ff7b17485798f2379051b91d56f4d5d9bd048db0","nodeKey":"audit_judge","submissionHash":"7667883719de2f8fbecdc27b7e9b6d528ae248665f43ee46605e112aa89cf384","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51347","feedbackHash":"852850398c4393bddb50bd8842720675bb1372bae436b0208d430db7a417e92b","nodeKey":"audit_math","submissionHash":"f0d87cfec6376ee51d7109f641bfe43f58ec8908234f01d64925d34b68005532","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"50961","feedbackHash":"b4f501ef8870043e55f6f744cd867ae49711d659e6a39d34879077c2d8ed0e04","nodeKey":"audit_permissions","submissionHash":"27ccb46095b10ba484e7dff55cefdd631790735538438139ca8ff237ef5990f5","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52212","feedbackHash":"9905307e95c59ef68caa72bbc62d4cfbebea6193b5ed776d1ad89303bcd9d970","nodeKey":"build_contract_project","submissionHash":"2fd229bc3177dcd9327dbe7d1a6b953ad0d2f178555f01eb4d907c5ad9cbc8f5","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51753","feedbackHash":"d648000ca55460f7fcc164a623b5de5223666b1e53792b38c94466ac017ad9bb","nodeKey":"manifest","submissionHash":"d3cc229000bf0489a43582db301b77a9151236d9e3d85d6049d49fb94594da32","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52213","feedbackHash":"d2551a0d90aa6d210b9ccb710f3a96f240873d39eb89219c91b07aac4dd039ba","nodeKey":"write_foundry_tests","submissionHash":"77396f85d5adf8c62551671f3a6dc3e7cbb0c5389be9da03029ffedcbd8c5bc2","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"83d430021b8fe6d769eaaff89b9caad464605ebd82628e9039991c72b5636bcc","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"3516474d8a268bd8","findings":[],"hash":"18b43d5398edb0493cd7f166ed4839870c67d4a65e54442574160187bb0c7065","nodeId":"13a567fd-1b3a-4dc7-b39d-7e6c25562dde","outcome":"completed","summary":"The review is complete. The working tree is clean apart from the findings file, and the scratch test directory is removed.\n\n**Outcome: no defects found.** `.imd-findings.json` holds an empty findings list and seven coverage rows, all `holds`.\n\n**What I checked, in my area**\n\n- **Execution Trace.** Traced `approve`, `transfer` and `transferFrom` from entry to final state through the inherited OpenZeppelin code. Allowance is spent before the balance move, and any revert in the move rolls the allowance write back. The unlimited-allowance sentinel is untouched on spend, finite allowances decrement, and a zero-address sender or recipient reverts with no state change. No external calls, callbacks, hooks or sentinel paths exist.\n- **Periphery.** Read the five vendored OpenZeppelin files in full. They are textually identical to upstream v5.0.2 and their SHA-256 values match those recorded in docs/dependencies.json. The token adds no overrides.\n- **First Principles.** The supply constant evaluates to 1e27 at compile time, is minted once to the immediate deployer, and nothing else can call mint, burn or update. There is no owner, initializer, proxy, receive or fallback. The ABI exposes only ERC-20 plus one public constant view.\n\n**Verification run**\n\n- Existing suite with the verifier's seed: 33 tests passed, including the invariant run with 8,192 handler calls and zero reverts. `forge fmt --check` is clean.\n- A scratch test of my own confirmed the CREATE2 factory deployment path, contract recipients without `receive`, finite near-max allowances, self-approval, ETH rejection, and the zero-sender error ordering. It passed and was deleted.\n\n**Leads dismissed**\n\n- Aderyn's large-numeric-literal line at `src/Offsets.sol:10` is a constant expression with no overflow, so it is not a defect.\n- The ERC-20 approve front-running race is a property of the standard, is intentionally preserved, and is already documented in the README's operational notes, so I did not report it as a finding.\n\n**Not covered.** The protected launch test imports the network's Uniswap v4 harness, which is not in this tree, so I could not execute the real seed-and-swap flow locally. Given the token has no fee, burn, hook or exemption logic, nothing in it can make those flows arrive short.","treeHash":null,"usage":{"cachedInputTokens":560423,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":11020,"runtime":"claude","turns":27,"wallClockMs":162153}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"d68ba89c0b30801c","findings":[],"hash":"27ccb46095b10ba484e7dff55cefdd631790735538438139ca8ff237ef5990f5","nodeId":"e0adac43-8b86-428d-b847-ae8f67fa645b","outcome":"completed","summary":"The review is complete. The findings file is in place and the working tree is otherwise unchanged.\n\n**Result: no defects found in the assigned area.** The token at `src/Offsets.sol` is a 17-line contract that inherits the unmodified OpenZeppelin v5.0.2 ERC-20 and mints the full supply to msg.sender once in the constructor. There is nothing for the Access Control, Trust Gap or Asymmetry guides to catch because the permission model is empty.\n\nWhat I verified:\n\n- **Permission model.** The compiled ABI exposes exactly three nonpayable functions: approve, transfer and transferFrom. There is no owner, minter, initializer, pause, blocklist, receive or fallback. Each function touches only the caller's own balance or allowance.\n- **Role handout at deployment.** The supply goes to the immediate deployer, which is the CREATE2 factory, never tx.origin. After that the factory has no more power than any holder. A scratch test confirmed the factory and the deployment origin cannot pull a holder's tokens without approval.\n- **Asymmetry.** transfer and transferFrom share the same internal path. The only difference is allowance spending, and a reverting transferFrom restores the allowance atomically. The missing Approval event on spend is OpenZeppelin v5 behaviour, documented in the README.\n- **Launch flows.** Swarm share, pool seed, remainder, buy and sell all move exact amounts and leave total supply unchanged. The real Uniswap v4 harness is not in the tree, so I exercised the flows against a stand-in.\n- **Supply chain.** All five vendored OpenZeppelin files hash identically to upstream commit dbb6104 and to docs/dependencies.json. The runtime contains no DELEGATECALL, CALLCODE or SELFDESTRUCT.\n- **Static analysis lead.** The aderyn \"large numeric literal\" note refers to the supply constant, which equals the brief's figure exactly.\n\nCoverage: all three entry points are recorded as holds, with seven additional invariant rows. The only thing not executed is the network's own protected Uniswap v4 test, whose dependencies are not vendored here. The scratch test directory was removed after use.","treeHash":null,"usage":{"cachedInputTokens":674206,"inputTokens":322,"model":"claude-fable-5-1","outputTokens":12337,"runtime":"claude","turns":21,"wallClockMs":184006}},{"artifacts":[],"attempt":1,"bundleHash":"9cdb4451cd6f3e858e897263ecfce401e619bc768b32e86a188f725c0bdd3848","device":"68fdf4cb027a7a1f","findings":[],"hash":"2fd229bc3177dcd9327dbe7d1a6b953ad0d2f178555f01eb4d907c5ad9cbc8f5","nodeId":"d6298a60-ebd4-4f7c-8d14-cb0492e0365c","outcome":"completed","summary":"Implemented Offsets (OFFSETS): 1 billion tokens, 18 decimals, minted once to the deployer, with no admin or further minting powers.\n\nValidation passed:\n\n- `forge build`\n- `forge test`: 33 passing with the specified fuzz seed\n- `forge fmt --check`\n\nDependencies are vendored for offline builds. Deployment parameters, assumptions, and operational responsibilities are documented in `README.md`.","treeHash":"7fef715235a3dc9ab228aee175262c7ecb6fc2b2","usage":{"cachedInputTokens":395264,"inputTokens":50909,"model":"gpt-6-astra","outputTokens":14410,"runtime":"codex","turns":5,"wallClockMs":309062}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"f47f953f8e35921e","findings":[],"hash":"7667883719de2f8fbecdc27b7e9b6d528ae248665f43ee46605e112aa89cf384","nodeId":"79b6f0af-9793-45d5-b10e-73ac07e5b5fa","outcome":"completed","summary":"The review is complete and written to `.imd-findings.json` with zero findings and full coverage. No tracked files were changed.\n\n**What I checked**\n\n- **The token** at `src/Offsets.sol` is a parameterless contract inheriting OpenZeppelin ERC20 and minting one billion tokens with 18 decimals to msg.sender in the constructor. The ABI exposes only approve, transfer and transferFrom as state-changing functions.\n- **Each entry point** was traced through the vendored ERC20 code. Approve rejects a zero spender and overwrites the allowance. Transfer rejects a zero recipient and insufficient balance, and moves the exact amount. TransferFrom spends allowance first, treats max uint as unlimited, and rolls back atomically on a failed transfer. None has a fee, hook, exemption or external call.\n- **Launch compatibility** holds. The constructor mint equals the manifest's totalSupply exactly, no constructor arguments are needed under CREATE2, creation and runtime bytecode are far under the protocol limits, and the runtime contains no DELEGATECALL, CALLCODE or SELFDESTRUCT.\n- **Dependency integrity** holds. The five vendored OpenZeppelin files were read in full and match canonical v5.0.x sources, and their SHA-256 hashes match the recorded manifest in docs.\n- **The project's own suite** of 57 unit, fuzz and invariant tests passes on a clean build.\n\n**Specialist input**\n\nAll four specialists and the independent tester reported no findings, so there was nothing to reproduce, merge or drop. The single aderyn note about a large numeric literal is a style remark on an underscored constant and is not a defect.\n\nThe coverage record marks all three entry points as holding, plus rows for the supply invariant, dependency integrity and the specialist review.","treeHash":null,"usage":{"cachedInputTokens":366155,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":4529,"runtime":"claude","turns":8,"wallClockMs":106763}},{"artifacts":[],"attempt":1,"bundleHash":"48076f48e1f4b9fb48016ba55d81adbb9e5ce628b11c18c00e0ec9024dbb207c","device":"70dd8643efb15b75","findings":[],"hash":"77396f85d5adf8c62551671f3a6dc3e7cbb0c5389be9da03029ffedcbd8c5bc2","nodeId":"ac9fe5c2-d57d-4a69-ae50-4403bb897e02","outcome":"completed","summary":"Added 23 boundary/fuzz tests and expanded stateful invariants covering failure rollback, allowances, supply conservation, and holder transferability.\n\n`forge build` and `forge test` pass with the required seed: **57 tests passed**, including **32,768 invariant calls**.\n\nNo implementation defects found. Only `test/` changed.","treeHash":"3ccb45c6c13dac1ac80e861c7e8e3a7b5b7c2cc4","usage":{"cachedInputTokens":931328,"inputTokens":71592,"model":"gpt-6-astra","outputTokens":15218,"runtime":"codex","turns":5,"wallClockMs":336144}},{"artifacts":[],"attempt":1,"bundleHash":"9c699f61651134f47b930ad33fe1aac67d272e8d16a83106c28ea2ac80676285","device":"6de2de551e41049f","findings":[],"hash":"d3cc229000bf0489a43582db301b77a9151236d9e3d85d6049d49fb94594da32","nodeId":"362d5446-3312-4b8c-bbdb-399ac5b902b4","outcome":"completed","summary":"Created [launch.json](/root/.identitymd/work/ddd89530-1c52-4fb2-8a57-139a07cc03fb/362d5446-3312-4b8c-bbdb-399ac5b902b4/launch.json) matching the accepted Offsets constructor, exact supply, pool settings, and economics.\n\nManifest and ABI checks passed. `forge build` succeeded; `forge test` passed all 33 tests using the supplied fuzz seed.\n\nOnly `launch.json` changed outside permitted scratch artifacts.","treeHash":"1e22aa3059c911e16e367e9fa144114c504e777b","usage":{"cachedInputTokens":207744,"inputTokens":38263,"model":"gpt-6-astra","outputTokens":2660,"runtime":"codex","turns":3,"wallClockMs":62047}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"af9a875696459139","findings":[],"hash":"f0d87cfec6376ee51d7109f641bfe43f58ec8908234f01d64925d34b68005532","nodeId":"0b060b78-3963-465b-95da-efcb47454200","outcome":"completed","summary":"The review is complete. The findings file holds zero defects and seven coverage rows, all three entry points answered as holds.\n\n**Outcome: no math defects found in the Offsets token.**\n\nThe token in `src/Offsets.sol` is a bare OpenZeppelin ERC20 with one constant and a constructor mint. Its only custom arithmetic is the supply literal, which the compiler evaluates exactly to 1e27 at compile time. Every other operation is inherited, and the vendored ERC20.sol hashes identically to upstream OpenZeppelin v5.0.2, as do the other four vendored files against the pins in docs/dependencies.json.\n\nWhat I checked against the Math Precision, Boundary and Numerical Gap guides:\n\n- **Overflow and unchecked blocks.** The inherited balance updates subtract only after a checked balance guard and add inside a bound fixed by the constant supply, which never grows since mint is constructor-only and nothing burns.\n- **Boundary inputs.** Transfers of 0, 1 wei, the whole supply, supply plus one, and the maximum uint all behave as the standard specifies, reverting with the exact custom error rather than a panic.\n- **Allowance edges.** The maximum-uint sentinel is never decremented, maximum minus one is, an allowance short by one reverts with the exact error, and an unlimited allowance still fails on an insufficient balance.\n- **Conservation.** Fuzzed splits and the project's stateful invariant suite keep the sum of balances equal to the constant supply with zero reverts.\n- **Static-analysis lead.** The aderyn large-numeric-literal note is style only, with no runtime multiplication to lose precision.\n\nNothing in my area was left unreached. The protected launch tests need the network's Uniswap v4 harness, which is not vendored here, so pool seeding and swap flows were not executed locally. That is outside the math area and belongs to the verifier.\n\nScratch tests were run and then removed, so the working tree holds only `.imd-findings.json`.","treeHash":null,"usage":{"cachedInputTokens":624950,"inputTokens":354,"model":"claude-fable-5-1","outputTokens":10610,"runtime":"claude","turns":20,"wallClockMs":153981}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"1188f01303e45ecd","findings":[],"hash":"f3875f67aa4300ab1875bacd08fb7ba88bb0ee2a8e00f605ed20705c6c1febfb","nodeId":"43f2b16f-7ef5-46e6-a3bb-5ff94a2f47d5","outcome":"completed","summary":"The review is complete. The findings file holds an empty findings list and seven coverage rows, and the working tree has no tracked-file changes.\n\n**Outcome: no defects found in the assigned area.** The Offsets token is a thin wrapper over the unmodified OpenZeppelin v5.0.2 ERC20 that mints the full supply to the deployer in its constructor and adds nothing else. I checked it against the Economic Security, Invariant and Flow Gap guides and could not construct a failing input or state for any failure mode they list.\n\nWhat I verified, with concrete probes where the project suite did not already cover the case:\n\n- **Supply invariants hold.** The total supply is written only by the constructor. There is no mint, burn, initializer or admin function in the ABI. A transferFrom with the zero address as source reverts inside the allowance update before any mint branch is reached, and transfers to the zero address revert rather than burning. The project's stateful invariant suite and my scratch tests confirm the supply stays at exactly one billion tokens through every reachable path.\n- **Launch flows are exact.** Factory to distributor, distributor to claimant, factory to pool and factory to remainder each deliver the full amount with no fee, tax, hook or callback. The constructor takes no arguments and mints to msg.sender, so a CREATE2 deployment by the factory leaves the whole supply with the factory. Decimals return 18, matching the stated supply of one billion with 18 decimals.\n- **No economic dependencies.** The token makes no external calls and has no oracle, pause, blocklist, receive or fallback surface. Nothing on the seed or swap path needs an exemption because ordinary transfers already move exact amounts.\n- **Vendored library is genuine.** I read the vendored ERC20 and Context sources in full and they match upstream OpenZeppelin v5.0.x. Their hashes also match the ones recorded in the project's dependency manifest.\n\nTwo accepted behaviours are worth stating as trust assumptions rather than defects, since the README documents both: the standard ERC-20 approve front-running window exists, and tokens sent to the token's own address are permanently stuck because there is deliberately no rescue function.\n\nThe static-analysis lead about a large numeric literal at the supply constant is cosmetic. The literal evaluates to exactly the manifest supply.\n\nCoverage: all three entry points are marked as holding, plus rows for the supply conservation invariant, the balance-sum invariant, the constructor launch flow and the external-dependency surface. Nothing in my area was left unreached. The scratch test I wrote lives under test/scratch, which is ignored by git and is not part of the submission.","treeHash":null,"usage":{"cachedInputTokens":669257,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":11611,"runtime":"claude","turns":25,"wallClockMs":191211}}],"verification":[{"checks":[{"durationMs":1180,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.09s\nCompiler run successful!\n","passed":true},{"durationMs":2487,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 32 tests for test/Offsets.t.sol:OffsetsTest\n[PASS] testFuzz_ExceedingAllowanceRevertsAtomically(uint256) (runs: 512, μ: 124201, ~: 124254)\nLogs:\n  Bound result 486058392471447921\n\n[PASS] testFuzz_OverspendingReverts(uint256) (runs: 512, μ: 71480, ~: 71412)\nLogs:\n  Bound result 486058392471447921\n\n[PASS] testFuzz_TransferFromTracksAllowance(uint256,uint256) (runs: 512, μ: 167776, ~: 169681)\nLogs:\n  Bound result 8\n  Bound result 5\n\n[PASS] testFuzz_TransfersConserveSupply(address,uint256) (runs: 512, μ: 99732, ~: 100009)\nLogs:\n  Bound result 944584105056028607297005962\n\n[PASS] test_ApprovalCanBeReplacedAndRevoked() (gas: 179679)\n[PASS] test_ApprovalDoesNotRequireBalance() (gas: 78346)\n[PASS] test_ApprovalIsSpecificToSpender() (gas: 108087)\n[PASS] test_ApproveReturnsTrueAndEmitsEvent() (gas: 96024)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 40252)\n[PASS] test_ConstructorEmitsOneMintEvent() (gas: 18209)\n[PASS] test_Create2DeploymentNeedsNoConfiguration() (gas: 312549)\n[PASS] test_DeployerCannotSpendHolderFundsWithoutApproval() (gas: 161244)\n[PASS] test_EntireSupplyCanMoveAndReturn() (gas: 154040)\n[PASS] test_FactoryReceivesSupplyInsteadOfTransactionOrigin() (gas: 330046)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 207147)\n[PASS] test_LaunchDistributionAndClaimTransfersAreExact() (gas: 569545)\n[PASS] test_MetadataAndInitialAllocation() (gas: 111831)\n[PASS] test_NoMintBurnOrAdminEntryPoints() (gas: 2238302)\n[PASS] test_RuntimeContainsNoForbiddenOpcodes() (gas: 785740)\n[PASS] test_SelfTransferFromSpendsAllowanceWithoutChangingBalance() (gas: 118421)\n[PASS] test_SelfTransferPreservesBalance() (gas: 54185)\n[PASS] test_TransferFromConsumesAllowanceAndEmitsTransfer() (gas: 167316)\n[PASS] test_TransferFromExactAllowanceExhaustsIt() (gas: 166666)\n[PASS] test_TransferFromToZeroRestoresAllowance() (gas: 119103)\n[PASS] test_TransferFromWithInsufficientBalanceRestoresAllowance() (gas: 126202)\n[PASS] test_TransferFromWithoutApprovalReverts() (gas: 59989)\n[PASS] test_TransferMoreThanBalanceRevertsAtomically() (gas: 67987)\n[PASS] test_TransferReturnsTrueAndEmitsEvent() (gas: 96196)\n[PASS] test_TransferToZeroRevertsWithoutBurning() (gas: 50290)\n[PASS] test_ZeroTransferFromDoesNotRequireApproval() (gas: 78783)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73355)\n[PASS] test_ZeroTransferToZeroAlsoReverts() (gas: 32864)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 17.89ms (68.67ms CPU time)\n\nRan 1 test for test/Offsets.invariant.t.sol:OffsetsInvariantTest\n[PASS]\nOffsetsInvariantTest invariants:\n[PASS] invariant_BalancesAndAllowancesMatchIndependentLedger\n[PASS] invariant_SupplyIsConstantAndFullyAccountedFor\n OffsetsInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭----------------+----------+-------+---------+----------╮\n| Contract       | Selector | Calls | Reverts | Discards |\n+========================================================+\n| OffsetsHandler | approve  | 2690  | 0       | 0        |\n|----------------+----------+-------+---------+----------|\n| OffsetsHandler | move     | 2728  | 0       | 0        |\n|----------------+----------+-------+---------+----------|\n| OffsetsHandler | spend    | 2774  | 0       | 0        |\n╰----------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3487\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1819\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 123000000000000000000\n  Bound result 20000000000000000000\n  Bound result 5000000000000000000\n  Bound result 0\n  Bound result 415955172\n  Bound result 1434\n  Bound result 1\n  Bound result 4680\n  Bound result 1408\n  Bound result 0\n  Bound result 569\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.39s (2.39s CPU time)\n\nRan 2 test suites in 2.39s (2.40s CPU time): 33 tests passed, 0 failed, 0 skipped (33 total tests)\n","passed":true},{"durationMs":39,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Offsets.approve(address,uint256)\",\"Offsets.transfer(address,uint256)\",\"Offsets.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":101,\"docs/dependencies.json\":54,\"docs/security-review.md\":54,\"foundry.toml\":21,\"remappings.txt\":2,\"src/Offsets.sol\":17,\"test/Offsets.invariant.t.sol\":98,\"test/Offsets.t.sol\":425,\"test/helpers/TokenDeployer.sol\":19},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":426,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":237,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/Offsets.sol:10: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"2fd229bc3177dcd9327dbe7d1a6b953ad0d2f178555f01eb4d907c5ad9cbc8f5","verifiedTreeHash":"7fef715235a3dc9ab228aee175262c7ecb6fc2b2","verifierVersion":"0.1.0+9c4e4b92"},{"checks":[{"durationMs":1395,"exitCode":0,"name":"build","output":"Compiling 29 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.33s\nCompiler run successful!\n","passed":true},{"durationMs":9097,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 32 tests for test/Offsets.t.sol:OffsetsTest\n[PASS] testFuzz_ExceedingAllowanceRevertsAtomically(uint256) (runs: 512, μ: 124205, ~: 124254)\nLogs:\n  Bound result 5\n\n[PASS] testFuzz_OverspendingReverts(uint256) (runs: 512, μ: 71485, ~: 71412)\nLogs:\n  Bound result 5\n\n[PASS] testFuzz_TransferFromTracksAllowance(uint256,uint256) (runs: 512, μ: 168201, ~: 169683)\nLogs:\n  Bound result 226711252867743265360599703\n  Bound result 204201071826726494537463694\n\n[PASS] testFuzz_TransfersConserveSupply(address,uint256) (runs: 512, μ: 99734, ~: 100185)\nLogs:\n  Bound result 443482588536641904162718925\n\n[PASS] test_ApprovalCanBeReplacedAndRevoked() (gas: 179679)\n[PASS] test_ApprovalDoesNotRequireBalance() (gas: 78346)\n[PASS] test_ApprovalIsSpecificToSpender() (gas: 108087)\n[PASS] test_ApproveReturnsTrueAndEmitsEvent() (gas: 96024)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 40252)\n[PASS] test_ConstructorEmitsOneMintEvent() (gas: 18209)\n[PASS] test_Create2DeploymentNeedsNoConfiguration() (gas: 312549)\n[PASS] test_DeployerCannotSpendHolderFundsWithoutApproval() (gas: 161244)\n[PASS] test_EntireSupplyCanMoveAndReturn() (gas: 154040)\n[PASS] test_FactoryReceivesSupplyInsteadOfTransactionOrigin() (gas: 330046)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 207147)\n[PASS] test_LaunchDistributionAndClaimTransfersAreExact() (gas: 569545)\n[PASS] test_MetadataAndInitialAllocation() (gas: 111831)\n[PASS] test_NoMintBurnOrAdminEntryPoints() (gas: 2238302)\n[PASS] test_RuntimeContainsNoForbiddenOpcodes() (gas: 785740)\n[PASS] test_SelfTransferFromSpendsAllowanceWithoutChangingBalance() (gas: 118421)\n[PASS] test_SelfTransferPreservesBalance() (gas: 54185)\n[PASS] test_TransferFromConsumesAllowanceAndEmitsTransfer() (gas: 167316)\n[PASS] test_TransferFromExactAllowanceExhaustsIt() (gas: 166666)\n[PASS] test_TransferFromToZeroRestoresAllowance() (gas: 119103)\n[PASS] test_TransferFromWithInsufficientBalanceRestoresAllowance() (gas: 126202)\n[PASS] test_TransferFromWithoutApprovalReverts() (gas: 59989)\n[PASS] test_TransferMoreThanBalanceRevertsAtomically() (gas: 67987)\n[PASS] test_TransferReturnsTrueAndEmitsEvent() (gas: 96196)\n[PASS] test_TransferToZeroRevertsWithoutBurning() (gas: 50290)\n[PASS] test_ZeroTransferFromDoesNotRequireApproval() (gas: 78783)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73355)\n[PASS] test_ZeroTransferToZeroAlsoReverts() (gas: 32864)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 100.43ms (179.42ms CPU time)\n\nRan 23 tests for test/Offsets.edge.t.sol:OffsetsEdgeTest\n[PASS] testFuzz_ApprovalDoesNotAuthorizeSpendingAnotherOwnersFunds(uint256,uint256) (runs: 1000, μ: 216559, ~: 216710)\nLogs:\n  Bound result 107078835640972721375178822\n\n[PASS] testFuzz_BalanceFailureRestoresFiniteAllowance(uint256,uint256) (runs: 1000, μ: 211063, ~: 211278)\nLogs:\n  Bound result 999459731261490326147116335\n  Bound result 217232169192500853\n\n[PASS] testFuzz_DelegatedSelfTransferOnlySpendsAllowance(uint256,uint256,uint256) (runs: 1000, μ: 215361, ~: 216393)\nLogs:\n  Bound result 22414\n  Bound result 5584\n  Bound result 3260\n\n[PASS] testFuzz_DirectTransferLeavesAllowanceUntouched(uint256,uint256) (runs: 1000, μ: 158947, ~: 159610)\nLogs:\n  Bound result 217232169192500853\n\n[PASS] testFuzz_ReapprovalReplacesRemainingAllowance(uint256,uint256,uint256) (runs: 1000, μ: 253936, ~: 255156)\nLogs:\n  Bound result 877367241622707329482351543\n\n[PASS] testFuzz_SpendersShareTheBalanceButNotAllowances(uint256) (runs: 1000, μ: 380281, ~: 380415)\nLogs:\n  Bound result 1239\n\n[PASS] testFuzz_TransferPartitionAndRoundTripAreExact(uint256,uint256) (runs: 1000, μ: 337120, ~: 337451)\nLogs:\n  Bound result 999999999999999999999999998\n  Bound result 0\n\n[PASS] testFuzz_ZeroDelegatedTransferEmitsEventAndPreservesAllowance(uint256) (runs: 1000, μ: 187356, ~: 187650)\n[PASS] testFuzz_ZeroReceiverFailureRestoresFiniteAllowance(uint256,uint256) (runs: 1000, μ: 186712, ~: 187269)\nLogs:\n  Bound result 8\n  Bound result 4\n\n[PASS] test_DelegatedSelfTransferCannotBypassTheBalanceCheck() (gas: 183102)\n[PASS] test_EmptyHolderCannotSelfTransferOneWei() (gas: 116013)\n[PASS] test_EntireSupplyCanMoveByAllowance() (gas: 280874)\n[PASS] test_InfiniteAllowanceDoesNotPermitOverspending() (gas: 182254)\n[PASS] test_InfiniteAllowanceWorksAgainAfterHolderIsRefilled() (gas: 268930)\n[PASS] test_InfiniteApprovalCanBeReplacedWithFiniteApproval() (gas: 211807)\n[PASS] test_MaximumMinusOneAllowanceIsFinite() (gas: 162608)\n[PASS] test_MaximumTransferRevertsWithoutOverflowOrMutation() (gas: 118326)\n[PASS] test_OneWeiMovesExactlyAndCanReturn() (gas: 202050)\n[PASS] test_OwnerUsingTransferFromStillNeedsAnAllowance() (gas: 261156)\n[PASS] test_RefillingBalanceDoesNotRestoreSpentAllowance() (gas: 279405)\n[PASS] test_RevokingInfiniteAllowanceStopsAnAlreadyActiveSpender() (gas: 216031)\n[PASS] test_SelfTransferCannotBypassTheBalanceCheck() (gas: 116199)\n[PASS] test_ZeroApprovalToZeroSpenderIsRejected() (gas: 188552)\nSuite result: ok. 23 passed; 0 failed; 0 skipped; finished in 100.50ms (892.53ms CPU time)\n\nRan 2 tests for test/Offsets.invariant.t.sol:OffsetsInvariantTest\n[PASS]\nOffsetsInvariantTest invariants:\n[PASS] invariant_BalancesAndAllowancesMatchIndependentLedger\n[PASS] invariant_SupplyIsConstantAndFullyAccountedFor\n OffsetsInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭----------------+------------------------+-------+---------+----------╮\n| Contract       | Selector               | Calls | Reverts | Discards |\n+======================================================================+\n| OffsetsHandler | approve                | 3060  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | approveAndSpendBalance | 3018  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | approveBoundary        | 2867  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | move                   | 2971  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | rejectExcessAllowance  | 3005  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | rejectOverspend        | 2939  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | rejectUnfundedSpend    | 2961  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | rejectZeroRecipient    | 2990  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | rejectZeroSpender      | 3006  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | roundTrip              | 2988  | 0       | 0        |\n|----------------+------------------------+-------+---------+----------|\n| OffsetsHandler | spend                  | 2963  | 0       | 0        |\n╰----------------+------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 5633136610658575406846143959754858694842632554\n  Bound result 0\n  Bound result 0\n  Bound result 223\n  Bound result 204\n  Bound result 202\n  Bound result 1000000000000000000000000000\n  Bound result 242\n  Bound result 0\n  Bound result 5394\n  Bound result 14\n  Bound result 3486859970\n  Bound result 1659\n  Bound result 1023\n  Bound result 2694\n  Bound result 223\n  Bound result 0\n  Bound result 17\n  Bound result 0\n  Bound result 0\n  Bound result 168021490476671845950\n  Bound result 2000000000000000000\n  Bound result 0\n  Bound result 127\n  Bound result 96\n  Bound result 8\n  Bound result 37\n  Bound result 15\n  Bound result 244\n  Bound result 0\n  Bound result 255\n  Bound result 4796\n  Bound result 242\n  Bound result 9031\n  Bound result 40144333416594820524931587102623171403966306595192078878855580564\n  Bound result 18\n  Bound result 43\n  Bound result 78\n  Bound result 244\n  Bound result 19\n  Bound result 1\n  Bound result 6425\n  Bound result 210\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 148\n  Bound result 20\n  Bound result 2\n  Bound result 15\n  Bound result 42\n  Bound result 379\n  Bound result 0\n  Bound result 244\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 4\n  Bound result 2\n  Bound result 0\n  Bound result 4\n  Bound result 4\n  Bound result 3947\n  Bound result 15\n  Bound result 0\n  Bound result 242\n  Bound result 1644\n  Bound result 199825411568\n  Bound result 12\n  Bound result 0\n  Bound result 0\n  Bound result 30\n  Bound result 100000000000000000000\n  Bound result 0\n  Bound result 5\n  Bound result 244\n  Bound result 17\n  Bound result 13\n  Bound result 0\n  Bound result 2082\n  Bound result 0\n  Bound result 0\n  Bound result 406393154907174118700980927\n\n[PASS] test_HandlerMixedSequence() (gas: 2026003)\nLogs:\n  Bound result 500000000000000000000000000\n  Bound result 250000000000000000000000000\n  Bound result 0\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 0\n  Bound result 1\n  Bound result 1\n\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 9.02s (9.02s CPU time)\n\nRan 3 test suites in 9.02s (9.22s CPU time): 57 tests passed, 0 failed, 0 skipped (57 total tests)\n","passed":true},{"durationMs":37,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Offsets.approve(address,uint256)\",\"Offsets.transfer(address,uint256)\",\"Offsets.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":101,\"docs/dependencies.json\":54,\"docs/security-review.md\":54,\"foundry.toml\":21,\"remappings.txt\":2,\"src/Offsets.sol\":17,\"test/Offsets.edge.t.sol\":378,\"test/Offsets.invariant.t.sol\":262,\"test/Offsets.t.sol\":425,\"test/helpers/TokenDeployer.sol\":19},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"77396f85d5adf8c62551671f3a6dc3e7cbb0c5389be9da03029ffedcbd8c5bc2","verifiedTreeHash":"3ccb45c6c13dac1ac80e861c7e8e3a7b5b7c2cc4","verifierVersion":"0.1.0+9c4e4b92"},{"checks":[{"durationMs":1189,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.11s\nCompiler run successful!\n","passed":true},{"durationMs":2562,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 32 tests for test/Offsets.t.sol:OffsetsTest\n[PASS] testFuzz_ExceedingAllowanceRevertsAtomically(uint256) (runs: 512, μ: 124201, ~: 124254)\nLogs:\n  Bound result 253175918709832535391200725\n\n[PASS] testFuzz_OverspendingReverts(uint256) (runs: 512, μ: 71480, ~: 71412)\nLogs:\n  Bound result 16787461617127624\n\n[PASS] testFuzz_TransferFromTracksAllowance(uint256,uint256) (runs: 512, μ: 167776, ~: 169681)\nLogs:\n  Bound result 18063\n  Bound result 15\n\n[PASS] testFuzz_TransfersConserveSupply(address,uint256) (runs: 512, μ: 99732, ~: 100009)\nLogs:\n  Bound result 944584105056028607297005962\n\n[PASS] test_ApprovalCanBeReplacedAndRevoked() (gas: 179679)\n[PASS] test_ApprovalDoesNotRequireBalance() (gas: 78346)\n[PASS] test_ApprovalIsSpecificToSpender() (gas: 108087)\n[PASS] test_ApproveReturnsTrueAndEmitsEvent() (gas: 96024)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 40252)\n[PASS] test_ConstructorEmitsOneMintEvent() (gas: 18209)\n[PASS] test_Create2DeploymentNeedsNoConfiguration() (gas: 312549)\n[PASS] test_DeployerCannotSpendHolderFundsWithoutApproval() (gas: 161244)\n[PASS] test_EntireSupplyCanMoveAndReturn() (gas: 154040)\n[PASS] test_FactoryReceivesSupplyInsteadOfTransactionOrigin() (gas: 330046)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 207147)\n[PASS] test_LaunchDistributionAndClaimTransfersAreExact() (gas: 569545)\n[PASS] test_MetadataAndInitialAllocation() (gas: 111831)\n[PASS] test_NoMintBurnOrAdminEntryPoints() (gas: 2238302)\n[PASS] test_RuntimeContainsNoForbiddenOpcodes() (gas: 785740)\n[PASS] test_SelfTransferFromSpendsAllowanceWithoutChangingBalance() (gas: 118421)\n[PASS] test_SelfTransferPreservesBalance() (gas: 54185)\n[PASS] test_TransferFromConsumesAllowanceAndEmitsTransfer() (gas: 167316)\n[PASS] test_TransferFromExactAllowanceExhaustsIt() (gas: 166666)\n[PASS] test_TransferFromToZeroRestoresAllowance() (gas: 119103)\n[PASS] test_TransferFromWithInsufficientBalanceRestoresAllowance() (gas: 126202)\n[PASS] test_TransferFromWithoutApprovalReverts() (gas: 59989)\n[PASS] test_TransferMoreThanBalanceRevertsAtomically() (gas: 67987)\n[PASS] test_TransferReturnsTrueAndEmitsEvent() (gas: 96196)\n[PASS] test_TransferToZeroRevertsWithoutBurning() (gas: 50290)\n[PASS] test_ZeroTransferFromDoesNotRequireApproval() (gas: 78783)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 73355)\n[PASS] test_ZeroTransferToZeroAlsoReverts() (gas: 32864)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 16.92ms (68.09ms CPU time)\n\nRan 1 test for test/Offsets.invariant.t.sol:OffsetsInvariantTest\n[PASS]\nOffsetsInvariantTest invariants:\n[PASS] invariant_BalancesAndAllowancesMatchIndependentLedger\n[PASS] invariant_SupplyIsConstantAndFullyAccountedFor\n OffsetsInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭----------------+----------+-------+---------+----------╮\n| Contract       | Selector | Calls | Reverts | Discards |\n+========================================================+\n| OffsetsHandler | approve  | 2690  | 0       | 0        |\n|----------------+----------+-------+---------+----------|\n| OffsetsHandler | move     | 2728  | 0       | 0        |\n|----------------+----------+-------+---------+----------|\n| OffsetsHandler | spend    | 2774  | 0       | 0        |\n╰----------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3487\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1819\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 123000000000000000000\n  Bound result 20000000000000000000\n  Bound result 5000000000000000000\n  Bound result 0\n  Bound result 415955172\n  Bound result 1434\n  Bound result 1\n  Bound result 4680\n  Bound result 1408\n  Bound result 0\n  Bound result 569\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.48s (2.48s CPU time)\n\nRan 2 test suites in 2.48s (2.50s CPU time): 33 tests passed, 0 failed, 0 skipped (33 total tests)\n","passed":true},{"durationMs":42,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Offsets.approve(address,uint256)\",\"Offsets.transfer(address,uint256)\",\"Offsets.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":101,\"docs/dependencies.json\":54,\"docs/security-review.md\":54,\"foundry.toml\":21,\"launch.json\":20,\"remappings.txt\":2,\"src/Offsets.sol\":17,\"test/Offsets.invariant.t.sol\":98,\"test/Offsets.t.sol\":425,\"test/helpers/TokenDeployer.sol\":19},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"d3cc229000bf0489a43582db301b77a9151236d9e3d85d6049d49fb94594da32","verifiedTreeHash":"1e22aa3059c911e16e367e9fa144114c504e777b","verifierVersion":"0.1.0+9c4e4b92"}]}