{"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":"023c9e4f-feee-477b-9a9e-b0f869663fb7","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"1949bd8a6c87e4f911eb2bfb8214fb4dc2752f15b0f9341efe8bf93c27e024e5","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":"d1d37a1b48ea7b232a7d31d7f51b880d802e7a22b73121589f02593656a6803b","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":"55bb933a1df17de3126bbfae9a5af0c3453964b2ee1ae55abd9d767f880256d2","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":"1c2b27ac25975f6d570d0ea60feb050bc12334b6403ac3d1487dca271ca90ed2","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":"1c31f9cd5ced9a84c4665b4c7bda7362064327ea5449601d0f40fd9d0a8dc20d","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":"85ce8077529c992236fccb302e3006d6948c1a20272fcf48f3989ee4c4634598","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"587567a5ef71546b5973ceaf6ef1dbbd590f49503b5ac9a6973ed86b89584857","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"587567a5ef71546b5973ceaf6ef1dbbd590f49503b5ac9a6973ed86b89584857","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"fd83a1e1b3a435b3865edcf6cacad2e146b93ba98836b9eb423ad61aaf9e5f10","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"3b943c398ef7393ffbed594aa1c72c2bb474a0b4e6e848c0af5dd0de90e42565","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":"A custom token: Swarm brain (BRAIN).\nToken name: Swarm brain\nToken symbol: BRAIN\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"475d3a581e12f239d843792fe64528a6427c2dc4703c6d3e301965f7e3441975","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"023c9e4f-feee-477b-9a9e-b0f869663fb7","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1090-swarm-brain"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52129","feedbackHash":"fbedd22c36691827830c8d495594809e37e29e119317d0db90cad58f90db5d1b","nodeKey":"audit_economics","submissionHash":"1949bd8a6c87e4f911eb2bfb8214fb4dc2752f15b0f9341efe8bf93c27e024e5","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51232","feedbackHash":"1e26fbfd962c89132cfc27bb34c31854959f13dcf4ee468970121a7d585cc97d","nodeKey":"audit_flow","submissionHash":"d1d37a1b48ea7b232a7d31d7f51b880d802e7a22b73121589f02593656a6803b","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51162","feedbackHash":"28a5e545bfc3b445ea7784f079212d9b22769136670e530afaaba55a09c71d4d","nodeKey":"audit_judge","submissionHash":"55bb933a1df17de3126bbfae9a5af0c3453964b2ee1ae55abd9d767f880256d2","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51225","feedbackHash":"3d3cd6c051f7123c7d74081f0f15b4c38c5d04412a53aecd0c2970745e52c266","nodeKey":"audit_math","submissionHash":"1c2b27ac25975f6d570d0ea60feb050bc12334b6403ac3d1487dca271ca90ed2","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52138","feedbackHash":"a9d4fb2c580b540d0dacd90e764eb339fa7125bba7c19ffe39221b143f27815d","nodeKey":"audit_permissions","submissionHash":"1c31f9cd5ced9a84c4665b4c7bda7362064327ea5449601d0f40fd9d0a8dc20d","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51002","feedbackHash":"77e729380e1e2b57f63f63d878b3e36237dc9ca93ef0c27417e24e813dbfebb5","nodeKey":"build_contract_project","submissionHash":"85ce8077529c992236fccb302e3006d6948c1a20272fcf48f3989ee4c4634598","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"50985","feedbackHash":"78d62e8cbdcdb5f33944bc8a95dc780afac2cba8db6618d67f455c275e05d698","nodeKey":"manifest","submissionHash":"fd83a1e1b3a435b3865edcf6cacad2e146b93ba98836b9eb423ad61aaf9e5f10","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51527","feedbackHash":"eaee1c4d9178383d913c7ee3234f07c3adee5ca116e9430ce07d83f0d364e609","nodeKey":"write_foundry_tests","submissionHash":"3b943c398ef7393ffbed594aa1c72c2bb474a0b4e6e848c0af5dd0de90e42565","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"0043ab8b24755c07febe410c3b4c2e30247dc556ee057afb4cfe396c850cf124","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"63c29c49a249ab7e","findings":[],"hash":"1949bd8a6c87e4f911eb2bfb8214fb4dc2752f15b0f9341efe8bf93c27e024e5","nodeId":"048542fb-85e5-4007-94e9-48ac2d267b25","outcome":"completed","summary":"The review is complete. No defects were found in the economics, invariant, or flow-gap areas, and `.imd-findings.json` holds an empty findings list with nine coverage rows. The working tree is otherwise unchanged.\n\n**What was reviewed.** The token in `src/Token.sol` is eight lines over an unmodified OpenZeppelin v5.0.2 ERC20. I confirmed all six vendored OpenZeppelin files are byte-identical to the upstream archive, whose hash matches the pinned record. The compiled ABI exposes only the standard ERC-20 functions plus the supply constant. There is no mint, burn, owner, pause, hook, receive, or fallback.\n\n**What was checked against the three guides.**\n- **Economic Security.** No external dependencies or oracles. Sentinel addresses revert with ERC-6093 errors. The non-payable constructor refuses ETH. The large-literal lead from aderyn resolves to exactly ten to the twenty-seventh, so it is not a defect.\n- **Invariant.** Supply conservation holds. The internal mint is reachable only from the constructor, and a raw CREATE2 deploy from a factory with a different transaction origin leaves the whole supply on the factory. Finite allowances decrement exactly and the unlimited allowance stays untouched.\n- **Flow Gap.** A Uniswap v4 style sync, transfer, settle sequence credits exactly the amount sent for any prior reserve, and take() delivers exactly. The launch split of ten percent, poolBps, and remainder has no rounding dust for any poolBps from one to nine thousand. The token makes no external calls, so a contract recipient is never invoked mid-flow.\n\n**Verification run.** The project's own suite passed with 27 tests, including the invariant campaign at 128 runs by depth 64 with zero reverts. I wrote nine scratch probes covering the items above, all passed, and I deleted the scratch directory afterwards.\n\n**Trust notes, not defects.** Tokens sent to the token contract itself are stranded with no recovery path, and approve has the standard overwrite race. Both are documented in the README as intended behaviour of a plain ERC-20. A manifest whose remainder recipient is the zero address would revert the factory's forward because the token correctly rejects that receiver, which is a manifest-level concern for whoever writes launch.json.","treeHash":null,"usage":{"cachedInputTokens":990687,"inputTokens":514,"model":"claude-fable-5-1","outputTokens":14227,"runtime":"claude","turns":17,"wallClockMs":222659}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"4dd74fd7c315da80","findings":[],"hash":"1c2b27ac25975f6d570d0ea60feb050bc12334b6403ac3d1487dca271ca90ed2","nodeId":"08812ea9-8696-4a9a-872d-03d16922b2b7","outcome":"completed","summary":"The review is complete. No reproducible defects were found in the assigned area, and the findings file is written and valid.\n\n**Outcome:** `.imd-findings.json` holds an empty findings list and eight coverage rows, one for each of the three listed entry points plus the constructor, two invariants, the boundary surface, and dependency integrity. All rows are `holds`.\n\n**What I checked against the Math Precision, Boundary and Numerical Gap guides:**\n- The token is OpenZeppelin ERC20 v5.0.2 with a single constructor mint. It contains no division, multiplication by a rate, scaling, fee, downcast, or external call, so the precision and boundary checklists have almost no surface to apply to.\n- The supply constant is a compile-time value equal to ten to the twenty-seventh, minted once with checked addition to the immediate creator. A CREATE2 factory fixture confirmed the factory, not the origin, receives it.\n- Every balance and allowance path does a `<` check before its unchecked subtraction, and additions are bounded by total supply. I exercised exact-equality edges, zero amounts, max uint, max-minus-one allowance, and full-supply moves in a scratch test. All behaved exactly, and the one scratch failure was my own wrong expected error selector, not a defect.\n- The compiled ABI exposes only approve, transfer and transferFrom as state-changing functions. No mint, burn, pause or owner surface exists.\n- All five vendored OpenZeppelin files and the licence are byte-identical to the upstream v5.0.2 archive, whose hash matches the recorded one.\n- The aderyn large-numeric-literal lead is style only. The literal evaluates to exactly the manifest supply.\n\n**Housekeeping:** the scratch test directory was removed, the build and all 27 repository tests pass, and `git status --porcelain` shows a clean tree apart from the required output file.","treeHash":null,"usage":{"cachedInputTokens":636200,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":9439,"runtime":"claude","turns":18,"wallClockMs":174831}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"62491201fe455e89","findings":[],"hash":"1c31f9cd5ced9a84c4665b4c7bda7362064327ea5449601d0f40fd9d0a8dc20d","nodeId":"b653a767-6cdf-4f66-a977-8b8412f62ebb","outcome":"completed","summary":"The review is complete. The findings file is written at the repository root and the working tree has no other changes.\n\n**Result: no defects found in the assigned area.** The token at `src/Token.sol` is a bare OpenZeppelin v5.0.2 ERC-20 with a single constructor mint of 10^27 minor units to msg.sender. There is no permission model to break: no owner, roles, modifiers, stored addresses, hooks, receive, fallback, or payable path. The compiled ABI exposes only approve, transfer and transferFrom as state changers.\n\n**What I checked against the Access Control, Trust Gap and Asymmetry guides:**\n- **Permission map.** Every state write is gated only by msg.sender being the balance owner or an approved spender. I probed the deployer, the transaction origin and the token contract itself trying to move or approve another holder's balance. All reverted.\n- **Inherited base integrity.** All five vendored OpenZeppelin files are sha256-identical to upstream v5.0.2, so no modified base hides a backdoor.\n- **Paired surfaces.** approve and transferFrom, transfer and transferFrom, and the mint path were diffed. The only mint is the constructor, and the sum of balances stays equal to total supply under the project's invariant campaign.\n- **Launch floor.** The constructor mints to the immediate creator under CREATE2, not tx.origin, so the factory holds the whole supply. Transfers move exact amounts, so the distributor, pool seed and swap flows cannot arrive short.\n- **Static analysis lead.** The aderyn large-literal note at line 10 is style only. The literal evaluates to exactly 10^27 and the tests assert it.\n\n**Verification run:** forge build succeeded, all 27 project tests passed including the 128-run invariant campaign, and my scratch probe passed before I removed it. The coverage record holds nine rows, one for each of the three listed entry points plus the constructor and five invariants, all marked holds.\n\nNothing in the assigned area was left unreached. The only open items are outside this code: the protected harness run against the attested bytecode and the manifest review, which belong to later assignments.","treeHash":null,"usage":{"cachedInputTokens":558177,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":7440,"runtime":"claude","turns":20,"wallClockMs":124443}},{"artifacts":[],"attempt":1,"bundleHash":"59aa88c1233ffc71e319aee24f2ce3ab40389139123a5008504fce014294b2cf","device":"29393b39cd68a88a","findings":[],"hash":"3b943c398ef7393ffbed594aa1c72c2bb474a0b4e6e848c0af5dd0de90e42565","nodeId":"21a925ec-5674-42df-a7c2-a5b1076b34fb","outcome":"completed","summary":"Added 16 edge-case and failure-path tests, plus stronger invariants tracking balances and allowances across random calls.\n\n`forge build` and `forge test` pass: 43 tests, including 32,768 invariant calls. No defects found. Only `test/` files changed.","treeHash":"ef7b2efc2427a10de0ff484fb0c2b06b47dac3f8","usage":{"cachedInputTokens":384128,"inputTokens":140192,"model":"gpt-6-astra","outputTokens":9038,"runtime":"codex","turns":5,"wallClockMs":227401}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"771f83f312eace21","findings":[],"hash":"55bb933a1df17de3126bbfae9a5af0c3453964b2ee1ae55abd9d767f880256d2","nodeId":"f509765c-66ce-4dd7-89b0-0a3a23934f6f","outcome":"completed","summary":"Review complete. The findings file is written with no defects and a full coverage record.\n\n**Outcome:** the audit of Swarm brain (BRAIN) stands as clean. All four specialists and the independent tester reported nothing, and nothing reproduced for me either.\n\n**What I checked against the code in src/Token.sol:**\n- The contract is a stock OpenZeppelin v5.0.2 ERC-20 with one constructor mint. I compared every vendored library file byte for byte against the upstream v5.0.2 archive. All six are identical, and the archive hash matches the recorded one.\n- The minted amount equals the manifest supply of 1e27 minor units, decimals are 18, and the constructor takes no arguments, matching the empty constructorArgs.\n- The only state-changing entry points are approve, transfer and transferFrom. I traced each through the library: zero-address reverts, insufficient balance and allowance reverts, exact value movement, unchanged total supply, and the unlimited-allowance case. No fee, hook, owner, mint, pause, blacklist, proxy, delegatecall or selfdestruct exists.\n- The manifest's provenance price recomputes exactly from the stated market cap and supply.\n- Rebuilt and ran the existing suite. All 43 tests passed, including the invariant suite with constant total supply.\n\n**Static-analysis lead:** aderyn's large-numeric-literal note is stylistic. The literal evaluates to exactly the manifest supply, so it is not a defect.\n\nThe output is `.imd-findings.json` with an empty findings list and seven coverage rows, all `holds`. No source files were changed.","treeHash":null,"usage":{"cachedInputTokens":276249,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":4646,"runtime":"claude","turns":7,"wallClockMs":105518}},{"artifacts":[],"attempt":1,"bundleHash":"327d69fcfced0c4ac62929240117315694e1dd13bcfde1cc7094c87aa7924e1a","device":"ea5566a759ea17b3","findings":[],"hash":"85ce8077529c992236fccb302e3006d6948c1a20272fcf48f3989ee4c4634598","nodeId":"827bb2bc-4f85-4c37-96fa-45f57d0736d6","outcome":"completed","summary":"Implemented Swarm brain (BRAIN): 1,000,000,000 tokens, 18 decimals, minted once entirely to the deployer.\n\nIncluded vendored dependencies, success/failure tests, fuzz tests, supply invariants, and deployment/operational documentation.\n\nPassed with Solidity 0.8.26:\n\n- `forge build`\n- `forge test`\n- `forge fmt --check`\n- Clean offline build and parallel tests\n\nThe separate network launch harness was not run locally.","treeHash":"4d878594d1c45fa77b5465e6dac991ac31e6d4c8","usage":{"cachedInputTokens":556544,"inputTokens":59860,"model":"gpt-6-astra","outputTokens":12751,"runtime":"codex","turns":5,"wallClockMs":332867}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a18a0c6087e1362f","findings":[],"hash":"d1d37a1b48ea7b232a7d31d7f51b880d802e7a22b73121589f02593656a6803b","nodeId":"b03c88da-4f08-4cd7-9606-8a9a4a2d48c7","outcome":"completed","summary":"The review is complete and the findings file is in place. Nothing remains to request.\n\n**Result: no defects found.** The findings file at `.imd-findings.json` holds an empty findings list and eight coverage rows, all `holds`.\n\n**What was reviewed**\n\n- The token is a 16-line wrapper over OpenZeppelin's ERC20 with one constructor mint of 10^27 minor units to msg.sender. No owner, pause, blacklist, hook, burn or mint entry point exists.\n- Execution Trace: traced approve, transfer and transferFrom through `_approve`, `_spendAllowance`, `_transfer` and `_update` with sentinel inputs. Zero recipient, zero spender and zero sender all revert before any write. Failed transfers roll back allowance changes. Infinite allowance stays untouched. No path reaches `_mint` after construction.\n- Periphery: all six vendored OpenZeppelin files are byte-identical to the upstream v5.0.2 tarball, whose digest matches the one recorded in the repository. All 37 lib files are tracked as ordinary blobs with no submodule, so the offline verifier builds the same code.\n- First Principles: the assumption that msg.sender is the factory holds under CREATE2 regardless of tx.origin, confirmed by a contract-deployer test. The supply constant evaluates to exactly 10^27. No receive or fallback exists, and the runtime bytecode contains no DELEGATECALL, CALLCODE or SELFDESTRUCT.\n\n**Checks run**\n\n- Build with solc 0.8.26 and the project's 27 unit, fuzz and invariant tests: all pass.\n- Formatting check passes.\n- A scratch suite for edge paths not covered by the existing tests, deleted afterwards. Its one failure was my own expected-error mismatch, not a token defect.\n\n**Not reached**\n\nThe protected launch harness itself could not be run here because it needs the network's LaunchLiquidity and Uniswap v4 sources plus environment inputs. Its pass is inferred from the exact-transfer semantics, and the coverage record says so. No launch.json exists yet, which the assignment says is acceptable at this stage.\n\nThe working tree is clean. The findings file is excluded from git by the repository's own exclude list, and the scratch directory and temporary download were removed.","treeHash":null,"usage":{"cachedInputTokens":669285,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":11418,"runtime":"claude","turns":28,"wallClockMs":176086}},{"artifacts":[],"attempt":1,"bundleHash":"26f4235aff12e8e005610a1635744660a8348950ffa847a2b719131907953aab","device":"410247426ec5a6df","findings":[],"hash":"fd83a1e1b3a435b3865edcf6cacad2e146b93ba98836b9eb423ad61aaf9e5f10","nodeId":"80e38930-00f7-4d3c-be57-947aff008704","outcome":"completed","summary":"Created [launch.json](/home/imd/.identitymd/work/023c9e4f-feee-477b-9a9e-b0f869663fb7/80e38930-00f7-4d3c-be57-947aff008704/launch.json) matching the accepted token, exact supply, constructor, and verbatim economics.\n\nSchema and compiled ABI checks passed. `forge build` succeeded; `forge test` passed all 27 tests. Only `launch.json` changed.","treeHash":"e16675d167a6e2cbeb01af0ebf9b349249d2ed3c","usage":{"cachedInputTokens":203264,"inputTokens":23713,"model":"gpt-6-astra","outputTokens":3380,"runtime":"codex","turns":3,"wallClockMs":102985}}],"verification":[{"checks":[{"durationMs":1699,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.59s\nCompiler run successful!\n","passed":true},{"durationMs":9196,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 26 tests for test/Token.t.sol:TokenTest\n[PASS] testFuzz_transferAboveAllowanceReverts(uint256,uint256) (runs: 256, μ: 123466, ~: 123809)\nLogs:\n  Bound result 1290\n  Bound result 16327\n\n[PASS] testFuzz_transferAboveBalanceReverts(uint256) (runs: 256, μ: 69045, ~: 69413)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584010841096457914\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 256, μ: 93055, ~: 93154)\nLogs:\n  Bound result 13456\n\n[PASS] testFuzz_transferFromUsesOnlyAuthorizedAmount(uint256,uint256) (runs: 256, μ: 163102, ~: 165218)\nLogs:\n  Bound result 1290\n  Bound result 835\n\n[PASS] test_approvalCanBeReplacedAndRevoked() (gas: 174334)\n[PASS] test_approveEmitsEventWithoutMovingTokens() (gas: 116713)\n[PASS] test_approveRejectsZeroSpender() (gas: 37550)\n[PASS] test_constructorEmitsSingleMint() (gas: 9670)\n[PASS] test_deployerCannotSpendAnotherHoldersTokens() (gas: 95456)\n[PASS] test_entireSupplyCanBeTransferred() (gas: 86085)\n[PASS] test_factoryReceivesEntireSupplyThroughCreate2() (gas: 291747)\n[PASS] test_failedTransferFromRestoresAllowanceAndBalances() (gas: 136882)\n[PASS] test_infiniteAllowanceIsPreserved() (gas: 139638)\n[PASS] test_launchAndClaimTransfersArriveWhole() (gas: 608372)\n[PASS] test_metadataAndInitialSupply() (gas: 94687)\n[PASS] test_noMintBurnOrAdministrativeEntrypoints() (gas: 664784)\n[PASS] test_runtimeContainsNoDelegationOrDestructionOpcodes() (gas: 786610)\n[PASS] test_selfTransferPreservesBalance() (gas: 51410)\n[PASS] test_transferEmitsEventAndDeliversExactAmount() (gas: 91517)\n[PASS] test_transferFromConsumesAllowanceAndEmitsTransfer() (gas: 267731)\n[PASS] test_transferFromRejectsZeroRecipientAndRestoresAllowance() (gas: 114595)\n[PASS] test_transferRejectsInsufficientBalance() (gas: 67724)\n[PASS] test_transferRejectsZeroRecipientEvenForZeroAmount() (gas: 71948)\n[PASS] test_unapprovedSpenderCannotTransfer() (gas: 57800)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73345)\n[PASS] test_zeroTransferFromWithoutApprovalSucceeds() (gas: 78783)\nSuite result: ok. 26 passed; 0 failed; 0 skipped; finished in 61.39ms (139.54ms CPU time)\n\nRan 16 tests for test/Token.edge.t.sol:TokenEdgeTest\n[PASS] testFuzz_delegatedSelfTransferConsumesOnlyFiniteAllowance(uint256,bool) (runs: 1000, μ: 193230, ~: 193188)\nLogs:\n  Bound result 733442229724548346635111525\n\n[PASS] testFuzz_failedSpendCanBeRetriedAfterFunding(uint256,uint256,bool) (runs: 1000, μ: 334731, ~: 334881)\nLogs:\n  Bound result 2\n  Bound result 3\n\n[PASS] testFuzz_repeatingApprovalReplacesRatherThanAdds(uint256,uint256) (runs: 1000, μ: 174693, ~: 174790)\n[PASS] testFuzz_splitSpendingExhaustsExactlyOneApproval(uint256,uint256) (runs: 1000, μ: 277064, ~: 279457)\nLogs:\n  Bound result 49452380538187685289754225\n  Bound result 10920044012011869978487679\n\n[PASS] test_approvalBelongsToCallerNotTransactionOrigin() (gas: 294604)\n[PASS] test_infiniteApprovalCanBeRevokedAfterUse() (gas: 198167)\n[PASS] test_largestFiniteApprovalIsNotInfinite() (gas: 178673)\n[PASS] test_maximumTransferFromWithInfiniteApprovalStillChecksBalance() (gas: 129374)\n[PASS] test_maximumTransferRevertsWithoutOverflowOrBalanceChanges() (gas: 65281)\n[PASS] test_oneWeiRoundTrip() (gas: 147062)\n[PASS] test_selfTransferCannotBypassInsufficientBalance() (gas: 105860)\n[PASS] test_spenderCannotDelegateAnotherOwnersApproval() (gas: 256364)\n[PASS] test_transferFromByHolderRequiresItsOwnApproval() (gas: 248531)\n[PASS] test_zeroApprovalToZeroSpenderReverts() (gas: 48096)\n[PASS] test_zeroTransferFromPreservesFiniteApprovalAndEmitsEvent() (gas: 139561)\n[PASS] test_zeroTransferFromToZeroRevertsWithInfiniteApproval() (gas: 122089)\nSuite result: ok. 16 passed; 0 failed; 0 skipped; finished in 63.63ms (248.47ms CPU time)\n\nRan 1 test for test/Token.invariant.t.sol:TokenInvariantTest\n[PASS]\nTokenInvariantTest invariants:\n[PASS] invariant_allTokensRemainAccountedFor\n[PASS] invariant_eachAllowanceMatchesApprovalsAndSpending\n[PASS] invariant_eachBalanceMatchesAuthorizedTransfers\n[PASS] invariant_totalSupplyNeverChanges\n TokenInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭--------------+----------------------------+-------+---------+----------╮\n| Contract     | Selector                   | Calls | Reverts | Discards |\n+========================================================================+\n| TokenHandler | approve                    | 3538  | 0       | 0        |\n|--------------+----------------------------+-------+---------+----------|\n| TokenHandler | approveBoundary            | 3599  | 0       | 0        |\n|--------------+----------------------------+-------+---------+----------|\n| TokenHandler | approveZeroSpender         | 3637  | 0       | 0        |\n|--------------+----------------------------+-------+---------+----------|\n| TokenHandler | transfer                   | 3662  | 0       | 0        |\n|--------------+----------------------------+-------+---------+----------|\n| TokenHandler | transferAboveBalance       | 3715  | 0       | 0        |\n|--------------+----------------------------+-------+---------+----------|\n| TokenHandler | transferFrom               | 3640  | 0       | 0        |\n|--------------+----------------------------+-------+---------+----------|\n| TokenHandler | transferFromAboveAllowance | 3622  | 0       | 0        |\n|--------------+----------------------------+-------+---------+----------|\n| TokenHandler | transferFromAboveBalance   | 3688  | 0       | 0        |\n|--------------+----------------------------+-------+---------+----------|\n| TokenHandler | transferToZero             | 3667  | 0       | 0        |\n╰--------------+----------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 775\n  Bound result 10000000000000000000\n  Bound result 95\n  Bound result 5772\n  Bound result 100000000000000000000\n  Bound result 90000000000000000000\n  Bound result 219\n  Bound result 0\n  Bound result 0\n  Bound result 95\n  Bound result 12000000000000000000\n  Bound result 8393\n  Bound result 31108654171552192571245969477\n  Bound result 0\n  Bound result 916782123\n  Bound result 0\n  Bound result 0\n  Bound result 18\n  Bound result 3\n  Bound result 0\n  Bound result 0\n  Bound result 11\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129766734\n  Bound result 0\n  Bound result 27016105124825451242070\n  Bound result 24576\n  Bound result 2268006746\n  Bound result 0\n  Bound result 1000000000\n  Bound result 1147\n  Bound result 95\n  Bound result 99551748238760251947202536128252101593947730284341174922906180101458976679337\n  Bound result 739\n  Bound result 4700\n  Bound result 408\n  Bound result 558738268808386916139102302\n  Bound result 72299535635984\n  Bound result 8086\n  Bound result 4000000000000000000\n  Bound result 24576\n  Bound result 3934315427485033469275051463901482405388\n  Bound result 3\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007914129640179\n  Bound result 12000000000000000000\n  Bound result 46958033\n  Bound result 0\n  Bound result 638\n  Bound result 5244\n  Bound result 0\n  Bound result 1\n  Bound result 3954\n  Bound result 3000000000000000000\n  Bound result 204\n  Bound result 0\n  Bound result 0\n  Bound result 5676\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007912164468072\n  Bound result 0\n  Bound result 255\n  Bound result 0\n  Bound result 4147\n  Bound result 3971\n  Bound result 1000000000\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007914129636929\n  Bound result 1\n  Bound result 1513\n  Bound result 7477\n  Bound result 96\n  Bound result 1000000000\n  Bound result 20000000000000000000\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007914129646806\n  Bound result 2\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639932\n  Bound result 470\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129630481\n  Bound result 127\n  Bound result 6642\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007912129651730\n  Bound result 9\n  Bound result 633639171727135\n  Bound result 102768659834940700288276279066198674052815949683256920317965377791708654\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007912129656575\n  Bound result 9459\n  Bound result 1956645779141695108751753125239093421542393844265534058752105503026615915942\n  Bound result 1\n  Bound result 14332\n  Bound result 2097\n  Bound result 181645483\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007912129653486\n  Bound result 8263\n  Bound result 4\n  Bound result 11\n  Bound result 1484\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007912129655243\n  Bound result 3858947845\n  Bound result 295\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129632740\n  Bound result 764\n  Bound result 5\n  Bound result 8053\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 9.10s (9.10s CPU time)\n\nRan 3 test suites in 9.11s (9.23s CPU time): 43 tests passed, 0 failed, 0 skipped (43 total tests)\n","passed":true},{"durationMs":56,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Token.approve(address,uint256)\",\"Token.transfer(address,uint256)\",\"Token.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":124,\"foundry.toml\":20,\"remappings.txt\":2,\"src/Token.sol\":16,\"test/Token.edge.t.sol\":253,\"test/Token.invariant.t.sol\":195,\"test/Token.t.sol\":343},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"3b943c398ef7393ffbed594aa1c72c2bb474a0b4e6e848c0af5dd0de90e42565","verifiedTreeHash":"ef7b2efc2427a10de0ff484fb0c2b06b47dac3f8","verifierVersion":"0.1.0+ad90ce4c"},{"checks":[{"durationMs":1009,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 912.27ms\nCompiler run successful!\n","passed":true},{"durationMs":585,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 26 tests for test/Token.t.sol:TokenTest\n[PASS] testFuzz_transferAboveAllowanceReverts(uint256,uint256) (runs: 256, μ: 123472, ~: 123807)\nLogs:\n  Bound result 6\n  Bound result 23183\n\n[PASS] testFuzz_transferAboveBalanceReverts(uint256) (runs: 256, μ: 69072, ~: 69413)\nLogs:\n  Bound result 1302714411526698274621548365665000499903244523272523562818884769302660164\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 256, μ: 92859, ~: 93142)\nLogs:\n  Bound result 672349199856826696052625542\n\n[PASS] testFuzz_transferFromUsesOnlyAuthorizedAmount(uint256,uint256) (runs: 256, μ: 163315, ~: 165218)\nLogs:\n  Bound result 965058739280512096322268934\n  Bound result 168993723144532877209061792\n\n[PASS] test_approvalCanBeReplacedAndRevoked() (gas: 174334)\n[PASS] test_approveEmitsEventWithoutMovingTokens() (gas: 116713)\n[PASS] test_approveRejectsZeroSpender() (gas: 37550)\n[PASS] test_constructorEmitsSingleMint() (gas: 9670)\n[PASS] test_deployerCannotSpendAnotherHoldersTokens() (gas: 95456)\n[PASS] test_entireSupplyCanBeTransferred() (gas: 86085)\n[PASS] test_factoryReceivesEntireSupplyThroughCreate2() (gas: 291747)\n[PASS] test_failedTransferFromRestoresAllowanceAndBalances() (gas: 136882)\n[PASS] test_infiniteAllowanceIsPreserved() (gas: 139638)\n[PASS] test_launchAndClaimTransfersArriveWhole() (gas: 608372)\n[PASS] test_metadataAndInitialSupply() (gas: 94687)\n[PASS] test_noMintBurnOrAdministrativeEntrypoints() (gas: 664784)\n[PASS] test_runtimeContainsNoDelegationOrDestructionOpcodes() (gas: 786610)\n[PASS] test_selfTransferPreservesBalance() (gas: 51410)\n[PASS] test_transferEmitsEventAndDeliversExactAmount() (gas: 91517)\n[PASS] test_transferFromConsumesAllowanceAndEmitsTransfer() (gas: 267731)\n[PASS] test_transferFromRejectsZeroRecipientAndRestoresAllowance() (gas: 114595)\n[PASS] test_transferRejectsInsufficientBalance() (gas: 67724)\n[PASS] test_transferRejectsZeroRecipientEvenForZeroAmount() (gas: 71948)\n[PASS] test_unapprovedSpenderCannotTransfer() (gas: 57800)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73345)\n[PASS] test_zeroTransferFromWithoutApprovalSucceeds() (gas: 78783)\nSuite result: ok. 26 passed; 0 failed; 0 skipped; finished in 11.14ms (43.48ms CPU time)\n\nRan 1 test for test/Token.invariant.t.sol:TokenInvariantTest\n[PASS]\nTokenInvariantTest invariants:\n[PASS] invariant_allTokensRemainAccountedFor\n[PASS] invariant_totalSupplyNeverChanges\n TokenInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+--------------+-------+---------+----------╮\n| Contract     | Selector     | Calls | Reverts | Discards |\n+==========================================================+\n| TokenHandler | approve      | 2702  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transfer     | 2748  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transferFrom | 2742  | 0       | 0        |\n╰--------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 7\n  Bound result 5509\n  Bound result 1\n  Bound result 3240\n  Bound result 0\n  Bound result 0\n  Bound result 456\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 6\n  Bound result 422\n  Bound result 95\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 41\n  Bound result 123\n  Bound result 0\n  Bound result 884\n  Bound result 95\n  Bound result 0\n  Bound result 4\n  Bound result 75\n  Bound result 41\n  Bound result 7\n  Bound result 34428098953296297576\n  Bound result 3\n  Bound result 80\n  Bound result 197\n  Bound result 9\n  Bound result 30\n  Bound result 3\n  Bound result 309\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 513.88ms (512.55ms CPU time)\n\nRan 2 test suites in 515.44ms (525.03ms CPU time): 27 tests passed, 0 failed, 0 skipped (27 total tests)\n","passed":true},{"durationMs":27,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Token.approve(address,uint256)\",\"Token.transfer(address,uint256)\",\"Token.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":124,\"foundry.toml\":20,\"remappings.txt\":2,\"src/Token.sol\":16,\"test/Token.invariant.t.sol\":80,\"test/Token.t.sol\":343},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":353,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":224,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/Token.sol:10: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"85ce8077529c992236fccb302e3006d6948c1a20272fcf48f3989ee4c4634598","verifiedTreeHash":"4d878594d1c45fa77b5465e6dac991ac31e6d4c8","verifierVersion":"0.1.0+ad90ce4c"},{"checks":[{"durationMs":1160,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.04s\nCompiler run successful!\n","passed":true},{"durationMs":672,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 26 tests for test/Token.t.sol:TokenTest\n[PASS] testFuzz_transferAboveAllowanceReverts(uint256,uint256) (runs: 256, μ: 123169, ~: 123855)\nLogs:\n  Bound result 438665723853373318346558825\n  Bound result 99293017143191817333051\n\n[PASS] testFuzz_transferAboveBalanceReverts(uint256) (runs: 256, μ: 69104, ~: 69413)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639934\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 256, μ: 92853, ~: 93154)\nLogs:\n  Bound result 520142520377\n\n[PASS] testFuzz_transferFromUsesOnlyAuthorizedAmount(uint256,uint256) (runs: 256, μ: 163083, ~: 165250)\nLogs:\n  Bound result 3\n  Bound result 1\n\n[PASS] test_approvalCanBeReplacedAndRevoked() (gas: 174334)\n[PASS] test_approveEmitsEventWithoutMovingTokens() (gas: 116713)\n[PASS] test_approveRejectsZeroSpender() (gas: 37550)\n[PASS] test_constructorEmitsSingleMint() (gas: 9670)\n[PASS] test_deployerCannotSpendAnotherHoldersTokens() (gas: 95456)\n[PASS] test_entireSupplyCanBeTransferred() (gas: 86085)\n[PASS] test_factoryReceivesEntireSupplyThroughCreate2() (gas: 291747)\n[PASS] test_failedTransferFromRestoresAllowanceAndBalances() (gas: 136882)\n[PASS] test_infiniteAllowanceIsPreserved() (gas: 139638)\n[PASS] test_launchAndClaimTransfersArriveWhole() (gas: 608372)\n[PASS] test_metadataAndInitialSupply() (gas: 94687)\n[PASS] test_noMintBurnOrAdministrativeEntrypoints() (gas: 664784)\n[PASS] test_runtimeContainsNoDelegationOrDestructionOpcodes() (gas: 786610)\n[PASS] test_selfTransferPreservesBalance() (gas: 51410)\n[PASS] test_transferEmitsEventAndDeliversExactAmount() (gas: 91517)\n[PASS] test_transferFromConsumesAllowanceAndEmitsTransfer() (gas: 267731)\n[PASS] test_transferFromRejectsZeroRecipientAndRestoresAllowance() (gas: 114595)\n[PASS] test_transferRejectsInsufficientBalance() (gas: 67724)\n[PASS] test_transferRejectsZeroRecipientEvenForZeroAmount() (gas: 71948)\n[PASS] test_unapprovedSpenderCannotTransfer() (gas: 57800)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73345)\n[PASS] test_zeroTransferFromWithoutApprovalSucceeds() (gas: 78783)\nSuite result: ok. 26 passed; 0 failed; 0 skipped; finished in 11.66ms (49.86ms CPU time)\n\nRan 1 test for test/Token.invariant.t.sol:TokenInvariantTest\n[PASS]\nTokenInvariantTest invariants:\n[PASS] invariant_allTokensRemainAccountedFor\n[PASS] invariant_totalSupplyNeverChanges\n TokenInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+--------------+-------+---------+----------╮\n| Contract     | Selector     | Calls | Reverts | Discards |\n+==========================================================+\n| TokenHandler | approve      | 2718  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transfer     | 2712  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transferFrom | 2762  | 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 1000000000000000000000000000\n  Bound result 0\n  Bound result 24576\n  Bound result 5\n  Bound result 2588\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 5800794493250656597\n  Bound result 4767095272930940138\n  Bound result 0\n  Bound result 0\n  Bound result 1513\n  Bound result 6136\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1222\n  Bound result 0\n  Bound result 242\n  Bound result 0\n  Bound result 1208\n  Bound result 837\n  Bound result 4\n  Bound result 186802896267382962\n  Bound result 0\n  Bound result 5746\n  Bound result 1859\n  Bound result 0\n  Bound result 0\n  Bound result 90000000000000000000\n  Bound result 3\n  Bound result 1282\n  Bound result 3556\n  Bound result 1526168458722384794\n  Bound result 2514000704\n  Bound result 4398\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 593.19ms (591.43ms CPU time)\n\nRan 2 test suites in 594.99ms (604.86ms CPU time): 27 tests passed, 0 failed, 0 skipped (27 total tests)\n","passed":true},{"durationMs":41,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Token.approve(address,uint256)\",\"Token.transfer(address,uint256)\",\"Token.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":124,\"foundry.toml\":20,\"launch.json\":20,\"remappings.txt\":2,\"src/Token.sol\":16,\"test/Token.invariant.t.sol\":80,\"test/Token.t.sol\":343},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"fd83a1e1b3a435b3865edcf6cacad2e146b93ba98836b9eb423ad61aaf9e5f10","verifiedTreeHash":"e16675d167a6e2cbeb01af0ebf9b349249d2ed3c","verifierVersion":"0.1.0+ad90ce4c"}]}