{"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":"2fd7fbe5-100e-4aca-8625-cde62abe902c","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"d8d4631a5d8df149e01187203e1d71ec1ea19acbeed5fde909bdc73f2f40c909","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":"537f7901c6f9bc2cc3a476d01bf995999a24656c5dfe400ed58e245efda57ae3","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":"29101809412b0dbf422fb2773e895b7cedc327afe694f33bd597f0a67d5e9ffe","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":"f1ea4a4b9c929e6a9de850ab8a209c28da77bb7041982a19920ed97b3a6e810e","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":"72be69f48ed457ed069d45d7ae11891ca97dc1a07d56bf61f062d16d2c5f036a","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":"d2ccfc1a58171b91dcd6fd9a12cddaf244b1e9966a564e92ec52a978abf0b452","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"816fe39c7efd64504a19175b0f4dd9186d61069f37a22684c90358a18c60bddc","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"816fe39c7efd64504a19175b0f4dd9186d61069f37a22684c90358a18c60bddc","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"475270efb316ec811e08ab2bd541bf7b38754f3792554b1775ff7c7b5d30a3c6","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"eaa9f8e764e2cab2ed1c7ccd3cc76c42d9f04e501a4c011174e38905e24ac56a","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"ab3f8f2aa4e7f3b3ada558c0dcf522ba733ca3df3b1da92c707a0fe305816d5f","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"ab3f8f2aa4e7f3b3ada558c0dcf522ba733ca3df3b1da92c707a0fe305816d5f","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: Acontext (ACON).\nToken name: Acontext\nToken symbol: ACON\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"b36310651ee12e6f81bca00214f4d4908d63cc1d6f9647e13715c0f3a1eb3664","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"2fd7fbe5-100e-4aca-8625-cde62abe902c","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-2542-acontext"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52182","feedbackHash":"6f6e2415be2c34de7258dbe75f9f0eb64385442716cc68e8e53dc88e3af68472","nodeKey":"audit_economics","submissionHash":"d8d4631a5d8df149e01187203e1d71ec1ea19acbeed5fde909bdc73f2f40c909","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52707","feedbackHash":"92c08055e15a817ad2b65e4ab126cc0783c24496a03c124c3f5384591f8348a6","nodeKey":"audit_flow","submissionHash":"537f7901c6f9bc2cc3a476d01bf995999a24656c5dfe400ed58e245efda57ae3","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52706","feedbackHash":"31826ff39089fbdcd044e2f651a737bf2a41cd150418c48d1dbc82a2da30df94","nodeKey":"audit_judge","submissionHash":"29101809412b0dbf422fb2773e895b7cedc327afe694f33bd597f0a67d5e9ffe","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52660","feedbackHash":"1bb4782fcc910991ba67d44b16a3664845b16e20d61bb2c50f142dbe3a3528c1","nodeKey":"audit_math","submissionHash":"f1ea4a4b9c929e6a9de850ab8a209c28da77bb7041982a19920ed97b3a6e810e","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51347","feedbackHash":"fee9e153e7c55e48b0e59321ad0b1d15da874bb5afd40b735a6736b9396fccc2","nodeKey":"audit_permissions","submissionHash":"72be69f48ed457ed069d45d7ae11891ca97dc1a07d56bf61f062d16d2c5f036a","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51099","feedbackHash":"ceb0faf842882e371258bc84974502ef9575390c48a8916687c2cea2e986bf34","nodeKey":"build_contract_project","submissionHash":"d2ccfc1a58171b91dcd6fd9a12cddaf244b1e9966a564e92ec52a978abf0b452","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51156","feedbackHash":"2dd39bbfc735465dc6b801a01ffff0f0696a155be4c99eadac7edc2b75a3ce2c","nodeKey":"manifest","submissionHash":"475270efb316ec811e08ab2bd541bf7b38754f3792554b1775ff7c7b5d30a3c6","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"50971","feedbackHash":"89fdce5db0f764fcb24cb47f342a47e2239dc22a1251610cf66ddbc1466e73ce","nodeKey":"write_foundry_tests","submissionHash":"eaa9f8e764e2cab2ed1c7ccd3cc76c42d9f04e501a4c011174e38905e24ac56a","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"795ec13b766dc893f877c9a3fc3b172279358e6047ecb1bb30cd959d986e2e07","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"f3b611cf8afb513f","findings":[{"citation":"resolved","description":"Documentation inconsistency only; no code or deployment impact. README.md lines 98-100 say the implementation intentionally contains no launch.json and that the manifest step supplies it. The accepted manifest step has since added launch.json at the repository root, so the README now describes a tree that no longer exists. The manifest itself was checked and is consistent with the code: kind custom_token, contract AcontextToken (13 characters), name Acontext, symbol ACON, decimals 18, constructorArgs [] matching the argument-free constructor, totalSupply 1000000000000000000000000000 equal to INITIAL_SUPPLY, lowercase addresses, only schema keys, notes 382 characters. Nothing in this note blocks the launch.","line":99,"path":"README.md","reproduction":"Read README.md lines 98-100 ('This implementation intentionally contains no `launch.json`.') then list the repository root: launch.json exists and parses as a valid custom_token manifest. Expected: README and tree agree. Actual: README claims the file is absent while it is present.","severity":"info","snippet":"metadata, and exact minor-unit supply. This implementation intentionally contains no","title":"README states the tree contains no launch.json, but launch.json is present at the root"}],"hash":"29101809412b0dbf422fb2773e895b7cedc327afe694f33bd597f0a67d5e9ffe","nodeId":"7f9915af-26ea-4fc2-8f2b-8218ebcb8e07","outcome":"completed","summary":"Review complete. The findings file is written and no tracked file was changed.\n\n**Outcome:** no defect in the Acontext token. All four specialists and the test writer reported nothing, slither reported nothing, and I reproduced none of the leads as a defect. The only item recorded is one informational note.\n\n**What I verified**\n- `src/AcontextToken.sol` is a 16-line OpenZeppelin ERC-20 subclass whose constructor mints one billion tokens with 18 decimals to the deployer. No owner, mint, burn, pause, blacklist, fee, or upgrade path exists.\n- The vendored OpenZeppelin files hash-match the upstream v5.0.2 release archive byte for byte, so the inherited transfer, approve and allowance logic is the audited original.\n- The project's 50 existing tests pass. My scratch suite under `test/scratch/` also passes: CREATE2 deployment from a factory stand-in leaves the whole supply at the factory, the 10%/80%/10% launch flows and pool-address trades move exact amounts, 22 privileged selectors revert from the factory address, the factory cannot pull a holder's balance, and the reachable runtime code contains no DELEGATECALL, CALLCODE or SELFDESTRUCT.\n- Runtime code is 1,739 bytes and creation code 2,624 bytes, far under the deployment limits.\n- `launch.json` uses only schema keys, lowercase addresses, an empty constructor argument list matching the argument-free constructor, and a total supply equal to the minted constant.\n- The aderyn lead about a large numeric literal is the intended supply constant and not a defect.\n\n**Recorded finding (info):** `README.md:99` still says the implementation intentionally contains no launch.json, but the manifest step has since added that file. Documentation only, nothing blocking.\n\n**Coverage:** all three listed entry points (approve, transfer, transferFrom) are marked `holds`, plus rows for the constructor, the no-admin and no-forbidden-opcode invariants, manifest consistency, and the specialist and static-analysis leads.","treeHash":null,"usage":{"cachedInputTokens":634703,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":12170,"runtime":"claude","turns":25,"wallClockMs":225101}},{"artifacts":[],"attempt":1,"bundleHash":"c5f0caa2c0105ed130e67939d812d677f3f2c6bf75f36ac2165c54838a2b1d1b","device":"1ccda5cdb3f24f3e","findings":[],"hash":"475270efb316ec811e08ab2bd541bf7b38754f3792554b1775ff7c7b5d30a3c6","nodeId":"f170f495-734e-42e3-9e28-4c1f162a68b7","outcome":"completed","summary":"Created [launch.json](/home/imd/.identitymd/work/2fd7fbe5-100e-4aca-8625-cde62abe902c/f170f495-734e-42e3-9e28-4c1f162a68b7/launch.json) matching `AcontextToken`, its exact supply, empty constructor arguments, and required pool and economics values.\n\nManifest checks and `forge build` passed. `forge test` passed all 35 tests with the supplied fuzz seed. Only `launch.json` is changed for submission.","treeHash":"6f182db9da43205b2feefcd7660c8139aefe2a43","usage":{"cachedInputTokens":197120,"inputTokens":26146,"model":"gpt-6-astra","outputTokens":2515,"runtime":"codex","turns":3,"wallClockMs":84990}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"2293d6b19e81ef1a","findings":[],"hash":"537f7901c6f9bc2cc3a476d01bf995999a24656c5dfe400ed58e245efda57ae3","nodeId":"8ef09c7a-48ca-4122-874a-456c4e595fc4","outcome":"completed","summary":"The review is complete and clean. No defects were found in the Acontext token, and the findings file holds an empty list with a full coverage record.\n\n**What I checked, against the Execution Trace, Periphery and First Principles guides**\n\n- **Periphery:** the five vendored OpenZeppelin files are byte-identical to the upstream v5.0.2 archive, whose hash matches the one in DEPENDENCIES.md. The token adds nothing but a constructor and a constant.\n- **Execution trace:** every path through transfer, transferFrom and approve was traced. Sentinel inputs revert before any state change: zero receiver, zero sender (including the value-zero case, which reverts with ERC20InvalidApprover), zero spender. Allowance is spent before the balance moves, and a failed balance check rolls the allowance back. There are no callbacks, fees, exemptions or stale reads.\n- **First principles:** the supply literal equals 10^27 exactly, resolving the aderyn \"large numeric literal\" lead. A CREATE2 deployment from a factory stand-in with no constructor arguments mints the whole supply to the factory. The ABI exposes only the ten standard functions plus INITIAL_SUPPLY, and the 1,739-byte runtime contains no DELEGATECALL, CALLCODE or SELFDESTRUCT. Nothing can grow the supply or freeze a holder after launch.\n- **Launch flows:** plain transfers carry the distributor, pool and remainder shares whole, so the protected floor's exact-amount checks are satisfied by construction.\n\n**Verification run**\n\n- Existing suite: 34 unit and fuzz tests plus 3 invariants, all passing at the pinned fuzz settings.\n- A scratch probe of 8 extra edge cases, all behaving as the code intends; it was removed afterwards since no finding needed a proof.\n- The README's pair-token address on chain 4663 has code, returns symbol IMD and 18 decimals, so the handoff table is consistent.\n\n**Coverage record** in `.imd-findings.json`: approve, transfer and transferFrom each marked `holds`, plus two invariant rows for the constructor mint and the fixed-supply, no-privilege guarantee. Nothing was left unreached. The one item I did not report is a stale upstream doc comment in the vendored ERC20.sol claiming transferFrom emits Approval, which v5 does not do; the README already states the actual behavior and the vendored file must stay unmodified.","treeHash":null,"usage":{"cachedInputTokens":678227,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":12037,"runtime":"claude","turns":27,"wallClockMs":175848}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"af9a875696459139","findings":[],"hash":"72be69f48ed457ed069d45d7ae11891ca97dc1a07d56bf61f062d16d2c5f036a","nodeId":"8b500458-bda3-45b6-ab5f-18e325d9f35d","outcome":"completed","summary":"The review is complete. The findings file is in place and the tree is otherwise untouched.\n\n**Result: no defects found in the assigned area.** The file `.imd-findings.json` holds an empty findings list and eight coverage rows, all `holds`. The scratch probe test was removed and only build caches remain untracked, all ignored.\n\n**What I checked.** The token is a 16-line wrapper around the unmodified OpenZeppelin v5.0.2 ERC-20. I downloaded the upstream v5.0.2 archive, confirmed its hash matches DEPENDENCIES.md, and confirmed the five vendored files are byte-identical. The compiled ABI exposes only the standard ERC-20 functions plus one constant getter, with a nonpayable argument-free constructor.\n\n- **Access Control.** The permission model is empty by design: no owner, role, modifier, initializer, proxy or delegatecall. The three state-changing entry points are guarded only by caller identity and allowance. Each storage slot has exactly one write path, so there is no weaker-guarded writer to exploit. Scratch probes confirmed the deployer cannot pull a holder's balance, a relay contract cannot spend its caller's balance, allowance is scoped to one owner and spender pair, and construction with ETH attached fails.\n- **Trust Gap.** There is no privileged actor, no price or fee formula, and no caller-class branch, so no access-times-economics or access-times-asymmetry seam exists.\n- **Asymmetry.** The only paired surface is approve against the allowance spend inside transferFrom. The spend path omits the Approval event, which is OpenZeppelin v5 design and documented in README.md. The mint and burn branches in the internal update function are unreachable from any public entry point. A zero-value transferFrom from a stranger emits a Transfer event from the victim with amount zero, which EIP-20 mandates and which moves no balance or allowance.\n- **Launch floor.** Supply is exactly one billion times ten to the eighteenth, minted once to the deployer, decimals are 18, there is no tax, burn, exemption list or external call, and the existing suite shows no DELEGATECALL, CALLCODE or SELFDESTRUCT in reachable runtime code.\n\n**Static analysis leads.** Slither reported nothing. The Aderyn large-numeric-literal note refers to the compile-time constant on line 11, which evaluates to ten to the twenty-seventh and fits in uint256. Not a defect.\n\n**Not reached.** I did not run the protected integration harness, since it needs network-side sources and launch-time environment values that are not in this tree. Nothing in my area depends on it.","treeHash":null,"usage":{"cachedInputTokens":934244,"inputTokens":322,"model":"claude-fable-5-1","outputTokens":15947,"runtime":"claude","turns":38,"wallClockMs":272768}},{"artifacts":[],"attempt":1,"bundleHash":"2bbfc3e4c7dd7770fb748638ceba02d7cfa8dfdb6a6b65f14350edfa36138fec","device":"4ba44f3d5ab7b010","findings":[],"hash":"d2ccfc1a58171b91dcd6fd9a12cddaf244b1e9966a564e92ec52a978abf0b452","nodeId":"88f12703-9ba3-4a35-9dd6-1fc0a497479b","outcome":"completed","summary":"Implemented Acontext (ACON): 1 billion tokens, 18 decimals, minted once to the deployer.\n\nIncluded vendored dependencies, success/failure tests, stateful invariants, and deployment documentation.\n\nValidation passed: offline build, 35 Foundry test results with both seeds, formatting, and Slither with no high/medium findings. Network-specific admission checks remain separate.","treeHash":"87b499e99979bd8e0f1c8d513068885a3d8922bd","usage":{"cachedInputTokens":828544,"inputTokens":49362,"model":"gpt-6-astra","outputTokens":20790,"runtime":"codex","turns":6,"wallClockMs":644211}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"d11ea2b5e05fa7a8","findings":[],"hash":"d8d4631a5d8df149e01187203e1d71ec1ea19acbeed5fde909bdc73f2f40c909","nodeId":"199d3677-0e78-4eed-bf6f-3fc9521b2029","outcome":"completed","summary":"The economics review of the Acontext token is complete. No defects were found, and the result is recorded in `.imd-findings.json` with an empty findings list and seven coverage rows.\n\n**What I checked, against the Economic Security, Invariant and Flow Gap guides**\n\n- **Supply and mint.** The constant evaluates to exactly 10^27 minor units, minted once to the deployer in the constructor. The compiled ABI exposes no mint, burn, owner, pause or freeze entry, so the supply cannot grow or be seized after launch. The aderyn large-numeric-literal lead was checked and the value is correct.\n- **Conservation.** Every balance write goes through the unmodified OpenZeppelin `_update`, with zero-address guards ahead of it. The existing stateful invariant campaign plus my own fuzz over factory, distributor, pool and remainder flows kept the sum of balances equal to total supply.\n- **Launch flow exactness.** With no fee, burn, tax or exemption logic, the 10% swarm share, the 80% pool seed and the 10% remainder arrive whole. I modelled the Uniswap v4 sync and settle delta accounting in a scratch test and the credited amount equalled the transferred amount for the seed, a buy and a sell.\n- **Allowances and privilege.** Finite allowances decrease exactly, unlimited ones persist, and failed transfers restore allowance atomically. The factory has no path to pull a holder's balance without approval. The standard ERC-20 approval replacement race exists but is inherent to the standard and already documented in the README, so I did not report it as a defect.\n- **Dependencies.** The vendored ERC20.sol and Context.sol hash-match the upstream OpenZeppelin v5.0.2 tag byte for byte, so no modified library logic hides behind the import.\n\n**Checks actually run**\n\n- Existing suite with `forge test --offline`: 35 tests passed.\n- My scratch probe in `test/scratch/` (five tests including a 1,024-run fuzz): all passed, then removed so the tree is clean apart from the findings file.\n\n**Not covered.** I did not execute the protected harness against a real PoolManager, since v4-core is not vendored here; that remains the network's admission step. The token has no external calls or callbacks, so no periphery seam exists to trace beyond that.","treeHash":null,"usage":{"cachedInputTokens":918348,"inputTokens":322,"model":"claude-fable-5-1","outputTokens":12979,"runtime":"claude","turns":31,"wallClockMs":263245}},{"artifacts":[],"attempt":1,"bundleHash":"85a4be6f4acad7ae300cf989a12ec114d2665deba4021926b0d39668f3152978","device":"35c52a5b502e847c","findings":[],"hash":"eaa9f8e764e2cab2ed1c7ccd3cc76c42d9f04e501a4c011174e38905e24ac56a","nodeId":"eb2a378a-d533-4233-9937-e7fc36ffaa68","outcome":"completed","summary":"Added 15 unit/fuzz tests covering failure paths, allowance boundaries, revocation, and overlapping roles. Expanded stateful invariants to 12 actions.\n\nVerification passed with the required seed:\n- Offline `forge build` and `forge test`\n- 50 tests passed\n- 32,768 invariant calls completed\n\nOnly `test/` changed. No implementation defects found.","treeHash":"f65f3746c930fca96c5f2dc313e20102c15366a5","usage":{"cachedInputTokens":892288,"inputTokens":62680,"model":"gpt-6-astra","outputTokens":11096,"runtime":"codex","turns":5,"wallClockMs":374320}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"1ec9f666356a7ad7","findings":[],"hash":"f1ea4a4b9c929e6a9de850ab8a209c28da77bb7041982a19920ed97b3a6e810e","nodeId":"96b65dcc-e168-4a03-84c8-3338ffc52475","outcome":"completed","summary":"The review is complete and `.imd-findings.json` is written at the repository root with an empty findings list and nine coverage rows. No source file was changed; the scratch test lives under the ignored `test/scratch/` path.\n\n**Result: no defects in the assigned area.** The token at `src/AcontextToken.sol` is a 15-line wrapper around OpenZeppelin v5.0.2 ERC-20 with one constructor mint. It contains no division, scaling, casts, external calls, payable paths or bytes decoding, so most failure modes in the Math Precision, Boundary and Numerical Gap guides have no surface to attack.\n\nWhat I verified, beyond reading the code:\n\n- **Supply literal.** The aderyn \"large numeric literal\" lead at line 11 is a compile-time constant equal to exactly 10^27, divisible by 10^18 with zero remainder. Dismissed.\n- **Launch arithmetic.** The 10% swarm, 80% pool and 10% remainder shares of 10^27 divide exactly. The token has no fee or burn, so factory, distributor and PoolManager transfers arrive whole.\n- **Guarded unchecked blocks.** Both unchecked subtractions in the inherited `_update` and `_spendAllowance` sit behind strict `<` reverts. I exercised value equal to balance, balance plus one, uint256 max, zero, self-transfer at full supply, allowance equal to value, allowance of max minus one, and transferFrom from the zero address. All behave as specified.\n- **Conservation.** Two hundred irregular transfers sum exactly to the supply. The project's own 16,384-call invariant campaign also passes.\n- **Dependency integrity.** All five vendored OpenZeppelin files match upstream v5.0.2 by SHA-256, fetched from GitHub. The `_msgSender` base is unmodified.\n- **ABI surface.** The compiled ABI exposes only the ERC-20 functions plus the supply constant. There is no receive, fallback or payable entry.\n\nTest runs: the existing suite passed 35 of 35, and my ten scratch probes passed 10 of 10 after I corrected one probe whose own amounts exceeded the supply.\n\nCoverage: all three listed entry points are marked `holds`, plus six invariant and boundary rows. Nothing in my area was left unreached. Items outside my area, such as the launch manifest and pool price derivation, belong to the network's later steps and are not token defects.","treeHash":null,"usage":{"cachedInputTokens":1390344,"inputTokens":514,"model":"claude-fable-5-1","outputTokens":13355,"runtime":"claude","turns":27,"wallClockMs":224240}}],"verification":[{"checks":[{"durationMs":1181,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.09s\nCompiler run successful!\n","passed":true},{"durationMs":5666,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 34 tests for test/AcontextToken.t.sol:AcontextTokenTest\n[PASS] testFuzz_approvalsNeverMoveBalances(address,uint256) (runs: 1024, μ: 81839, ~: 82182)\n[PASS] testFuzz_deploymentMintsOnlyToImmediateCaller(address) (runs: 1024, μ: 26579, ~: 26579)\n[PASS] testFuzz_failedTransferFromRestoresAllowance(uint256,uint256) (runs: 1024, μ: 184915, ~: 185507)\nLogs:\n  Bound result 19477\n  Bound result 36866\n\n[PASS] testFuzz_insufficientAllowanceReverts(uint256,uint256) (runs: 1024, μ: 167963, ~: 169273)\nLogs:\n  Bound result 510767398832345073560675634\n  Bound result 234457127744046465080547252\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 1024, μ: 92824, ~: 93069)\nLogs:\n  Bound result 858527304552327246997428884\n\n[PASS] testFuzz_transferFromRespectsBalanceAndAllowance(uint256,uint256,uint256) (runs: 1024, μ: 207218, ~: 210813)\nLogs:\n  Bound result 675193512505946756595177449\n  Bound result 549024986873328558284816059\n\n[PASS] testFuzz_transferMoreThanBalanceReverts(uint256,uint256) (runs: 1024, μ: 120673, ~: 121240)\nLogs:\n  Bound result 19477\n  Bound result 36866\n\n[PASS] test_approvalBelongsToCallerAndNamedSpenderOnly() (gas: 160662)\n[PASS] test_approveEmitsEventWithoutMovingTokens() (gas: 84153)\n[PASS] test_approveReplacesAndRevokesAllowance() (gas: 156588)\n[PASS] test_approveZeroSpenderRevertsIncludingZeroAmount() (gas: 61906)\n[PASS] test_constructorEmitsWholeSupplyMint() (gas: 11386)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 151043)\n[PASS] test_factoryReceivesSupplyInsteadOfTransactionOrigin() (gas: 280210)\n[PASS] test_launchAllocationsClaimsAndPoolTransfersArriveWhole() (gas: 621616)\n[PASS] test_metadataAndInitialSupply() (gas: 103293)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1502395)\n[PASS] test_rejectsNativeCurrencyAndPayableFunctionCalls() (gas: 72288)\n[PASS] test_runtimeAndCreationCodeFitLaunchLimits() (gas: 10872)\n[PASS] test_runtimeHasNoForbiddenReachableOpcodes() (gas: 1253304)\n[PASS] test_selfTransferLeavesBalanceUnchanged() (gas: 107163)\n[PASS] test_transferEmitsEventAndReturnsTrue() (gas: 78683)\n[PASS] test_transferEntireSupplyThenRejectSecondTransfer() (gas: 108241)\n[PASS] test_transferFromEmitsTransferAndConsumesFiniteAllowance() (gas: 249331)\n[PASS] test_transferFromInsufficientBalanceRestoresAllowance() (gas: 114790)\n[PASS] test_transferFromInvalidReceiverRestoresAllowance() (gas: 111876)\n[PASS] test_transferFromPreservesInfiniteAllowance() (gas: 198752)\n[PASS] test_transferFromRequiresApprovalEvenFromHolder() (gas: 152054)\n[PASS] test_transferFromToSelfSpendsAllowanceButPreservesBalance() (gas: 105573)\n[PASS] test_transferFromZeroAmountNeedsNoAllowance() (gas: 70079)\n[PASS] test_transferToContractMakesNoCallback() (gas: 169365)\n[PASS] test_transferToZeroRevertsIncludingZeroAmount() (gas: 71992)\n[PASS] test_transferUint256MaxRevertsWithoutChangingBalances() (gas: 50686)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 66417)\nSuite result: ok. 34 passed; 0 failed; 0 skipped; finished in 50.39ms (358.45ms CPU time)\n\nRan 1 test for test/AcontextInvariant.t.sol:AcontextInvariantTest\n[PASS]\nAcontextInvariantTest invariants:\n[PASS] invariant_allowancesMatchIndependentLedger\n[PASS] invariant_balancesMatchIndependentLedger\n[PASS] invariant_supplyIsFixedAndEveryTokenIsAccountedFor\n AcontextInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭-----------------+--------------------------+-------+---------+----------╮\n| Contract        | Selector                 | Calls | Reverts | Discards |\n+=========================================================================+\n| AcontextHandler | approve                  | 2699  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | attemptOverdraw          | 2626  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | attemptUnauthorizedSpend | 2809  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | attemptZeroReceiver      | 2730  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | transfer                 | 2655  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | transferFrom             | 2865  | 0       | 0        |\n╰-----------------+--------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 226\n  Bound result 4806\n  Bound result 0\n  Bound result 4097\n  Bound result 115792089237316195423570985008687907853269984665639564039466584007913129640161\n  Bound result 68\n  Bound result 804448731\n  Bound result 0\n  Bound result 9853232962537980899509971162640041777474968940512\n  Bound result 61\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639790\n  Bound result 0\n  Bound result 4608\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639884\n  Bound result 0\n  Bound result 6374\n  Bound result 0\n  Bound result 0\n  Bound result 1692821468108354958421689044887674281208343905926622812641\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640166\n  Bound result 138\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129641905\n  Bound result 90\n  Bound result 2177950688226202764275217092172201149424809486036\n  Bound result 5\n  Bound result 0\n  Bound result 72\n  Bound result 0\n  Bound result 92\n  Bound result 0\n  Bound result 0\n  Bound result 4\n  Bound result 89\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.56s (5.56s CPU time)\n\nRan 2 test suites in 5.57s (5.61s CPU time): 35 tests passed, 0 failed, 0 skipped (35 total tests)\n","passed":true},{"durationMs":40,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"AcontextToken.approve(address,uint256)\",\"AcontextToken.transfer(address,uint256)\",\"AcontextToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":19,\"README.md\":129,\"REVIEW.md\":69,\"foundry.toml\":24,\"launch.json\":24,\"remappings.txt\":2,\"src/AcontextToken.sol\":16,\"test/AcontextInvariant.t.sol\":133,\"test/AcontextToken.t.sol\":457},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"475270efb316ec811e08ab2bd541bf7b38754f3792554b1775ff7c7b5d30a3c6","verifiedTreeHash":"6f182db9da43205b2feefcd7660c8139aefe2a43","verifierVersion":"0.1.0+ad64f8c4"},{"checks":[{"durationMs":2720,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 2.54s\nCompiler run successful!\n","passed":true},{"durationMs":10275,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 34 tests for test/AcontextToken.t.sol:AcontextTokenTest\n[PASS] testFuzz_approvalsNeverMoveBalances(address,uint256) (runs: 1024, μ: 81839, ~: 82182)\n[PASS] testFuzz_deploymentMintsOnlyToImmediateCaller(address) (runs: 1024, μ: 26579, ~: 26579)\n[PASS] testFuzz_failedTransferFromRestoresAllowance(uint256,uint256) (runs: 1024, μ: 184915, ~: 185507)\nLogs:\n  Bound result 16365069\n  Bound result 2091369126613192\n\n[PASS] testFuzz_insufficientAllowanceReverts(uint256,uint256) (runs: 1024, μ: 167963, ~: 169273)\nLogs:\n  Bound result 434793358565716279068775704\n  Bound result 312150717289659916468059666\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 1024, μ: 92824, ~: 93069)\nLogs:\n  Bound result 858527304552327246997428884\n\n[PASS] testFuzz_transferFromRespectsBalanceAndAllowance(uint256,uint256,uint256) (runs: 1024, μ: 207218, ~: 210813)\nLogs:\n  Bound result 193\n  Bound result 17\n\n[PASS] testFuzz_transferMoreThanBalanceReverts(uint256,uint256) (runs: 1024, μ: 120673, ~: 121240)\nLogs:\n  Bound result 4100\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129635843\n\n[PASS] test_approvalBelongsToCallerAndNamedSpenderOnly() (gas: 160662)\n[PASS] test_approveEmitsEventWithoutMovingTokens() (gas: 84153)\n[PASS] test_approveReplacesAndRevokesAllowance() (gas: 156588)\n[PASS] test_approveZeroSpenderRevertsIncludingZeroAmount() (gas: 61906)\n[PASS] test_constructorEmitsWholeSupplyMint() (gas: 11386)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 151043)\n[PASS] test_factoryReceivesSupplyInsteadOfTransactionOrigin() (gas: 280210)\n[PASS] test_launchAllocationsClaimsAndPoolTransfersArriveWhole() (gas: 621616)\n[PASS] test_metadataAndInitialSupply() (gas: 103293)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1502395)\n[PASS] test_rejectsNativeCurrencyAndPayableFunctionCalls() (gas: 72288)\n[PASS] test_runtimeAndCreationCodeFitLaunchLimits() (gas: 10872)\n[PASS] test_runtimeHasNoForbiddenReachableOpcodes() (gas: 1253304)\n[PASS] test_selfTransferLeavesBalanceUnchanged() (gas: 107163)\n[PASS] test_transferEmitsEventAndReturnsTrue() (gas: 78683)\n[PASS] test_transferEntireSupplyThenRejectSecondTransfer() (gas: 108241)\n[PASS] test_transferFromEmitsTransferAndConsumesFiniteAllowance() (gas: 249331)\n[PASS] test_transferFromInsufficientBalanceRestoresAllowance() (gas: 114790)\n[PASS] test_transferFromInvalidReceiverRestoresAllowance() (gas: 111876)\n[PASS] test_transferFromPreservesInfiniteAllowance() (gas: 198752)\n[PASS] test_transferFromRequiresApprovalEvenFromHolder() (gas: 152054)\n[PASS] test_transferFromToSelfSpendsAllowanceButPreservesBalance() (gas: 105573)\n[PASS] test_transferFromZeroAmountNeedsNoAllowance() (gas: 70079)\n[PASS] test_transferToContractMakesNoCallback() (gas: 169365)\n[PASS] test_transferToZeroRevertsIncludingZeroAmount() (gas: 71992)\n[PASS] test_transferUint256MaxRevertsWithoutChangingBalances() (gas: 50686)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 66417)\nSuite result: ok. 34 passed; 0 failed; 0 skipped; finished in 95.23ms (659.32ms CPU time)\n\nRan 1 test for test/AcontextInvariant.t.sol:AcontextInvariantTest\n[PASS]\nAcontextInvariantTest invariants:\n[PASS] invariant_allowancesMatchIndependentLedger\n[PASS] invariant_balancesMatchIndependentLedger\n[PASS] invariant_supplyIsFixedAndEveryTokenIsAccountedFor\n AcontextInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭-----------------+--------------------------+-------+---------+----------╮\n| Contract        | Selector                 | Calls | Reverts | Discards |\n+=========================================================================+\n| AcontextHandler | approve                  | 2699  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | attemptOverdraw          | 2626  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | attemptUnauthorizedSpend | 2809  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | attemptZeroReceiver      | 2730  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | transfer                 | 2655  | 0       | 0        |\n|-----------------+--------------------------+-------+---------+----------|\n| AcontextHandler | transferFrom             | 2865  | 0       | 0        |\n╰-----------------+--------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 226\n  Bound result 4806\n  Bound result 0\n  Bound result 4097\n  Bound result 115792089237316195423570985008687907853269984665639564039466584007913129640161\n  Bound result 68\n  Bound result 804448731\n  Bound result 0\n  Bound result 9853232962537980899509971162640041777474968940512\n  Bound result 61\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639790\n  Bound result 0\n  Bound result 4608\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639884\n  Bound result 0\n  Bound result 6374\n  Bound result 0\n  Bound result 0\n  Bound result 1692821468108354958421689044887674281208343905926622812641\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640166\n  Bound result 138\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129641905\n  Bound result 90\n  Bound result 2177950688226202764275217092172201149424809486036\n  Bound result 5\n  Bound result 0\n  Bound result 72\n  Bound result 0\n  Bound result 92\n  Bound result 0\n  Bound result 0\n  Bound result 4\n  Bound result 89\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 10.01s (10.00s CPU time)\n\nRan 2 test suites in 10.01s (10.10s CPU time): 35 tests passed, 0 failed, 0 skipped (35 total tests)\n","passed":true},{"durationMs":131,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"AcontextToken.approve(address,uint256)\",\"AcontextToken.transfer(address,uint256)\",\"AcontextToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":19,\"README.md\":129,\"REVIEW.md\":69,\"foundry.toml\":24,\"remappings.txt\":2,\"src/AcontextToken.sol\":16,\"test/AcontextInvariant.t.sol\":133,\"test/AcontextToken.t.sol\":457},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":966,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":333,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/AcontextToken.sol:11: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"d2ccfc1a58171b91dcd6fd9a12cddaf244b1e9966a564e92ec52a978abf0b452","verifiedTreeHash":"87b499e99979bd8e0f1c8d513068885a3d8922bd","verifierVersion":"0.1.0+ad64f8c4"},{"checks":[{"durationMs":1408,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.33s\nCompiler run successful!\n","passed":true},{"durationMs":11602,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 15 tests for test/AcontextProperties.t.sol:AcontextPropertiesTest\n[PASS] testFuzz_delegatedTransfersWithOverlappingRoles(uint8,uint256,bool) (runs: 1024, μ: 196130, ~: 186194)\nLogs:\n  Bound result 1046363172\n\n[PASS] testFuzz_failedZeroReceiverSpendIsAtomic(uint256,uint256) (runs: 1024, μ: 140433, ~: 140726)\nLogs:\n  Bound result 17281161681871879261754718\n  Bound result 2731729691197144314717511167404360556458282195041664372\n\n[PASS] testFuzz_replacingApprovalIsIdempotent(uint256,uint256) (runs: 1024, μ: 218061, ~: 218364)\n[PASS] testFuzz_spendersShareBalanceButNotAllowance(uint256,uint256) (runs: 1024, μ: 349063, ~: 349639)\nLogs:\n  Bound result 510767398832345073560675634\n  Bound result 234457127744046465080547252\n\n[PASS] testFuzz_splittingTransferHasSameResult(uint256,uint256) (runs: 1024, μ: 200014, ~: 200910)\nLogs:\n  Bound result 1\n  Bound result 1\n\n[PASS] testFuzz_transferRoundTripRestoresBalances(uint256,uint256) (runs: 1024, μ: 222892, ~: 223429)\nLogs:\n  Bound result 14520094180740398905046992\n  Bound result 709646393665556902721904\n\n[PASS] test_approvalBeforeFundingCanSpendFutureDeposits() (gas: 227016)\n[PASS] test_constructorEmitsExactlyOneMint() (gas: 23508)\n[PASS] test_directTransfersDoNotConsumeAnAllowance() (gas: 248536)\n[PASS] test_failedInfiniteSpendLeavesApprovalUsable() (gas: 225699)\n[PASS] test_infiniteApprovalCanBeReplacedAndRevoked() (gas: 313956)\n[PASS] test_largestFiniteAllowanceIsNotInfinite() (gas: 199196)\n[PASS] test_returningTokensDoesNotRestoreSpentAllowance() (gas: 258492)\n[PASS] test_selfTransfersStillCheckBalance() (gas: 194300)\n[PASS] test_zeroValueDelegatedTransferRejectsZeroEndpoints() (gas: 110070)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 87.50ms (517.39ms CPU time)\n\nRan 34 tests for test/AcontextToken.t.sol:AcontextTokenTest\n[PASS] testFuzz_approvalsNeverMoveBalances(address,uint256) (runs: 1024, μ: 81860, ~: 82194)\n[PASS] testFuzz_deploymentMintsOnlyToImmediateCaller(address) (runs: 1024, μ: 26579, ~: 26579)\n[PASS] testFuzz_failedTransferFromRestoresAllowance(uint256,uint256) (runs: 1024, μ: 184924, ~: 185471)\nLogs:\n  Bound result 747089416804749772053630060\n  Bound result 115792089237316195423570985008687907853269984665639816950040779258141076010013\n\n[PASS] testFuzz_insufficientAllowanceReverts(uint256,uint256) (runs: 1024, μ: 167999, ~: 169291)\nLogs:\n  Bound result 892271598069074273808604065\n  Bound result 694332280608055507291678742\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 1024, μ: 92849, ~: 93069)\nLogs:\n  Bound result 858527304552327246997428884\n\n[PASS] testFuzz_transferFromRespectsBalanceAndAllowance(uint256,uint256,uint256) (runs: 1024, μ: 207441, ~: 210835)\nLogs:\n  Bound result 11481\n  Bound result 289\n\n[PASS] testFuzz_transferMoreThanBalanceReverts(uint256,uint256) (runs: 1024, μ: 120680, ~: 121228)\nLogs:\n  Bound result 19477\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129623285\n\n[PASS] test_approvalBelongsToCallerAndNamedSpenderOnly() (gas: 160662)\n[PASS] test_approveEmitsEventWithoutMovingTokens() (gas: 84153)\n[PASS] test_approveReplacesAndRevokesAllowance() (gas: 156588)\n[PASS] test_approveZeroSpenderRevertsIncludingZeroAmount() (gas: 61906)\n[PASS] test_constructorEmitsWholeSupplyMint() (gas: 11386)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 151043)\n[PASS] test_factoryReceivesSupplyInsteadOfTransactionOrigin() (gas: 280210)\n[PASS] test_launchAllocationsClaimsAndPoolTransfersArriveWhole() (gas: 621616)\n[PASS] test_metadataAndInitialSupply() (gas: 103293)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1502395)\n[PASS] test_rejectsNativeCurrencyAndPayableFunctionCalls() (gas: 72288)\n[PASS] test_runtimeAndCreationCodeFitLaunchLimits() (gas: 10872)\n[PASS] test_runtimeHasNoForbiddenReachableOpcodes() (gas: 1253304)\n[PASS] test_selfTransferLeavesBalanceUnchanged() (gas: 107163)\n[PASS] test_transferEmitsEventAndReturnsTrue() (gas: 78683)\n[PASS] test_transferEntireSupplyThenRejectSecondTransfer() (gas: 108241)\n[PASS] test_transferFromEmitsTransferAndConsumesFiniteAllowance() (gas: 249331)\n[PASS] test_transferFromInsufficientBalanceRestoresAllowance() (gas: 114790)\n[PASS] test_transferFromInvalidReceiverRestoresAllowance() (gas: 111876)\n[PASS] test_transferFromPreservesInfiniteAllowance() (gas: 198752)\n[PASS] test_transferFromRequiresApprovalEvenFromHolder() (gas: 152054)\n[PASS] test_transferFromToSelfSpendsAllowanceButPreservesBalance() (gas: 105573)\n[PASS] test_transferFromZeroAmountNeedsNoAllowance() (gas: 70079)\n[PASS] test_transferToContractMakesNoCallback() (gas: 169365)\n[PASS] test_transferToZeroRevertsIncludingZeroAmount() (gas: 71992)\n[PASS] test_transferUint256MaxRevertsWithoutChangingBalances() (gas: 50686)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 66417)\nSuite result: ok. 34 passed; 0 failed; 0 skipped; finished in 87.54ms (583.72ms CPU time)\n\nRan 1 test for test/AcontextInvariant.t.sol:AcontextInvariantTest\n[PASS]\nAcontextInvariantTest invariants:\n[PASS] invariant_allowancesMatchIndependentLedger\n[PASS] invariant_balancesMatchIndependentLedger\n[PASS] invariant_metadataNeverChanges\n[PASS] invariant_supplyIsFixedAndEveryTokenIsAccountedFor\n AcontextInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭-----------------+------------------------------+-------+---------+----------╮\n| Contract        | Selector                     | Calls | Reverts | Discards |\n+=============================================================================+\n| AcontextHandler | approve                      | 2682  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | approveFinite                | 2786  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | approveInfinite              | 2850  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | attemptDelegatedOverdraw     | 2747  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | attemptDelegatedZeroReceiver | 2770  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | attemptOverdraw              | 2786  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | attemptUnauthorizedSpend     | 2706  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | attemptZeroReceiver          | 2709  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | attemptZeroSpender           | 2679  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | revokeApproval               | 2705  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | transfer                     | 2652  | 0       | 0        |\n|-----------------+------------------------------+-------+---------+----------|\n| AcontextHandler | transferFrom                 | 2696  | 0       | 0        |\n╰-----------------+------------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1672\n  Bound result 754\n  Bound result 2675522509140776198960759800077360929241508\n  Bound result 2091\n  Bound result 8169\n  Bound result 329211828591362074121411738\n  Bound result 48343507114474389697856472\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 4492839612\n  Bound result 0\n  Bound result 0\n  Bound result 243\n  Bound result 3041954474\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639934\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640189\n  Bound result 989363464450157980149789233\n  Bound result 0\n  Bound result 1549\n  Bound result 0\n  Bound result 4097\n  Bound result 216\n  Bound result 4202047189\n  Bound result 8\n  Bound result 96\n  Bound result 0\n  Bound result 0\n  Bound result 244\n  Bound result 15\n  Bound result 0\n  Bound result 7881\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129635635\n  Bound result 13\n  Bound result 187415765087589330581034002\n  Bound result 0\n  Bound result 5000000000000000000\n  Bound result 3\n  Bound result 2\n  Bound result 9000000000000000000\n  Bound result 3259\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3013\n  Bound result 22749466967859814416639240\n  Bound result 0\n  Bound result 28749708564964410917147751836800921805516615586481399169673524066870\n  Bound result 86\n  Bound result 871\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129641003\n  Bound result 59\n  Bound result 16\n  Bound result 6\n  Bound result 0\n  Bound result 24\n  Bound result 244\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639934\n  Bound result 4\n  Bound result 1792096946\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129649158\n  Bound result 717\n  Bound result 592\n  Bound result 244\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 11.51s (11.51s CPU time)\n\nRan 3 test suites in 11.51s (11.69s CPU time): 50 tests passed, 0 failed, 0 skipped (50 total tests)\n","passed":true},{"durationMs":38,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"AcontextToken.approve(address,uint256)\",\"AcontextToken.transfer(address,uint256)\",\"AcontextToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":19,\"README.md\":129,\"REVIEW.md\":69,\"foundry.toml\":24,\"remappings.txt\":2,\"src/AcontextToken.sol\":16,\"test/AcontextInvariant.t.sol\":205,\"test/AcontextProperties.t.sol\":279,\"test/AcontextToken.t.sol\":457},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"eaa9f8e764e2cab2ed1c7ccd3cc76c42d9f04e501a4c011174e38905e24ac56a","verifiedTreeHash":"f65f3746c930fca96c5f2dc313e20102c15366a5","verifierVersion":"0.1.0+ad64f8c4"}]}