{"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":"99fdc21a-7db8-40e1-bdb5-110679d57967","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"c6287f239b897b4da15a283862f8ec0e7a8c3fff1cc1974e207f8fa68225ea30","dependsOn":["build_contract_project","write_foundry_tests","manifest"],"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":"90d936056ae975b041f4a17621944377da514db6d1ff80a4a9de3ec3c25869f4","dependsOn":["build_contract_project","write_foundry_tests","manifest"],"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":"44008adc1cdbdc4ca96d04ea377cb0ee406ce58bd8177e5ae2aeddc0b41ad8a6","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":"be1ca277ef2c9be77cb1f93fbee8dd5c10cca368d0ee9369b4ad30cb1761ac24","dependsOn":["build_contract_project","write_foundry_tests","manifest"],"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":"8b4315bc79a5329116e529f1a59fa6e8a5f36d3449f11f4a13b0b7382851c04e","dependsOn":["build_contract_project","write_foundry_tests","manifest"],"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":"b05b02994d06f8568f05bd86d941aef76d378232a26d66fd6e166a6f802c1eeb","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":"685b59e27e082bb8f390463c2ed484d63a58a8d7254ebc05ae0c88592875e6d9","dependsOn":["build_contract_project","write_foundry_tests"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"54efc4dcf8d01e333efd287da216a94f6b1babf545bf0895b1c43d74b1d9b6ed","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":"[SIMD-LAUNCH]\nA custom token: Baby SIMD (BSIMD).\nToken name: Baby SIMD\nToken symbol: BSIMD\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.\nMinting after launch: none, the supply is fixed forever.\nTransfer rules: plain ERC-20 transfers with no fee, tax or limit.\nWho can call what: no owner and no admin functions; every parameter is a fixed constant.\n\nBuild requirements (mandatory):\n- A complete Foundry project at the repository root: foundry.toml with solc 0.8.26, evm_version cancun, optimizer on and bytecode_hash = \"none\", so the build is reproducible.\n- Token contract: BSIMDToken. No selfdestruct and no delegatecall anywhere. No proxies, no owner, no upgradeability.\n- Supply distribution is done by the launch factory: it mints the supply, seeds the pool from the deployer balance, sends the swarm's 10% through its Merkle distributor and any remainder to remainderTo. No contract here sends the swarm allocation, and the token always mints the entire 1,000,000,000 (1e27 units) to its deployer: never subtract the swarm's 10% (IMD's protected invariants park any launch whose deployer holds less).\n- Chain: Ethereum mainnet (chainId 1). Swaps happen in Uniswap v4, so the pool's tokens move to and from the PoolManager 0x000000000004444c5dc75cB358380D2e3dE08A90.\n- launch.json pool: pairedCurrency 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7, fee 3000, tickSpacing 60, initialPrice \"125270724187523965593206900\" (paired-currency minor units per BSIMD minor unit with BSIMD as currency0, provenance only; the deployer derives the real opening price from the economics using the deployed currency order). launch.json also carries the economics block below.\n- launch.json economics, exactly: poolBps 9000, initialMarketCapWei \"2500000000000000000000\" (2500 IMD opening market cap), remainderTo 0x000000000000000000000000000000000000dead.","parentJobId":null,"planHash":"788fba76e5e6d2544978f787ceabdb45712373f8f30e1b50da33724635e52535","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"99fdc21a-7db8-40e1-bdb5-110679d57967","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1055-baby-simd"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51435","feedbackHash":"b44361ce443ae671c6193720719ecce726d2ce011d774b70c5560de0ccb60687","nodeKey":"audit_economics","submissionHash":"c6287f239b897b4da15a283862f8ec0e7a8c3fff1cc1974e207f8fa68225ea30","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51342","feedbackHash":"e37d26c05bebb58c2001e8d724344599d8b1d76a2ef13fec18d5d9dc1b3c0b09","nodeKey":"audit_flow","submissionHash":"90d936056ae975b041f4a17621944377da514db6d1ff80a4a9de3ec3c25869f4","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"50939","feedbackHash":"c9602ac9735e5b93f5d6f133f07a47bf15bdf921a43290dc8b8eeb1933ef9965","nodeKey":"audit_judge","submissionHash":"44008adc1cdbdc4ca96d04ea377cb0ee406ce58bd8177e5ae2aeddc0b41ad8a6","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51346","feedbackHash":"25f277c1bf13a8a45ec3839d63a94b5ef38988c42d8d554cde578bab78bf9777","nodeKey":"audit_math","submissionHash":"be1ca277ef2c9be77cb1f93fbee8dd5c10cca368d0ee9369b4ad30cb1761ac24","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51338","feedbackHash":"1e18e63d7fb70658a6b8127fca9e42c861753b3a32972f02768b18b835f11aca","nodeKey":"audit_permissions","submissionHash":"8b4315bc79a5329116e529f1a59fa6e8a5f36d3449f11f4a13b0b7382851c04e","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51323","feedbackHash":"c18a91ce845cac94aeb9d8f9dd87448efe80e527216d59460002ece18d5fe3c1","nodeKey":"build_contract_project","submissionHash":"57fd0489719bc06a2f0f34f4f017adc89c92801388d48eaa7f4eff326ab8918b","tag1":"verification:checks","tag2":"acceptance-v2","value":0},{"agentId":"52278","feedbackHash":"520aaf4297291eea45d4db23e87c735104e8262bc7c7335f76fde00a76e0e749","nodeKey":"build_contract_project","submissionHash":"b05b02994d06f8568f05bd86d941aef76d378232a26d66fd6e166a6f802c1eeb","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52273","feedbackHash":"e75cc23c46127194e83def3b3b130fdc4852ef8276c080d8ca12d50d8b67ca73","nodeKey":"manifest","submissionHash":"685b59e27e082bb8f390463c2ed484d63a58a8d7254ebc05ae0c88592875e6d9","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51301","feedbackHash":"0391a413417dfb3c523641e2ab665da6e5761dcf210b5d2160423ca60543cab4","nodeKey":"write_foundry_tests","submissionHash":"54efc4dcf8d01e333efd287da216a94f6b1babf545bf0895b1c43d74b1d9b6ed","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"fe1244509f203b5c5cbf073331dd6f47ea91cf592319fc73ce87969bbea32562","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"72b617d4b615473a","findings":[{"citation":"resolved","description":"Merged from audit_flow (only one specialist raised it). approve() sets allowance[msg.sender][spender] to the new value without reference to the previous value, and transferFrom() (lines 42-46) consumes whatever the mapping holds at call time. A spender who sees an owner's pending approve(spender, NEW) in the public mempool can spend the OLD allowance first and the NEW one afterwards, OLD+NEW in total. This is the standard ERC-20 approve race present in every plain ERC-20 including OpenZeppelin's; the brief asks for plain ERC-20 transfers with no owner, and README.md already instructs users to revoke to zero before changing an allowance. No launch flow depends on an owner-granted allowance: the factory, distributor and PoolManager paths use transfer() and balance-measured settlement. Reported at info so the lead is recorded as traced and classified; no code change is required to meet the agreed design. If the requester wants to remove the hazard, additive increaseAllowance/decreaseAllowance helpers would do so without changing supply, transfer rules or the absence of an owner.","line":36,"path":"src/BSIMDToken.sol","reproduction":"State: deployer D holds 1e27 BSIMD; spender S holds 0. (1) D calls approve(S, 100): allowance[D][S] = 100. (2) D broadcasts approve(S, 50) intending to lower the grant. (3) S front-runs with transferFrom(D, S, 100): line 44 passes (100 >= 100), line 45 sets allowance[D][S] = 0, _transfer moves 100 to S. (4) D's approve(S, 50) is mined: line 36 sets allowance[D][S] = 50. (5) S calls transferFrom(D, S, 50): allowance 50 >= 50, S receives 50 more. Expected by D: S moves at most 100 (or at most 50 after the change). Actual: S moved 150 and balanceOf(S) == 150. Reproduced by tracing lines 34-39 and 41-49; the local suite's test_ApproveOverwriteAndRevoke (test/BSIMDToken.t.sol:68) already asserts the overwrite semantics the race relies on.","severity":"info","snippet":"        allowance[msg.sender][spender] = value;","title":"approve overwrites the allowance in place (inherent ERC-20 approve race; not a defect against the requested plain ERC-20)"}],"hash":"44008adc1cdbdc4ca96d04ea377cb0ee406ce58bd8177e5ae2aeddc0b41ad8a6","nodeId":"ad1f568b-7453-4b9e-9bd1-8ba21f36601b","outcome":"completed","summary":"The review is complete. The findings file is written at `.imd-findings.json` and the working tree is otherwise untouched.\n\n**Outcome:** no defect in the BSIMD token. One info-level note is kept, and no finding carries a proof because nothing reached high or critical.\n\n**What the specialists reported, and how I settled each**\n\n- **audit_flow, approve race (info):** reproduced by tracing approve and transferFrom. Owner approves 100, broadcasts approve 50, spender front-runs with transferFrom for 100 and later takes 50 more. It is the standard ERC-20 overwrite semantics the brief's \"plain ERC-20\" asks for, and the README already tells users to revoke first. Kept at info as a traced lead, not as a defect that should block admission.\n- **audit_math, audit_permissions, audit_economics:** no findings. My own pass agreed.\n- **Static analysis lead (aderyn, large numeric literal):** the constant equals exactly 1e27, confirmed with cast. Style only, dropped.\n\n**What I verified myself**\n\n- The project builds with solc 0.8.26, cancun, optimizer on, bytecode_hash none. Its own suite passes with all 29 tests, including fuzz and invariant runs.\n- The compiled creation and runtime bytecode contain no DELEGATECALL, CALLCODE or SELFDESTRUCT, and no metadata trailer.\n- The ABI exposes only the three state-changing entry points plus view getters. There is no mint, burn, owner, pause, blacklist, receive or fallback.\n- The manifest matches the brief verbatim and the LaunchManifest schema, with the swarm share not written and the supply equal to what the constructor mints.\n- The protected harness could not run here because its v4-core and LaunchLiquidity imports are not in this tree. I checked each property it asserts directly against the source instead and recorded that in the coverage row.\n\n**Coverage record:** all three listed entry points answered as holds, plus four invariant rows covering the constructor and supply, bytecode, manifest, and the protected harness properties.","treeHash":null,"usage":{"cachedInputTokens":548842,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":8768,"runtime":"claude","turns":10,"wallClockMs":151310}},{"artifacts":[],"attempt":1,"bundleHash":"d72bd67b8bbffe9ee4828c01aef0aebd0d4b4def6940738145a41f2af16c3d77","device":"f0ca4c17025726f8","findings":[],"hash":"54efc4dcf8d01e333efd287da216a94f6b1babf545bf0895b1c43d74b1d9b6ed","nodeId":"bb84fc55-68ee-44d7-a867-77805bcf1623","outcome":"completed","summary":"Added tests only under `test/`, covering authorization failures, allowance rollback, edge cases, and stateful invariants.\n\n- `forge build`: passed\n- `forge test`: 29 passed, none skipped\n- Invariants: 256 sequences, 16,384 calls\n\nNo reproducible defects found. Live mainnet/v4 integration remains unverified; coverage limits are documented in `test/TESTING.md`.","treeHash":"09732e0746fb9757769d9d724c25df760f5cd810","usage":{"cachedInputTokens":359168,"inputTokens":54023,"model":"gpt-6-astra","outputTokens":11332,"runtime":"codex","turns":5,"wallClockMs":424895}},{"artifacts":[],"attempt":1,"bundleHash":"b4c1d8d5b1ef9adf35aef151d9293efcf83a56a3e49bad751dd34eb1c7e1b8e9","device":"29819a9ff9555c6f","findings":[],"hash":"57fd0489719bc06a2f0f34f4f017adc89c92801388d48eaa7f4eff326ab8918b","nodeId":"0e003acc-abc9-4dfc-b82f-5874346f7c24","outcome":"completed","summary":"Implemented BSIMDToken, the exact launch manifest, reproducible Foundry configuration, tests, and deployment documentation.\n\nVerified:\n- `forge build` passes.\n- `forge test`: 30 passed.\n- `forge fmt --check` passes.\n- Clean offline rebuild produces identical bytecode.\n\nThe full supply mints to the deployer. Live Uniswap v4 integration remains for the network’s protected launch review.","treeHash":"cbe909406cced4d84cbdd0d0f42a8e4ca17cece2","usage":{"cachedInputTokens":498816,"inputTokens":66071,"model":"gpt-6-astra","outputTokens":15213,"runtime":"codex","turns":5,"wallClockMs":550587}},{"artifacts":[],"attempt":1,"bundleHash":"f6f082ead01e7e0965393c775dc5c0992227f54181ef4ef020dc1c8c70ce58ee","device":"d13d3bb393e39302","findings":[],"hash":"685b59e27e082bb8f390463c2ed484d63a58a8d7254ebc05ae0c88592875e6d9","nodeId":"b2b0d827-86c5-476f-8f9e-5e1331b0ca56","outcome":"completed","summary":"Updated only `launch.json`, preserving the exact supply, pool settings and economics. Clarified notes to match the accepted contract.\n\nManifest fields and compiled constructor ABI checked. `forge build` succeeded; `forge test` passed all 29 tests with no failures or skips.","treeHash":"c9d2e98b61712111409f08d75954d08c36c52309","usage":{"cachedInputTokens":142821,"inputTokens":33637,"model":"gpt-6.1-sol","outputTokens":1459,"runtime":"codex","turns":3,"wallClockMs":59155}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"789312fc56d3f446","findings":[],"hash":"8b4315bc79a5329116e529f1a59fa6e8a5f36d3449f11f4a13b0b7382851c04e","nodeId":"d0703052-6ba9-48b0-9d0e-c9491ea15fec","outcome":"completed","summary":"The review is complete. No defects were substantiated in the assigned area, and the findings file holds an empty list with a full coverage record. The tree is unchanged except for that file, and the scratch test I used was removed.\n\n**What I checked, against the Access Control, Trust Gap and Asymmetry guides**\n\n- **Permission map.** The compiled ABI exposes exactly the three listed state-changing functions plus six views. There is no receive or fallback, no initializer, no owner, no role, and no admin variant of any user function. Empty calldata and unknown selectors revert.\n- **Constructor and roles after deployment.** The constructor mints exactly 1e27 units to the deploying caller and hands out nothing else. I confirmed with a CREATE2 deploy from a contract that the deployer, not the transaction origin, receives the supply.\n- **Asymmetry pairs.** The transfer and transferFrom paths share one private helper, so no caller class gets a different fee, cap or branch. The allowance index written by approve mirrors the one read by transferFrom. Self-transfer, self-approval and the max-minus-one finite allowance all behave the same as third-party cases. Failed delegated spends roll back both the allowance and the balance.\n- **Trust gap.** With no privileged actor and no economic formula in the contract, there is no seam where authorization, economics and asymmetry interact. The only trusted party is the factory holding the initial supply, which is the requested design.\n- **Runtime scan.** The deployed bytecode contains no DELEGATECALL, CALLCODE, SELFDESTRUCT, CALL, STATICCALL or CREATE, so the token makes no external calls at all.\n- **Manifest.** launch.json supply, decimals, empty constructor args, economics and pool fields match the brief and the code. The provenance opening price is consistent with the stated market cap and supply.\n\n**Static-analysis lead.** The one aderyn line, the large numeric literal, is the supply constant and evaluates to exactly 1e27. Not a defect.\n\n**Not a finding, noted for the author.** The approve-overwrite race and the irrecoverability of tokens sent to the token's own address are inherent to a plain, admin-free ERC-20 and are already documented in the README.\n\n**Still owed outside this review.** A mainnet fork run of the real factory, distributor, PoolManager and IMD pair token, and the protected harness's live v4 seed and swap checks, belong to the launch verifier and operator.","treeHash":null,"usage":{"cachedInputTokens":637341,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":10520,"runtime":"claude","turns":20,"wallClockMs":195309}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"cbc83f8151b8340d","findings":[{"citation":"resolved","description":"Execution Trace guide, 'Approval residuals' / 'Operation interleaving': approve() overwrites allowance[msg.sender][spender] without reference to the previous value or to what has already been spent. A spender who sees a pending approve(spender, NEW) in the public mempool can spend the OLD allowance first and then the NEW one, for OLD + NEW total. This is the well-known ERC-20 approve race that every plain ERC-20 (including OpenZeppelin's) has; the brief asks for plain ERC-20 transfers and README.md line 54-55 already tells users to revoke to zero before changing an allowance. It is reported at info severity so the judge sees that the only Execution-Trace lead in this contract was traced and classified, not missed. No fix is required to meet the agreed design; if the requester wants to remove the hazard, additive helpers (increaseAllowance/decreaseAllowance) would do so without changing supply, transfer rules or the absence of an owner. Nothing in the launch flow is affected: the factory, distributor and PoolManager paths use transfer()/balance-measured settlement, not an owner-granted allowance.","line":36,"path":"src/BSIMDToken.sol","reproduction":"State: deployer D holds 1e27 BSIMD. (1) D calls approve(S, 100). (2) D broadcasts approve(S, 50) intending to lower the grant. (3) S front-runs with transferFrom(D, S, 100): allowance[D][S] goes 100 -> 0 and S receives 100. (4) D's approve(S, 50) is mined: allowance[D][S] = 50. (5) S calls transferFrom(D, S, 50): S receives 50 more. Expected by D: S can move at most 100 (or at most 50 after the change). Actual: S moved 150. Verified by tracing lines 34-39 and 41-49: approve() has no compare-and-set and transferFrom() consumes whatever the current mapping value is.","severity":"info","snippet":"        allowance[msg.sender][spender] = value;","title":"approve replaces the allowance in place, so a spender can front-run an allowance change and spend old + new (inherent ERC-20 approve race; documented, no code defect against the requested plain-ERC-20"}],"hash":"90d936056ae975b041f4a17621944377da514db6d1ff80a4a9de3ec3c25869f4","nodeId":"f04c76fc-1085-40bc-a968-069e1635033c","outcome":"completed","summary":"The review is complete and the findings file is written and valid.\n\n**Outcome:** no reproducible defect in BSIMDToken. The findings file holds one info-level note and eleven coverage rows, all three listed entry points answered.\n\n**What I checked in my area (Execution Trace, Periphery, First Principles):**\n- `transfer`, `approve` and `transferFrom` traced for parameter divergence, sentinel paths, stale reads, partial state and approval residuals. The zero-address and insufficient-balance checks fire before any write, self-transfer debits then credits so balances stay exact, and every revert rolls back allowance consumption.\n- Periphery: the token returns a 32-byte `true`, moves exactly the requested amount and has no fee or exemption list, so the factory, distributor and PoolManager sync/settle/take flows arrive whole.\n- First principles: supply is a constant with no writer, the constructor credits the whole 1e27 to the deploying factory, no fallback or receive exists, and the compiled runtime contains no DELEGATECALL, CALLCODE or SELFDESTRUCT.\n- Manifest: launch.json satisfies every schema field and regex, economics match the brief verbatim, and the provenance sqrtPriceX96 recomputes exactly from the 2500 IMD cap over 1e27 units.\n- Build: solc 0.8.26, cancun, optimizer, bytecode_hash none. Build, fmt check and all 29 tests pass, including the 256-run invariant campaign.\n\n**The one recorded item** is the inherent ERC-20 approve overwrite race, reported at info severity with a concrete sequence where a spender collects old plus new allowance. The README already documents it and it does not affect the launch flows, so no fix is required for the requested plain-ERC-20 design.\n\n**Unreached:** live Uniswap v4 seeding and swaps, Merkle claims and a mainnet fork of the factory and IMD. The repo does not vendor v4-core and no network is available. The supplied protected harness covers those in the launch verifier.","treeHash":null,"usage":{"cachedInputTokens":485297,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":10669,"runtime":"claude","turns":17,"wallClockMs":209710}},{"artifacts":[],"attempt":2,"bundleHash":"466bd5e35fe4a42c223b7a31becea5a8e8510d7ac9a5d53a8275480f417c752b","device":"990f3cfeaa0e6c9a","findings":[],"hash":"b05b02994d06f8568f05bd86d941aef76d378232a26d66fd6e166a6f802c1eeb","nodeId":"0e003acc-abc9-4dfc-b82f-5874346f7c24","outcome":"completed","summary":"Implemented the Foundry project with `BSIMDToken`, launch manifest, tests, and operational documentation.\n\nThe token mints the full fixed supply to its deployer, with plain ERC-20 transfers and no admin powers. `launch.json` omits the rejected `chainId` key.\n\nVerified: `forge build`, all 19 tests, and `forge fmt --check` pass. Live Uniswap v4 integration was not run locally.","treeHash":"2e34a8681a4ba13cd2adb76dc93c78eaa1a706ea","usage":{"cachedInputTokens":267424,"inputTokens":62200,"model":"gpt-6.1-sol","outputTokens":7745,"runtime":"codex","turns":4,"wallClockMs":144503}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"78d8eb9b16352a18","findings":[],"hash":"be1ca277ef2c9be77cb1f93fbee8dd5c10cca368d0ee9369b4ad30cb1761ac24","nodeId":"ebf361c2-1cec-4613-9505-389022480ebf","outcome":"completed","summary":"The review is complete. No defects were found in the assigned area, and the findings file is written with an empty list plus a full coverage record.\n\n**Outcome.** The Math Precision, Boundary and Numerical Gap checklists found nothing to report against `src/BSIMDToken.sol`. The contract has no division, no scaling, no casts, no unchecked blocks, no external calls, no payable or fallback paths, and no bytes decoding. Every arithmetic operation is a checked add or subtract guarded by an explicit comparison, and the sum of balances is pinned at exactly 1e27, so no overflow or rounding seam exists to exploit.\n\n**What I verified**\n- All three entry points traced for guard order, state changes and revert paths. The allowance debit happens before the balance move, but a revert rolls both back atomically, and the existing tests confirm this.\n- The infinite-allowance sentinel is compared with inequality, so only exactly max is uncounted and max-1 is consumed as finite.\n- The compiled runtime contains the exact 1e27 constant, matching the manifest's totalSupply.\n- The manifest's sqrtPriceX96 is the exact floor of sqrt(2500e18 / 1e27) × 2^96 and lies inside Uniswap v4's price and tick limits in both currency orders. The 1e27 supply fits int128, so v4 deltas cannot overflow, and the 10% and 90% splits divide with no dust.\n- The existing suite of 29 tests, including the 256-run invariant with an independent ledger, passes.\n\n**Leads dismissed.** The aderyn large-numeric-literal line is style only, since the literal evaluates correctly. A zero-value transferFrom with no allowance emits a Transfer event from any sender, which ERC-20 mandates and OpenZeppelin matches, so it is not a defect.\n\n**Not reached.** Nothing within the assigned area was left unexamined. A live fork run of the seed and swap against the real PoolManager is outside this offline review and remains owed to the launch verifier.","treeHash":null,"usage":{"cachedInputTokens":538620,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":9133,"runtime":"claude","turns":17,"wallClockMs":157629}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"5fdca4f96f37a80d","findings":[],"hash":"c6287f239b897b4da15a283862f8ec0e7a8c3fff1cc1974e207f8fa68225ea30","nodeId":"a5fc575b-8e97-4ccf-9985-e2cb78a165f7","outcome":"completed","summary":"Review complete. No defects found in the Economic Security, Invariant or Flow Gap areas, and the findings file records an empty list with full coverage.\n\n**What I checked**\n\n- **Token code.** The contract in src/BSIMDToken.sol is a 60-line fixed-supply ERC-20 with no external calls, no hooks, no owner and no mint or burn path. The constructor credits msg.sender with the full 1e27 once. The only balance writer debits before it credits, so self-transfers conserve. Finite allowances are decremented before the transfer and roll back if it reverts. The max allowance is never consumed.\n- **Launch flows.** Every transfer moves exactly the requested amount for the factory, the distributor, the PoolManager and ordinary holders. The 32-byte true return satisfies Uniswap v4's low-level transfer check. The swarm's 10% arrives whole and is claimable whole.\n- **Economics.** The manifest's provenance sqrtPriceX96 equals the value derived from 2500 IMD over the full supply exactly, with BSIMD as currency0. The inverted order also fits uint160. The 90/10 split leaves a zero remainder before liquidity rounding. Single-sided liquidity fits uint128 and the per-tick cap for spacing 60.\n- **Tests.** The existing 29 tests pass, including a 256-run by 64-depth handler invariant and four 1000-run fuzz properties. A scratch probe I ran and removed confirmed the zero-sender revert, zero-value delegated transfers, the v4-style return check and the documented approve race.\n\n**Notes, not defects**\n\n- The approve front-run property is inherent to ERC-20 and matches OpenZeppelin v5. The README already tells users to revoke before changing an allowance.\n- Rounding dust sent to the dead address stays counted in totalSupply forever because there is no burn. That follows from the brief's own economics.\n\n**Coverage.** All three entry points are marked holds, plus rows for the supply conservation invariant, the factory-mint invariant, the launch flows and both economics checks. Nothing was left unreached. The working tree is unchanged apart from the findings file.","treeHash":null,"usage":{"cachedInputTokens":429042,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":11266,"runtime":"claude","turns":15,"wallClockMs":340125}}],"verification":[{"checks":[{"durationMs":524,"exitCode":0,"name":"build","output":"Compiling 5 files with Solc 0.8.26\nSolc 0.8.26 finished in 483.58ms\nCompiler run successful!\n","passed":true},{"durationMs":3481,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 9 tests for test/BSIMDToken.adversarial.t.sol:BSIMDTokenAdversarialTest\n[PASS] testFuzz_AnyNonzeroRecipientReceivesExactAmount(address,uint256) (runs: 1000, μ: 77851, ~: 78218)\n[PASS] testFuzz_ApprovalCannotBeUsedByAnotherSpenderOrOwner(uint256) (runs: 1000, μ: 340813, ~: 340828)\n[PASS] testFuzz_InfiniteApprovalCanBeSpentRepeatedlyThenRevoked(uint256) (runs: 1000, μ: 469821, ~: 469843)\n[PASS] testFuzz_OverdrawRollsBackFiniteAllowance(uint256,uint256,bool) (runs: 1000, μ: 251464, ~: 252696)\n[PASS] test_HolderTransferFromStillNeedsSelfApproval() (gas: 194157)\n[PASS] test_MaxMinusOneAllowanceIsFinite() (gas: 126788)\n[PASS] test_SelfTransferCannotOverdrawWithInfiniteApproval() (gas: 147794)\n[PASS] test_ZeroRecipientRollbackWithInfiniteApproval() (gas: 105301)\n[PASS] test_ZeroTransferFromWithoutApprovalEmitsTransfer() (gas: 74053)\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 429.76ms (598.95ms CPU time)\n\nRan 19 tests for test/BSIMDToken.t.sol:BSIMDTokenTest\n[PASS] testFuzz_AllowanceBoundary(uint256,uint256) (runs: 1000, μ: 110050, ~: 92529)\n[PASS] testFuzz_StatefulConservation(bytes32) (runs: 1000, μ: 6628761, ~: 6631052)\n[PASS] testFuzz_TransferRoundTrip(uint256) (runs: 1000, μ: 107856, ~: 108291)\n[PASS] test_ApproveOverwriteAndRevoke() (gas: 146902)\n[PASS] test_ConstructorMintsToFactoryAndEmitsEvent() (gas: 189986)\n[PASS] test_DeployerHasNoUnapprovedTransferAuthority() (gas: 136509)\n[PASS] test_ExactAllowanceAndNoReplay() (gas: 151518)\n[PASS] test_FailedTransferFromRestoresAllowance() (gas: 97494)\n[PASS] test_InfiniteAllowanceIsNotConsumed() (gas: 115386)\n[PASS] test_LaunchAndManagerTransferPathsDeliverWhole() (gas: 296025)\n[PASS] test_MetadataAndWholeSupply() (gas: 29797)\n[PASS] test_NoAdminMintBurnOrUpgradeFunctions() (gas: 752531)\n[PASS] test_RevertInsufficientBalance() (gas: 44587)\n[PASS] test_RevertZeroRecipientAndSpender() (gas: 136106)\n[PASS] test_RevertZeroSender() (gas: 33226)\n[PASS] test_RuntimeContainsNoForbiddenOpcodes() (gas: 357025)\n[PASS] test_SelfTransferFromConsumesAllowanceOnly() (gas: 94055)\n[PASS] test_TransferEntireSupplyEmitsEvent() (gas: 67516)\n[PASS] test_ZeroAndSelfTransfersPreserveBalances() (gas: 67403)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 436.00ms (933.19ms CPU time)\n\nRan 1 test for test/BSIMDToken.invariant.t.sol:BSIMDTokenInvariantTest\n[PASS] invariant_FixedSupplyBalancesAndAllowancesMatchLedger() (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------+----------------------+-------+---------+----------╮\n| Contract     | Selector             | Calls | Reverts | Discards |\n+==================================================================+\n| BSIMDHandler | advanceTime          | 2337  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | approve              | 2336  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | approveThenSpend     | 2294  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | rejectPrivilegedCall | 2331  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | rejectZeroAddress    | 2403  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | transfer             | 2356  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | transferFrom         | 2327  | 0       | 0        |\n╰--------------+----------------------+-------+---------+----------╯\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.44s (3.44s CPU time)\n\nRan 3 test suites in 3.44s (4.30s CPU time): 29 tests passed, 0 failed, 0 skipped (29 total tests)\n","passed":true},{"durationMs":21,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"BSIMDToken.approve(address,uint256)\",\"BSIMDToken.transfer(address,uint256)\",\"BSIMDToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":2,\"README.md\":69,\"foundry.toml\":10,\"launch.json\":24,\"src/BSIMDToken.sol\":61,\"test/BSIMDToken.adversarial.t.sol\":170,\"test/BSIMDToken.invariant.t.sol\":218,\"test/BSIMDToken.t.sol\":270,\"test/TESTING.md\":39,\"test/helpers/BSIMDTestBase.sol\":37},\"excluded\":[\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"54efc4dcf8d01e333efd287da216a94f6b1babf545bf0895b1c43d74b1d9b6ed","verifiedTreeHash":"09732e0746fb9757769d9d724c25df760f5cd810","verifierVersion":"0.1.0+ad90ce4c"},{"checks":[{"durationMs":424,"exitCode":0,"name":"build","output":"Compiling 5 files with Solc 0.8.26\nSolc 0.8.26 finished in 376.72ms\nCompiler run successful!\n","passed":true},{"durationMs":838,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/LaunchFlows.t.sol:LaunchFlowsTest\n[PASS] test_FactoryAllocationClaimAndPoolManagerRoundTripAreExact() (gas: 391582)\n[PASS] test_FactoryGetsFullSupplyWithoutAutomaticDistribution() (gas: 45445)\n[PASS] test_PoolManagerHasNoPrivilegeToPullWithoutAllowance() (gas: 149561)\n[PASS] test_RoundingRemainderCanMoveWithoutBurningSupply() (gas: 178392)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 561.31µs (695.69µs CPU time)\n\nRan 25 tests for test/BSIMDToken.t.sol:BSIMDTokenTest\n[PASS] testFuzz_ExactTransferRoundTrip(uint256) (runs: 1000, μ: 178286, ~: 178996)\n[PASS] testFuzz_TransferFromConservesSupplyAndSpendsOnlyAllowance(uint256,uint256) (runs: 1000, μ: 131086, ~: 143762)\n[PASS] test_AllowanceBelongsOnlyToApproverAndChosenSpender() (gas: 145279)\n[PASS] test_ApproveEmitsAndOverwritesThenRevokes() (gas: 158931)\n[PASS] test_ConstructorMintsExactlyOnceToImmediateDeployer() (gas: 34929)\n[PASS] test_DeployerCannotTakeBackHolderTokens() (gas: 143749)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 115546)\n[PASS] test_NativeEtherAndUnknownCallsRevert() (gas: 57376)\n[PASS] test_NoAdminMintBurnOrUpgradeEntryPointsForAnyone() (gas: 796707)\n[PASS] test_RevertApproveZeroSpender() (gas: 34514)\n[PASS] test_RevertMaxUintTransferWithoutOverflow() (gas: 33188)\n[PASS] test_RevertSelfTransferAboveBalance() (gas: 33229)\n[PASS] test_RevertTransferAboveBalance() (gas: 44616)\n[PASS] test_RevertTransferFromAboveAllowanceIsAtomic() (gas: 99552)\n[PASS] test_RevertTransferFromAboveBalanceRestoresAllowance() (gas: 105591)\n[PASS] test_RevertTransferFromToZeroRestoresAllowance() (gas: 95073)\n[PASS] test_RevertTransferFromZeroSender() (gas: 33229)\n[PASS] test_RevertTransferToZeroIncludingZeroAmount() (gas: 63902)\n[PASS] test_RuntimeHasNoForbiddenOpcodes() (gas: 357534)\n[PASS] test_SelfTransferPreservesEntireSupply() (gas: 40654)\n[PASS] test_TransferEntireSupplyThenBackWithoutFeeOrLimit() (gas: 138416)\n[PASS] test_TransferFromSelfConsumesAllowanceButPreservesBalance() (gas: 94379)\n[PASS] test_TransferFromUsesPartialThenExactRemainingAllowance() (gas: 213382)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 49953)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 58347)\nSuite result: ok. 25 passed; 0 failed; 0 skipped; finished in 20.30ms (41.33ms CPU time)\n\nRan 1 test for test/BSIMDInvariant.t.sol:BSIMDInvariantTest\n[PASS] invariant_AllBalancesConserveTheFixedSupply() (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------+-------------------------+-------+---------+----------╮\n| Contract     | Selector                | Calls | Reverts | Discards |\n+=====================================================================+\n| TokenHandler | approve                 | 4042  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectUnauthorisedSpend | 4054  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | transfer                | 4160  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | transferFrom            | 4128  | 0       | 0        |\n╰--------------+-------------------------+-------+---------+----------╯\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 792.51ms (791.67ms CPU time)\n\nRan 3 test suites in 793.66ms (813.38ms CPU time): 30 tests passed, 0 failed, 0 skipped (30 total tests)\n","passed":true},{"durationMs":19,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"BSIMDToken.approve(address,uint256)\",\"BSIMDToken.transfer(address,uint256)\",\"BSIMDToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":138,\"foundry.toml\":12,\"launch.json\":25,\"src/BSIMDToken.sol\":72,\"test/BSIMDInvariant.t.sol\":125,\"test/BSIMDToken.t.sol\":312,\"test/LaunchFlows.t.sol\":105,\"test/TestBase.sol\":43},\"excluded\":[\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":270,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":301,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/BSIMDToken.sol:12: Large Numeric Literal","passed":true}],"detail":"launch.json is not a valid launch manifest: (root): Unrecognized key: \"chainId\"","evaluation":"checks","profile":"foundry","status":"rejected","submissionHash":"57fd0489719bc06a2f0f34f4f017adc89c92801388d48eaa7f4eff326ab8918b","verifiedTreeHash":"cbe909406cced4d84cbdd0d0f42a8e4ca17cece2","verifierVersion":"0.1.0+ad90ce4c"},{"checks":[{"durationMs":675,"exitCode":0,"name":"build","output":"Compiling 5 files with Solc 0.8.26\nSolc 0.8.26 finished in 611.85ms\nCompiler run successful!\n","passed":true},{"durationMs":4432,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 9 tests for test/BSIMDToken.adversarial.t.sol:BSIMDTokenAdversarialTest\n[PASS] testFuzz_AnyNonzeroRecipientReceivesExactAmount(address,uint256) (runs: 1000, μ: 77892, ~: 78218)\n[PASS] testFuzz_ApprovalCannotBeUsedByAnotherSpenderOrOwner(uint256) (runs: 1000, μ: 340830, ~: 340924)\n[PASS] testFuzz_InfiniteApprovalCanBeSpentRepeatedlyThenRevoked(uint256) (runs: 1000, μ: 469847, ~: 469987)\n[PASS] testFuzz_OverdrawRollsBackFiniteAllowance(uint256,uint256,bool) (runs: 1000, μ: 252126, ~: 252672)\n[PASS] test_HolderTransferFromStillNeedsSelfApproval() (gas: 194157)\n[PASS] test_MaxMinusOneAllowanceIsFinite() (gas: 126788)\n[PASS] test_SelfTransferCannotOverdrawWithInfiniteApproval() (gas: 147794)\n[PASS] test_ZeroRecipientRollbackWithInfiniteApproval() (gas: 105301)\n[PASS] test_ZeroTransferFromWithoutApprovalEmitsTransfer() (gas: 74053)\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 507.70ms (1.60s CPU time)\n\nRan 19 tests for test/BSIMDToken.t.sol:BSIMDTokenTest\n[PASS] testFuzz_AllowanceBoundary(uint256,uint256) (runs: 1000, μ: 109746, ~: 92529)\n[PASS] testFuzz_StatefulConservation(bytes32) (runs: 1000, μ: 6639256, ~: 6638024)\n[PASS] testFuzz_TransferRoundTrip(uint256) (runs: 1000, μ: 108005, ~: 108339)\n[PASS] test_ApproveOverwriteAndRevoke() (gas: 146902)\n[PASS] test_ConstructorMintsToFactoryAndEmitsEvent() (gas: 189986)\n[PASS] test_DeployerHasNoUnapprovedTransferAuthority() (gas: 136509)\n[PASS] test_ExactAllowanceAndNoReplay() (gas: 151518)\n[PASS] test_FailedTransferFromRestoresAllowance() (gas: 97494)\n[PASS] test_InfiniteAllowanceIsNotConsumed() (gas: 115386)\n[PASS] test_LaunchAndManagerTransferPathsDeliverWhole() (gas: 296025)\n[PASS] test_MetadataAndWholeSupply() (gas: 29797)\n[PASS] test_NoAdminMintBurnOrUpgradeFunctions() (gas: 752531)\n[PASS] test_RevertInsufficientBalance() (gas: 44587)\n[PASS] test_RevertZeroRecipientAndSpender() (gas: 136106)\n[PASS] test_RevertZeroSender() (gas: 33226)\n[PASS] test_RuntimeContainsNoForbiddenOpcodes() (gas: 357025)\n[PASS] test_SelfTransferFromConsumesAllowanceOnly() (gas: 94055)\n[PASS] test_TransferEntireSupplyEmitsEvent() (gas: 67516)\n[PASS] test_ZeroAndSelfTransfersPreserveBalances() (gas: 67403)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 509.44ms (1.52s CPU time)\n\nRan 1 test for test/BSIMDToken.invariant.t.sol:BSIMDTokenInvariantTest\n[PASS] invariant_FixedSupplyBalancesAndAllowancesMatchLedger() (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------+----------------------+-------+---------+----------╮\n| Contract     | Selector             | Calls | Reverts | Discards |\n+==================================================================+\n| BSIMDHandler | advanceTime          | 2387  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | approve              | 2313  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | approveThenSpend     | 2421  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | rejectPrivilegedCall | 2319  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | rejectZeroAddress    | 2354  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | transfer             | 2313  | 0       | 0        |\n|--------------+----------------------+-------+---------+----------|\n| BSIMDHandler | transferFrom         | 2277  | 0       | 0        |\n╰--------------+----------------------+-------+---------+----------╯\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.38s (4.37s CPU time)\n\nRan 3 test suites in 4.38s (5.39s CPU time): 29 tests passed, 0 failed, 0 skipped (29 total tests)\n","passed":true},{"durationMs":29,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"BSIMDToken.approve(address,uint256)\",\"BSIMDToken.transfer(address,uint256)\",\"BSIMDToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":2,\"README.md\":69,\"foundry.toml\":10,\"launch.json\":24,\"src/BSIMDToken.sol\":61,\"test/BSIMDToken.adversarial.t.sol\":170,\"test/BSIMDToken.invariant.t.sol\":218,\"test/BSIMDToken.t.sol\":270,\"test/TESTING.md\":39,\"test/helpers/BSIMDTestBase.sol\":37},\"excluded\":[\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"685b59e27e082bb8f390463c2ed484d63a58a8d7254ebc05ae0c88592875e6d9","verifiedTreeHash":"c9d2e98b61712111409f08d75954d08c36c52309","verifierVersion":"0.1.0+ad90ce4c"},{"checks":[{"durationMs":288,"exitCode":0,"name":"build","output":"Compiling 2 files with Solc 0.8.26\nSolc 0.8.26 finished in 239.01ms\nCompiler run successful!\n","passed":true},{"durationMs":478,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 19 tests for test/BSIMDToken.t.sol:BSIMDTokenTest\n[PASS] testFuzz_AllowanceBoundary(uint256,uint256) (runs: 1000, μ: 112576, ~: 130987)\n[PASS] testFuzz_StatefulConservation(bytes32) (runs: 1000, μ: 6635250, ~: 6636123)\n[PASS] testFuzz_TransferRoundTrip(uint256) (runs: 1000, μ: 107810, ~: 108291)\n[PASS] test_ApproveOverwriteAndRevoke() (gas: 146902)\n[PASS] test_ConstructorMintsToFactoryAndEmitsEvent() (gas: 189986)\n[PASS] test_DeployerHasNoUnapprovedTransferAuthority() (gas: 136509)\n[PASS] test_ExactAllowanceAndNoReplay() (gas: 151518)\n[PASS] test_FailedTransferFromRestoresAllowance() (gas: 97494)\n[PASS] test_InfiniteAllowanceIsNotConsumed() (gas: 115386)\n[PASS] test_LaunchAndManagerTransferPathsDeliverWhole() (gas: 296025)\n[PASS] test_MetadataAndWholeSupply() (gas: 29797)\n[PASS] test_NoAdminMintBurnOrUpgradeFunctions() (gas: 752531)\n[PASS] test_RevertInsufficientBalance() (gas: 44587)\n[PASS] test_RevertZeroRecipientAndSpender() (gas: 136106)\n[PASS] test_RevertZeroSender() (gas: 33226)\n[PASS] test_RuntimeContainsNoForbiddenOpcodes() (gas: 357025)\n[PASS] test_SelfTransferFromConsumesAllowanceOnly() (gas: 94055)\n[PASS] test_TransferEntireSupplyEmitsEvent() (gas: 67516)\n[PASS] test_ZeroAndSelfTransfersPreserveBalances() (gas: 67403)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 433.60ms (1.29s CPU time)\n\nRan 1 test suite in 434.47ms (433.60ms CPU time): 19 tests passed, 0 failed, 0 skipped (19 total tests)\n","passed":true},{"durationMs":18,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"BSIMDToken.approve(address,uint256)\",\"BSIMDToken.transfer(address,uint256)\",\"BSIMDToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":2,\"README.md\":69,\"foundry.toml\":10,\"launch.json\":24,\"src/BSIMDToken.sol\":61,\"test/BSIMDToken.t.sol\":270},\"excluded\":[\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":283,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":213,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/BSIMDToken.sol:9: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"b05b02994d06f8568f05bd86d941aef76d378232a26d66fd6e166a6f802c1eeb","verifiedTreeHash":"2e34a8681a4ba13cd2adb76dc93c78eaa1a706ea","verifierVersion":"0.1.0+ad90ce4c"}]}