{"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":"186ffe17-e3a0-43fd-8c34-34a63a77076b","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"72e0c1ab72bed3103c9f8722d967d51d5cd080e9849e8de1e6d6ea7197570794","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":"6dada52c321d11e00d4fdd9e2a72c48d56942eb58f7a6c8298d3d932acc6a2db","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":"a6816493ad83e522dd601cb5ccf0fabc24c7220b68082c099568b2033d437c72","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":"623bdc63a0d1dcd971520669d6a41617b470f2c9c193da52fa029b7737c1c270","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":"07f769278b3c9124812a03c52d59b3160bafd97c53219be82eb81fbb5d4ade00","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":"2d9c90d2a55db7c052f9eed8fdcb128df2fb694091ae754125ac32613c635ea0","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":"fc94f427967a13b3cf7ddebbe2da580e7be2e63fb29757bfa35b4476a7fb7bf0","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"bffe73985cf3ee75899ec2b9da51d43ae8602889b042242d62228c541df4e17f","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: Workaholic ID Agent (WORKER).\nToken name: Workaholic ID Agent\nToken symbol: WORKER\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"b7ead60590df18e1f231a05f24e667297c9e3d11e5ad8f4b1fffe83fdba4724f","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"186ffe17-e3a0-43fd-8c34-34a63a77076b","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-992-workaholic-id-agent"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52265","feedbackHash":"8ce42ea2eb3c11d51c962de27e272552ea27088986ec3ba96da3f8cf230e6e56","nodeKey":"audit_economics","submissionHash":"72e0c1ab72bed3103c9f8722d967d51d5cd080e9849e8de1e6d6ea7197570794","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52254","feedbackHash":"7cb6f954cec913e792ddbfbfe2e26a14d8120c41860efc1b1ccc04432e4f79c0","nodeKey":"audit_flow","submissionHash":"6dada52c321d11e00d4fdd9e2a72c48d56942eb58f7a6c8298d3d932acc6a2db","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51166","feedbackHash":"addaee30a18f31878d16a064251e40cac1edda82455848d44f839e1609b7ab2d","nodeKey":"audit_judge","submissionHash":"a6816493ad83e522dd601cb5ccf0fabc24c7220b68082c099568b2033d437c72","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52264","feedbackHash":"d2bebcaeb50599b1d1de815688919c625f91597f35e98d5f61cd545a9645327d","nodeKey":"audit_math","submissionHash":"623bdc63a0d1dcd971520669d6a41617b470f2c9c193da52fa029b7737c1c270","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52124","feedbackHash":"df8a395338d898b83b026381b7c5f5ef6b031923fdb219fa8f2035797b538a3a","nodeKey":"audit_permissions","submissionHash":"07f769278b3c9124812a03c52d59b3160bafd97c53219be82eb81fbb5d4ade00","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51332","feedbackHash":"5173cfd04fb644a2e156071170cb0cebfb8207191ec59eecb662779837aff42e","nodeKey":"build_contract_project","submissionHash":"2d9c90d2a55db7c052f9eed8fdcb128df2fb694091ae754125ac32613c635ea0","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51330","feedbackHash":"b75e2fd8574b7b1490cd2911020d861593bd618eacb16375a9dd84403f6909bb","nodeKey":"manifest","submissionHash":"fc94f427967a13b3cf7ddebbe2da580e7be2e63fb29757bfa35b4476a7fb7bf0","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"50954","feedbackHash":"963f8aa46d2e16a60ec198e2d535f2870ef8d56d9b53a6b5085e865dfe4d10a8","nodeKey":"write_foundry_tests","submissionHash":"bffe73985cf3ee75899ec2b9da51d43ae8602889b042242d62228c541df4e17f","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"88d737ea2ba9e1b04818149b7202014371c392c7720a4f00d45c938c4eb20a1a","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"03845cacb54c3a73","findings":[],"hash":"07f769278b3c9124812a03c52d59b3160bafd97c53219be82eb81fbb5d4ade00","nodeId":"3c4209df-2a50-44ad-9845-1ac37146bce6","outcome":"completed","summary":"Review complete. No defects found in the Access Control, Trust Gap and Asymmetry areas, and the findings file is written.\n\n**What the token is.** `src/Token.sol` is a stock OpenZeppelin v5.0.2 ERC-20 whose constructor mints the full supply once to msg.sender. It adds no roles, modifiers, setters, hooks, exemptions, external calls or assembly, so every failure mode in the three guides is structurally absent rather than guarded.\n\n**What I verified.**\n- Permission map: the compiled ABI exposes exactly the nine ERC-20 functions plus one constant getter. Fuzzed arbitrary selectors from a stranger and from the factory all revert. There is no receive or fallback, and plain ETH sends revert.\n- Deployer power: a CREATE2 factory stub receives the whole supply and its caller receives nothing. The factory cannot pull from a holder without allowance and cannot spend beyond its balance.\n- Asymmetry: `transfer` and `transferFrom` produce identical state deltas for the same amount under fuzzing. Finite allowances decrement, max allowance stays, and a reverted `transferFrom` leaves allowance and balances untouched.\n- Trust gap: all five vendored OpenZeppelin files are byte-identical to upstream v5.0.2. Total supply never changes under fuzzed arbitrary calls, and transfers to a contract make no callback.\n- Static analysis leads: Slither reported nothing. The aderyn large-literal note is style only, since the literal equals exactly 1e27 and matches the README and tests.\n\n**Test runs.** The 31 shipped unit, fuzz and invariant tests pass. My 12 scratch tests under `test/scratch/` also pass and are gitignored, so the working tree stays clean.\n\n**Output.** `.imd-findings.json` holds an empty findings list and eight coverage rows: one for each of the three listed entry points, plus the constructor mint, hidden-entry-point, dependency-integrity, forbidden-opcode and aderyn-lead invariants, all marked `holds`. The one trust assumption to document is that the factory holds 100% of supply at deployment and the token has no recovery path, which is by design. The real Uniswap v4 seed and swap could not run locally because the protected harness needs the factory, pool manager and environment inputs, but the token has no transfer-rule logic that could affect those flows.","treeHash":null,"usage":{"cachedInputTokens":749611,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":12907,"runtime":"claude","turns":27,"wallClockMs":209740}},{"artifacts":[],"attempt":1,"bundleHash":"a1537b3737297e717a79df6874436df59852ae22cb905e23ff4b7da0d0fc98e9","device":"c0e6ac7ffff8e2ca","findings":[],"hash":"2d9c90d2a55db7c052f9eed8fdcb128df2fb694091ae754125ac32613c635ea0","nodeId":"15e52add-2cb0-4da3-89dc-758e761bebc2","outcome":"completed","summary":"Implemented WORKER with the exact name, 18 decimals, and 1,000,000,000 tokens minted once to the deployer.\n\n- Vendored dependencies for offline builds.\n- Documented assumptions, deployment parameters, and operational responsibilities in `README.md`.\n- Solidity 0.8.26: `forge build`, all 31 tests, and `forge fmt --check` pass, including offline testing with an empty environment.\n\nThe protected pool integration harness was not run; it requires platform launch contracts and configuration.","treeHash":"53b28577f88948fc6620eb50fac51aec2d75a574","usage":{"cachedInputTokens":495360,"inputTokens":63759,"model":"gpt-6-astra","outputTokens":12246,"runtime":"codex","turns":5,"wallClockMs":360988}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"c97fd6a73e3737dc","findings":[],"hash":"623bdc63a0d1dcd971520669d6a41617b470f2c9c193da52fa029b7737c1c270","nodeId":"c2471625-fa29-4bc4-90c1-6053ad4af635","outcome":"completed","summary":"**Review complete. No defects found in the Math Precision, Boundary or Numerical Gap areas.** The findings file at `.imd-findings.json` holds an empty findings list and seven coverage rows, all `holds`.\n\n**What the token is.** `src/Token.sol` is unmodified OpenZeppelin v5.0.2 ERC-20 with one constant and a constructor mint to the deployer. There is no division, fixed-point scale, downcast, external call, payable path, sentinel branch beyond the zero-address checks, or bytes decoding anywhere in it. Most of the three checklists therefore have nothing to attach to.\n\n**What I verified with a scratch Foundry suite (nine probes, all passing, removed afterwards):**\n- The constant equals exactly 10^27, and whole-token supply derives back to one billion with zero remainder. This closes the aderyn large-literal lead.\n- Every launch split the factory or harness computes is exact. The supply is divisible by 10,000, so every poolBps from 1 to 9000 truncates nothing, and the swarm's 10% plus its 2% and 8% sub-shares are whole minor units. The harness intermediate `supply * 10_000` fits in uint256.\n- Off-by-one at balance and allowance boundaries reverts on the high side and spends to zero on the exact side.\n- The max-uint allowance is never decremented; max minus one is finite and decrements normally.\n- The unchecked additions in `_update` cannot wrap since no balance can exceed the fixed supply. Fuzzed and stateful conservation holds.\n- `transferFrom` with a zero-address owner reverts before any state change, with `ERC20InvalidApprover` for a zero value and `ERC20InsufficientAllowance` otherwise. No mint path exists through any ABI selector.\n\n**Coverage.** All three listed entry points (approve, transfer, transferFrom) are marked `holds`, plus four invariant rows covering the supply constant, supply conservation, exact launch splits, and the absence of external boundaries. Nothing was left unreached. The existing 31-test project suite also passes.\n\n**Out of scope but noted for the judge, not reported as defects:** no `launch.json` manifest exists in the tree yet, which the assignment says is expected at this stage. The token's zero-value `transferFrom` emitting a `Transfer` event without allowance is standard OpenZeppelin behavior and documented in the README.","treeHash":null,"usage":{"cachedInputTokens":579214,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":12488,"runtime":"claude","turns":24,"wallClockMs":219103}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"584bd638e7e022f0","findings":[],"hash":"6dada52c321d11e00d4fdd9e2a72c48d56942eb58f7a6c8298d3d932acc6a2db","nodeId":"2098f64c-1756-4dae-b431-d412088cff19","outcome":"completed","summary":"The review is complete with no defects found. The findings file is written and the working tree is unchanged apart from it.\n\n**What I reviewed.** The deliverable is a single contract, `src/Token.sol`, that inherits the unmodified OpenZeppelin v5.0.2 ERC-20 and mints the whole supply once to the constructor's caller. I applied the Execution Trace, Periphery and First Principles guides, plus the Senior Auditor's Mindset and the validation gates.\n\n**Execution Trace.** I traced all three state-changing entry points through the inherited code with concrete values: zero, a normal amount, the full supply, the maximum uint, and the zero address as recipient or spender. Every path either moves the exact requested amount or reverts atomically with the ERC-6093 error, and the total supply is never written after construction. A scratch test of the launch flows passed: a CREATE2 factory receives the whole supply, the distributor and claimant receive whole shares, an approve-then-transferFrom settlement pulls exactly what it asked for, and the constructor rejects ETH.\n\n**Periphery.** This was the main surface, since the token's own code is three lines. I fetched the upstream v5.0.2 and v1.9.7 archives. Both hashes match the pinned values, the six OpenZeppelin files are byte-identical to upstream, and the seven forge-std files that differ do so only by whitespace reflow. No submodule exists.\n\n**First Principles.** The supply literal equals ten to the twenty-seventh power as the README claims, the constructor is non-payable with no arguments, the ABI exposes no fallback, receive, mint, burn or role functions, and the storage layout holds only the five standard ERC-20 slots. The aderyn large-literal lead is style only.\n\n**Coverage.** All three listed entry points hold, and I added rows for the constructor, three invariants, both vendored libraries and the static-analysis lead. Nothing was left unreached. The full suite of 31 tests passes, including the 128-run stateful invariant.\n\n**Trust assumptions to carry forward.** There is no admin role, so nothing is documented as privileged. The factory address that deploys the token receives everything, so the launch operator's correctness is the only dependency outside this code.","treeHash":null,"usage":{"cachedInputTokens":654365,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":10575,"runtime":"claude","turns":23,"wallClockMs":133312}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"8db4eebdd7bd2744","findings":[],"hash":"72e0c1ab72bed3103c9f8722d967d51d5cd080e9849e8de1e6d6ea7197570794","nodeId":"8b3a226e-855c-4af9-8b79-6ce1e9515f73","outcome":"completed","summary":"The economics review of the WORKER token is complete and found no defects. The findings file at the repository root holds an empty findings list and seven coverage rows, one for each listed entry point plus four invariant and economics rows.\n\n**What I checked against the Economic Security, Invariant and Flow Gap guides**\n\n- **Supply and recipient.** The constructor mints exactly 10^27 minor units with 18 decimals to msg.sender. A CREATE2 deployment through a factory probe credits the factory and not its caller. Nothing else writes total supply. The ABI exposes no mint, burn or burnFrom, and the runtime bytecode contains no DELEGATECALL, CALLCODE, SELFDESTRUCT or any external call opcode.\n- **Launch flows arrive whole.** The token is unmodified OpenZeppelin v5.0.2. I hashed the vendored ERC20, Context and ERC-6093 files against the upstream tag and they match byte for byte. Transfers move exactly the stated amount with no fee, burn, rebase, exemption or recipient callback. A scratch test ran the factory to distributor to pool manager to remainder sequence and every leg landed exactly, with the factory at zero and total supply unchanged.\n- **Split arithmetic.** Because 10^27 divides by 10 and by 10,000, the swarm's ten percent, the two and eight percent halves, and any poolBps from 1 to 9000 produce no truncation. A fuzz run over poolBps confirmed zero dust at the token level.\n- **Allowance semantics.** Finite allowances decrement, the maximum allowance is sticky, over-spend reverts before any balance write, and a failed spend leaves balances and allowance untouched.\n- **Dependencies and seams.** The token calls nothing external and has no oracle, hook or callback dependency, so there is no seam where a periphery return could diverge from what the trace assumes.\n\n**Static analysis leads.** Slither reported nothing. Aderyn's large-numeric-literal note on the supply constant is a style remark about a compile-time constant far below the uint256 limit, not a defect.\n\n**Not covered.** The protected pool harness needs Uniswap v4 core and the launch liquidity helpers, which are not in this tree, so I did not execute a real seed or swap. The project's own suite of 31 tests plus my six scratch tests pass. No files other than the findings output and the git-ignored scratch test were touched.","treeHash":null,"usage":{"cachedInputTokens":485373,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":10715,"runtime":"claude","turns":18,"wallClockMs":146150}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"45aa937328087de3","findings":[],"hash":"a6816493ad83e522dd601cb5ccf0fabc24c7220b68082c099568b2033d437c72","nodeId":"47ae8f7a-33c3-4bda-9925-b3cbc40a8266","outcome":"completed","summary":"The review is complete. `.imd-findings.json` holds an empty findings list and a full coverage record. No source files were changed, and the scratch test directory was removed.\n\n**Outcome:** no defects found. The five specialists reported nothing, and nothing reproduced for me either.\n\n**What I verified**\n\n- `src/Token.sol` is a 16-line fixed-supply token inheriting unmodified OpenZeppelin ERC20. The only state-changing entry points are approve, transfer and transferFrom, all plain OpenZeppelin implementations with no overrides, hooks, fees or admin surface.\n- The vendored OpenZeppelin files are byte-identical to upstream v5.0.2. I fetched each of the five files and compared SHA-256 hashes. No git submodules are present.\n- The constructor mints exactly the manifest supply to the deployer, and decimals read 18. The manifest's sqrtPriceX96 recomputes exactly from the stated market cap and supply.\n- A scratch Foundry test mirroring the protected floor's non-pool checks passed. All 22 admin, mint, pause and blacklist selectors revert from the deployer, launch flows move exact amounts, and the runtime bytecode contains no DELEGATECALL, CALLCODE or SELFDESTRUCT.\n- The project's own 44 tests, including the invariant suite, pass.\n\n**Static analysis leads:** the single aderyn low-impact line on the large numeric literal is a style note. The literal evaluates to exactly the manifest supply, so it is not a defect.\n\n**Coverage:** all three entry points are marked `holds`, plus four invariant and manifest rows with one-line reasons.","treeHash":null,"usage":{"cachedInputTokens":309097,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":6713,"runtime":"claude","turns":15,"wallClockMs":112576}},{"artifacts":[],"attempt":1,"bundleHash":"241d50a4cb818346560dca1baf7e40cd83b04e55702bda4bf8fb5fdf2038afd0","device":"cc309a7afc70b0b1","findings":[],"hash":"bffe73985cf3ee75899ec2b9da51d43ae8602889b042242d62228c541df4e17f","nodeId":"3572a63c-0d15-4b1a-92d8-bb5bc96ffaae","outcome":"completed","summary":"Added boundary and failure-path fuzz tests, plus independent balance and allowance tracking across random call sequences.\n\nOffline `forge build` and `forge test` pass: 44 tests, including 16,384 invariant calls. No defects found. Only files under `test/` changed.","treeHash":"66f0a428c829868b6ed094ef8475d27a92456813","usage":{"cachedInputTokens":484352,"inputTokens":56450,"model":"gpt-6-astra","outputTokens":9090,"runtime":"codex","turns":5,"wallClockMs":258100}},{"artifacts":[],"attempt":1,"bundleHash":"a78f2273baec5bb8897be2336b0c6e00c12da3a06a6696caec4ce0377a3a494c","device":"c5099ef07f22abee","findings":[],"hash":"fc94f427967a13b3cf7ddebbe2da580e7be2e63fb29757bfa35b4476a7fb7bf0","nodeId":"a01c59e5-41ce-4ef6-98f1-fd20875f1005","outcome":"completed","summary":"Created [launch.json](/root/.identitymd/work/186ffe17-e3a0-43fd-8c34-34a63a77076b/a01c59e5-41ce-4ef6-98f1-fd20875f1005/launch.json) with exact supply, constructor arguments, economics, and requested pair token.\n\nValidation passed: supplied schema, ABI checks, `forge build`, and all 31 local tests. Only `launch.json` changed.","treeHash":"f40bc55354b71b8c2a1c0858d30c88522ea9516c","usage":{"cachedInputTokens":203520,"inputTokens":23475,"model":"gpt-6-astra","outputTokens":3351,"runtime":"codex","turns":3,"wallClockMs":104757}}],"verification":[{"checks":[{"durationMs":988,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 906.08ms\nCompiler run successful!\n","passed":true},{"durationMs":560,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 30 tests for test/Token.t.sol:TokenTest\n[PASS] testFuzz_delegatedTransfersConserveSupplyAndAllowance(uint256,uint256) (runs: 256, μ: 162353, ~: 165278)\nLogs:\n  Bound result 720545821530805034779746611\n  Bound result 339617884232845399812531702\n\n[PASS] testFuzz_transfersAboveBalanceAlwaysRevert(uint256,uint256) (runs: 256, μ: 126644, ~: 127081)\nLogs:\n  Bound result 7451\n  Bound result 7\n\n[PASS] testFuzz_transfersConserveSupply(uint256,address) (runs: 256, μ: 92895, ~: 93223)\nLogs:\n  Bound result 3335876866454\n\n[PASS] test_approveEmitsAndReplacesAllowance() (gas: 119335)\n[PASS] test_approveZeroSpenderReverts() (gas: 37618)\n[PASS] test_constructorEmitsMintTransfer() (gas: 22505)\n[PASS] test_create2MintsToFactoryInsteadOfItsCaller() (gas: 225611)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 151771)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 139333)\n[PASS] test_insufficientAllowanceRevertsAtomically() (gas: 115752)\n[PASS] test_insufficientBalanceRevertsAtomically() (gas: 120059)\n[PASS] test_launchDistributionAndClaimsArriveWhole() (gas: 333426)\n[PASS] test_maximumTransferRevertsWithoutOverflow() (gas: 54976)\n[PASS] test_metadataAndEntireInitialSupply() (gas: 107517)\n[PASS] test_noMintBurnOrPrivilegedControlsForDeployerOrStranger() (gas: 893182)\n[PASS] test_revokedAllowanceCannotBeSpent() (gas: 130288)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 786655)\n[PASS] test_selfTransferPreservesBalance() (gas: 51410)\n[PASS] test_transferEntireSupplyAndBack() (gas: 149189)\n[PASS] test_transferFromInsufficientBalanceRestoresAllowance() (gas: 126197)\n[PASS] test_transferFromSelfStillSpendsAllowance() (gas: 103249)\n[PASS] test_transferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 241773)\n[PASS] test_transferFromToZeroRestoresAllowance() (gas: 114047)\n[PASS] test_transferReturnsTrueAndEmitsExactAmount() (gas: 91461)\n[PASS] test_transferToContractDoesNotInvokeCallback() (gas: 171787)\n[PASS] test_transferToZeroRevertsWithoutBurning() (gas: 47643)\n[PASS] test_unapprovedCallerCannotUseAnotherSpendersAllowance() (gas: 115728)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73367)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 66600)\n[PASS] test_zeroTransferToZeroAlsoReverts() (gas: 30412)\nSuite result: ok. 30 passed; 0 failed; 0 skipped; finished in 8.25ms (29.62ms CPU time)\n\nRan 1 test for test/TokenInvariant.t.sol:TokenInvariantTest\n[PASS] invariant_supplyAndBalancesAreConserved() (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+----------+-------+---------+----------╮\n| Contract     | Selector | Calls | Reverts | Discards |\n+======================================================+\n| TokenHandler | approve  | 2745  | 0       | 0        |\n|--------------+----------+-------+---------+----------|\n| TokenHandler | move     | 2745  | 0       | 0        |\n|--------------+----------+-------+---------+----------|\n| TokenHandler | spend    | 2702  | 0       | 0        |\n╰--------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 60\n  Bound result 0\n  Bound result 0\n  Bound result 664\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 24576\n  Bound result 0\n  Bound result 18\n  Bound result 4751\n  Bound result 0\n  Bound result 1099\n  Bound result 5261\n  Bound result 249999999999999999999940522\n  Bound result 0\n  Bound result 0\n  Bound result 499999999999999999999935278\n  Bound result 0\n  Bound result 749999999999999999999938990\n  Bound result 24873131308623156983\n  Bound result 127\n  Bound result 24576\n  Bound result 2\n  Bound result 0\n  Bound result 67\n  Bound result 19\n  Bound result 1313373041\n  Bound result 51\n  Bound result 3\n  Bound result 255\n  Bound result 96\n  Bound result 244\n  Bound result 24767\n  Bound result 0\n  Bound result 5178877178729715\n  Bound result 0\n  Bound result 6\n  Bound result 70\n  Bound result 318\n  Bound result 48454798857332378284335430\n  Bound result 3\n  Bound result 198\n  Bound result 255\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 492.34ms (491.25ms CPU time)\n\nRan 2 test suites in 493.59ms (500.59ms CPU time): 31 tests passed, 0 failed, 0 skipped (31 total tests)\n","passed":true},{"durationMs":28,"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\":112,\"foundry.toml\":20,\"remappings.txt\":2,\"src/Token.sol\":16,\"test/Token.t.sol\":369,\"test/TokenInvariant.t.sol\":76},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":392,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":194,"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":"2d9c90d2a55db7c052f9eed8fdcb128df2fb694091ae754125ac32613c635ea0","verifiedTreeHash":"53b28577f88948fc6620eb50fac51aec2d75a574","verifierVersion":"0.1.0+ad90ce4c"},{"checks":[{"durationMs":1249,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.15s\nCompiler run successful!\n","passed":true},{"durationMs":4618,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 13 tests for test/TokenEdges.t.sol:TokenEdgesTest\n[PASS] testFuzz_allowanceFailureWithSufficientBalanceIsAtomic(uint256,uint256) (runs: 1000, μ: 169522, ~: 169918)\nLogs:\n  Bound result 1000000000\n  Bound result 999999999999999999000000244\n\n[PASS] testFuzz_approvalReplacementIsIdempotentAndIsolated(uint256,uint256) (runs: 1000, μ: 329958, ~: 330756)\n[PASS] testFuzz_delegatedBalanceFailureRestoresFiniteOrInfiniteAllowance(uint256,uint256,bool) (runs: 1000, μ: 367872, ~: 366731)\nLogs:\n  Bound result 398654928479745898143771506\n  Bound result 3218590691986680803460066172896841101699591895436649\n\n[PASS] testFuzz_invalidRecipientRestoresAllowance(uint256,uint256) (runs: 1000, μ: 170162, ~: 170494)\nLogs:\n  Bound result 1000000000\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007912129640180\n\n[PASS] testFuzz_splitTransfersAndRoundTripPreserveValue(uint256,uint256) (runs: 1000, μ: 321750, ~: 322746)\nLogs:\n  Bound result 126224084043254120404\n  Bound result 78167793491743515144\n\n[PASS] testFuzz_zeroDelegatedTransferPreservesExistingAllowance(uint256) (runs: 1000, μ: 170201, ~: 170458)\n[PASS] test_failedDelegatedSelfTransferRestoresAllowance() (gas: 165749)\n[PASS] test_largestFiniteAllowanceDecrementsAcrossRepeatedSpends() (gas: 263579)\n[PASS] test_oneSmallestUnitTransfersWithoutRounding() (gas: 185191)\n[PASS] test_ownerCallingTransferFromNeedsOwnAllowance() (gas: 284226)\n[PASS] test_replacingInfiniteAllowanceImmediatelyLimitsSpender() (gas: 301092)\n[PASS] test_selfTransferStillRequiresEnoughBalance() (gas: 98844)\n[PASS] test_zeroDelegatedTransferToZeroReverts() (gas: 160015)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 72.34ms (420.32ms CPU time)\n\nRan 30 tests for test/Token.t.sol:TokenTest\n[PASS] testFuzz_delegatedTransfersConserveSupplyAndAllowance(uint256,uint256) (runs: 256, μ: 162725, ~: 165302)\nLogs:\n  Bound result 231397560992843407715464176\n  Bound result 170160632807874324593419615\n\n[PASS] testFuzz_transfersAboveBalanceAlwaysRevert(uint256,uint256) (runs: 256, μ: 126829, ~: 127171)\nLogs:\n  Bound result 231397560992843407715464176\n  Bound result 33782897124099988832928372769367061073561985976041754528648\n\n[PASS] testFuzz_transfersConserveSupply(uint256,address) (runs: 256, μ: 92821, ~: 93199)\nLogs:\n  Bound result 2\n\n[PASS] test_approveEmitsAndReplacesAllowance() (gas: 119335)\n[PASS] test_approveZeroSpenderReverts() (gas: 37618)\n[PASS] test_constructorEmitsMintTransfer() (gas: 22505)\n[PASS] test_create2MintsToFactoryInsteadOfItsCaller() (gas: 225611)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 151771)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 139333)\n[PASS] test_insufficientAllowanceRevertsAtomically() (gas: 115752)\n[PASS] test_insufficientBalanceRevertsAtomically() (gas: 120059)\n[PASS] test_launchDistributionAndClaimsArriveWhole() (gas: 333426)\n[PASS] test_maximumTransferRevertsWithoutOverflow() (gas: 54976)\n[PASS] test_metadataAndEntireInitialSupply() (gas: 107517)\n[PASS] test_noMintBurnOrPrivilegedControlsForDeployerOrStranger() (gas: 893182)\n[PASS] test_revokedAllowanceCannotBeSpent() (gas: 130288)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 786655)\n[PASS] test_selfTransferPreservesBalance() (gas: 51410)\n[PASS] test_transferEntireSupplyAndBack() (gas: 149189)\n[PASS] test_transferFromInsufficientBalanceRestoresAllowance() (gas: 126197)\n[PASS] test_transferFromSelfStillSpendsAllowance() (gas: 103249)\n[PASS] test_transferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 241773)\n[PASS] test_transferFromToZeroRestoresAllowance() (gas: 114047)\n[PASS] test_transferReturnsTrueAndEmitsExactAmount() (gas: 91461)\n[PASS] test_transferToContractDoesNotInvokeCallback() (gas: 171787)\n[PASS] test_transferToZeroRevertsWithoutBurning() (gas: 47643)\n[PASS] test_unapprovedCallerCannotUseAnotherSpendersAllowance() (gas: 115728)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73367)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 66600)\n[PASS] test_zeroTransferToZeroAlsoReverts() (gas: 30412)\nSuite result: ok. 30 passed; 0 failed; 0 skipped; finished in 72.36ms (156.81ms CPU time)\n\nRan 1 test for test/TokenInvariant.t.sol:TokenInvariantTest\n[PASS]\nTokenInvariantTest invariants:\n[PASS] invariant_allowancesMatchApprovalsAndAuthorizedSpending\n[PASS] invariant_eachHolderReceivesExactlyWhatWasTransferred\n[PASS] invariant_supplyAndBalancesAreConserved\n TokenInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------+---------------------+-------+---------+----------╮\n| Contract     | Selector            | Calls | Reverts | Discards |\n+=================================================================+\n| TokenHandler | approve             | 1615  | 0       | 0        |\n|--------------+---------------------+-------+---------+----------|\n| TokenHandler | approveBoundary     | 1621  | 0       | 0        |\n|--------------+---------------------+-------+---------+----------|\n| TokenHandler | move                | 1623  | 0       | 0        |\n|--------------+---------------------+-------+---------+----------|\n| TokenHandler | moveAboveBalance    | 1656  | 0       | 0        |\n|--------------+---------------------+-------+---------+----------|\n| TokenHandler | rejectZeroRecipient | 1647  | 0       | 0        |\n|--------------+---------------------+-------+---------+----------|\n| TokenHandler | rejectZeroSpender   | 1643  | 0       | 0        |\n|--------------+---------------------+-------+---------+----------|\n| TokenHandler | revokeThenSpend     | 1692  | 0       | 0        |\n|--------------+---------------------+-------+---------+----------|\n| TokenHandler | spend               | 1638  | 0       | 0        |\n|--------------+---------------------+-------+---------+----------|\n| TokenHandler | spendAboveAllowance | 1588  | 0       | 0        |\n|--------------+---------------------+-------+---------+----------|\n| TokenHandler | spendAboveBalance   | 1661  | 0       | 0        |\n╰--------------+---------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129640062\n  Bound result 2\n  Bound result 95\n  Bound result 100\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129645041\n  Bound result 917977473271046311748067258655037622845262362007\n  Bound result 8\n  Bound result 192063813026571635355095945\n  Bound result 127\n  Bound result 57936186973428364644904162\n  Bound result 250000000000000000000000000\n  Bound result 9081\n  Bound result 1000000000000000000000000000\n  Bound result 0\n  Bound result 1\n  Bound result 115792089237316195423570985008687907853269984665640121975644557436277774534943\n  Bound result 183803492816716515177603857\n  Bound result 124447366930632521052221538\n  Bound result 115792089237316195423570985008687907853269984665640506103270610579548484752524\n  Bound result 21107998595077071858564422\n  Bound result 115792089237316195423570985008687907853269984665640189592090653375392077418401\n  Bound result 115792089237316195423570985008687907853269984665640121975644557436277774537347\n  Bound result 115792089237316195423570985008687907853269984665640121975644557436277774535016\n  Bound result 7115\n  Bound result 119877\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.54s (4.54s CPU time)\n\nRan 3 test suites in 4.54s (4.69s CPU time): 44 tests passed, 0 failed, 0 skipped (44 total tests)\n","passed":true},{"durationMs":33,"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\":112,\"foundry.toml\":20,\"remappings.txt\":2,\"src/Token.sol\":16,\"test/Token.t.sol\":369,\"test/TokenEdges.t.sol\":198,\"test/TokenInvariant.t.sol\":206},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"bffe73985cf3ee75899ec2b9da51d43ae8602889b042242d62228c541df4e17f","verifiedTreeHash":"66f0a428c829868b6ed094ef8475d27a92456813","verifierVersion":"0.1.0+ad90ce4c"},{"checks":[{"durationMs":953,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 870.37ms\nCompiler run successful!\n","passed":true},{"durationMs":536,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 30 tests for test/Token.t.sol:TokenTest\n[PASS] testFuzz_delegatedTransfersConserveSupplyAndAllowance(uint256,uint256) (runs: 256, μ: 162863, ~: 165302)\nLogs:\n  Bound result 242\n  Bound result 177\n\n[PASS] testFuzz_transfersAboveBalanceAlwaysRevert(uint256,uint256) (runs: 256, μ: 126929, ~: 127215)\nLogs:\n  Bound result 16\n  Bound result 5956\n\n[PASS] testFuzz_transfersConserveSupply(uint256,address) (runs: 256, μ: 92595, ~: 93223)\nLogs:\n  Bound result 216779237313282158574600641\n\n[PASS] test_approveEmitsAndReplacesAllowance() (gas: 119335)\n[PASS] test_approveZeroSpenderReverts() (gas: 37618)\n[PASS] test_constructorEmitsMintTransfer() (gas: 22505)\n[PASS] test_create2MintsToFactoryInsteadOfItsCaller() (gas: 225611)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 151771)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 139333)\n[PASS] test_insufficientAllowanceRevertsAtomically() (gas: 115752)\n[PASS] test_insufficientBalanceRevertsAtomically() (gas: 120059)\n[PASS] test_launchDistributionAndClaimsArriveWhole() (gas: 333426)\n[PASS] test_maximumTransferRevertsWithoutOverflow() (gas: 54976)\n[PASS] test_metadataAndEntireInitialSupply() (gas: 107517)\n[PASS] test_noMintBurnOrPrivilegedControlsForDeployerOrStranger() (gas: 893182)\n[PASS] test_revokedAllowanceCannotBeSpent() (gas: 130288)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 786655)\n[PASS] test_selfTransferPreservesBalance() (gas: 51410)\n[PASS] test_transferEntireSupplyAndBack() (gas: 149189)\n[PASS] test_transferFromInsufficientBalanceRestoresAllowance() (gas: 126197)\n[PASS] test_transferFromSelfStillSpendsAllowance() (gas: 103249)\n[PASS] test_transferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 241773)\n[PASS] test_transferFromToZeroRestoresAllowance() (gas: 114047)\n[PASS] test_transferReturnsTrueAndEmitsExactAmount() (gas: 91461)\n[PASS] test_transferToContractDoesNotInvokeCallback() (gas: 171787)\n[PASS] test_transferToZeroRevertsWithoutBurning() (gas: 47643)\n[PASS] test_unapprovedCallerCannotUseAnotherSpendersAllowance() (gas: 115728)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73367)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 66600)\n[PASS] test_zeroTransferToZeroAlsoReverts() (gas: 30412)\nSuite result: ok. 30 passed; 0 failed; 0 skipped; finished in 8.12ms (27.94ms CPU time)\n\nRan 1 test for test/TokenInvariant.t.sol:TokenInvariantTest\n[PASS] invariant_supplyAndBalancesAreConserved() (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+----------+-------+---------+----------╮\n| Contract     | Selector | Calls | Reverts | Discards |\n+======================================================+\n| TokenHandler | approve  | 2725  | 0       | 0        |\n|--------------+----------+-------+---------+----------|\n| TokenHandler | move     | 2761  | 0       | 0        |\n|--------------+----------+-------+---------+----------|\n| TokenHandler | spend    | 2706  | 0       | 0        |\n╰--------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 354\n  Bound result 40377521737702112158015252\n  Bound result 40\n  Bound result 11\n  Bound result 0\n  Bound result 123000000000000000000\n  Bound result 0\n  Bound result 1745\n  Bound result 0\n  Bound result 3725\n  Bound result 43052996108664477250691733\n  Bound result 242\n  Bound result 1264811664\n  Bound result 13956\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 127\n  Bound result 0\n  Bound result 0\n  Bound result 241\n  Bound result 105427582989064622907284907\n  Bound result 0\n  Bound result 40\n  Bound result 0\n  Bound result 10\n  Bound result 5383\n  Bound result 1949\n  Bound result 388\n  Bound result 49217313362951302810786739\n  Bound result 0\n  Bound result 11\n  Bound result 184885302380759333672796149\n  Bound result 242\n  Bound result 96\n  Bound result 4\n  Bound result 295612110849800766206662\n  Bound result 2\n  Bound result 211801473\n  Bound result 5781\n  Bound result 1\n  Bound result 0\n  Bound result 15731495153832423152746348\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 470.54ms (469.30ms CPU time)\n\nRan 2 test suites in 471.66ms (478.66ms CPU time): 31 tests passed, 0 failed, 0 skipped (31 total tests)\n","passed":true},{"durationMs":28,"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\":112,\"foundry.toml\":20,\"launch.json\":20,\"remappings.txt\":2,\"src/Token.sol\":16,\"test/Token.t.sol\":369,\"test/TokenInvariant.t.sol\":76},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"fc94f427967a13b3cf7ddebbe2da580e7be2e63fb29757bfa35b4476a7fb7bf0","verifiedTreeHash":"f40bc55354b71b8c2a1c0858d30c88522ea9516c","verifierVersion":"0.1.0+ad90ce4c"}]}