{"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":"240e9e46-2431-4579-a893-cad5fa118e4f","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"8701dfd28aa26ac7139ac7e39a626f6453365bcffe7b7bebe6347d58738715d1","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"485a165266c06a967f740ff6beb4e6d0b547af378cc988b4b7316271ed5bf960","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"18a9306d49f38bd881f6d30f754afd856aa397e7b832272e2f41f9b6933e675c","dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"b89279670f5a00f5d26286edee00c97dd158b997031350a01cafe6e0329ad227","skillId":"audit-judge","subagents":4,"tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"b89279670f5a00f5d26286edee00c97dd158b997031350a01cafe6e0329ad227","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"da85ccb4ccf8bce627144dc8a78d888767a486d5adfbd916de7cd234dd84f811","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"f3d848cba242d8bb4f7ffa7d31a10c852278930a6ba367ccb6f8c43b68f4a58a","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","subagents":3,"tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"bc5bfc8455464381f2db18badb2b55cf8bec1e535c019349a0378fa990741171","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"db3898e2bff965f82f6883f89c00605d42740722d57e898f1ae3626cbfe52311","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"15b04fc8f60521936b9e2b37c09a804685ec689fc98cd5b04510d986d3106a15","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"15b04fc8f60521936b9e2b37c09a804685ec689fc98cd5b04510d986d3106a15","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"e8188544760def8eeac81a20f9cf25ae0b5ecf05593bd4fd0c616bc591437603","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"cab5f06907c937eb1391787d9bbb0baee09d3282d79cc0c9a114d8bfa71dd6df","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"606842ccca0e7c5d3017a54684625438eab9b351eb51dcf0cf88c43d1ea41464","skillId":"write-foundry-tests","subagents":4,"tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"606842ccca0e7c5d3017a54684625438eab9b351eb51dcf0cf88c43d1ea41464","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: Simdlaunch (SIMD).\nToken name: Simdlaunch\nToken symbol: SIMD\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"efed7d0bbf7cef2e45564570f80696ba9283007b3ea0bc0670a0394196bd9174","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"240e9e46-2431-4579-a893-cad5fa118e4f","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-2851-simdlaunch"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"53937","feedbackHash":"dee5472ef7154a79b06bca37f86208dde4dad04643572617fc3bb74bb4330441","nodeKey":"audit_economics","submissionHash":"8701dfd28aa26ac7139ac7e39a626f6453365bcffe7b7bebe6347d58738715d1","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51445","feedbackHash":"01e3795a8ea3cf4894dbbbe872f7e2fcb36e6f39944342f8afeff73788976ede","nodeKey":"audit_flow","submissionHash":"485a165266c06a967f740ff6beb4e6d0b547af378cc988b4b7316271ed5bf960","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52391","feedbackHash":"a75a3382288fec0e4d2d6fe37988ea05f7895814755383f23ffaf230585e37cd","nodeKey":"audit_judge","submissionHash":"18a9306d49f38bd881f6d30f754afd856aa397e7b832272e2f41f9b6933e675c","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52481","feedbackHash":"005fd443ad50a25598a87738232c7644cd818e6a0402e34645914e444582d435","nodeKey":"audit_math","submissionHash":"da85ccb4ccf8bce627144dc8a78d888767a486d5adfbd916de7cd234dd84f811","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52616","feedbackHash":"c9ef9fabbec9d255460ca6e4fb9f8a16810cd21c11bc35dadbdc29fbe8918dcc","nodeKey":"audit_permissions","submissionHash":"f3d848cba242d8bb4f7ffa7d31a10c852278930a6ba367ccb6f8c43b68f4a58a","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52471","feedbackHash":"bb581eba83ade375092273e350f3b1b83ede9c8dcf95f4be7d2ad909c25247c4","nodeKey":"build_contract_project","submissionHash":"db3898e2bff965f82f6883f89c00605d42740722d57e898f1ae3626cbfe52311","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52473","feedbackHash":"ddfcb3e1d0791c15d634626fb53afc195d4849d26a5fce256598b73d97d38892","nodeKey":"manifest","submissionHash":"e8188544760def8eeac81a20f9cf25ae0b5ecf05593bd4fd0c616bc591437603","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52472","feedbackHash":"74dc0949678b9f036b05f2ef09b4831c5109cce99adb451320983c8714e3b5d1","nodeKey":"write_foundry_tests","submissionHash":"cab5f06907c937eb1391787d9bbb0baee09d3282d79cc0c9a114d8bfa71dd6df","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"5e9c94056c9ea29adeb732fe7ea30c4c4bb82a567f24ffe1f020f9c382671e0d","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"686fbab25113a42b","findings":[{"citation":"resolved","description":"Merged from audit_flow (Periphery pass); reproduced. DEPENDENCIES.md states the forge-std src tree is unmodified and ships per-file SHA-256 digests, and README.md line 47 says 'Vendored source hashes were verified against their included checksum files'. lib/forge-std/SHA256SUMS holds the upstream v1.9.7 digests (e.g. line 18: '9068805b59ac1d0ea03a8fa1f15ae49c094e0c6c852a2500e0dd112f264b2cb1  src/Vm.sol'), but seven shipped files differ from upstream: src/StdAssertions.sol, src/StdJson.sol, src/StdToml.sol, src/Vm.sol, src/console.sol, src/interfaces/IERC7540.sol, src/interfaces/IMulticall3.sol. I downloaded the upstream v1.9.7 archive (SHA-256 45157353ab49eab01d294565866731e599b32401757229689ee459aa26b7ee94, matching DEPENDENCIES.md line 12) and compared: with all whitespace stripped every one of the seven is identical to upstream (Vm.sol is 1847 lines upstream vs 1819 vendored, consistent with `forge fmt` re-wrapping signatures; foundry.toml has no [fmt] ignore for lib/). The OpenZeppelin tree is clean: all six files are byte-identical to the upstream v5.1.0 archive (SHA-256 8a3b08cfc756437ba3343901565b18182adb42ec1e621960240a19da5d738686) and pass SHA256SUMS. Impact: none on the deployed token; forge-std is test-only and semantically unchanged, and the ERC-20 the token inherits is verified upstream-identical. The defect is a provenance record that contradicts itself, so the documented verification step fails for anyone who runs it. Fix: regenerate lib/forge-std/SHA256SUMS from the files as shipped, or restore the byte-exact upstream files and add `ignore = [\"lib/**\"]` under [fmt] so the formatter does not touch vendored code.","line":15,"path":"DEPENDENCIES.md","reproduction":"From the repository root run: cd lib/forge-std && sha256sum -c SHA256SUMS | grep -v ': OK'. Expected (per DEPENDENCIES.md line 15 and README.md line 47): no output, every line OK. Actual: 'sha256sum: WARNING: 7 computed checksums did NOT match' with src/StdAssertions.sol, src/StdJson.sol, src/StdToml.sol, src/Vm.sol, src/console.sol, src/interfaces/IERC7540.sol, src/interfaces/IMulticall3.sol each reported FAILED. Control: cd lib/openzeppelin-contracts && sha256sum -c SHA256SUMS reports all 6 entries OK. Confirming whitespace-only: fetch https://codeload.github.com/foundry-rs/forge-std/tar.gz/refs/tags/v1.9.7, extract, and for each of the seven files compare `tr -d ' \\n\\t\\r' < file | sha256sum` for the upstream and vendored copy; the digests are equal for all seven while `cmp` reports them different.","severity":"info","snippet":"OpenZeppelin includes only the unmodified ERC-20 implementation and its transitive dependencies, under MIT. Forge Standard Library includes its unmodified src tree for tests, under MIT OR Apache-2.0. License texts and file SHA-256 digests are included in each directory. No submodules or installation steps are required.","title":"Vendored forge-std checksum file does not match seven shipped files (whitespace-only reformatting), so the documented provenance check fails"}],"hash":"18a9306d49f38bd881f6d30f754afd856aa397e7b832272e2f41f9b6933e675c","nodeId":"8cfccacd-1bdf-4698-a309-72a84a39c568","outcome":"completed","summary":"Review complete. The findings file is written at the repository root and the tree is otherwise unchanged.\n\n**Outcome:** the token is clean. The only finding kept is the one audit_flow reported, at info severity. The other three specialists and the test writer reported nothing, and my own pass found nothing to add.\n\n**What I reproduced:**\n- The forge-std checksum mismatch holds. Running the checksum file in lib/forge-std reports seven files FAILED. I downloaded the upstream v1.9.7 archive, confirmed its hash matches DEPENDENCIES.md, and showed that each of the seven files is identical to upstream once whitespace is stripped. The OpenZeppelin tree is byte-identical to the upstream v5.1.0 archive. Impact on the deployed token is none, since forge-std is test-only, so it stays info.\n- The aderyn large-numeric-literal lead is the readable supply constant and is not a defect. Dropped.\n\n**My own pass:** the contract is an unmodified OpenZeppelin ERC20 with one fixed mint to msg.sender in an argument-free constructor. No owner, mint, burn, pause or blacklist exists. The compiled runtime has no DELEGATECALL, CALLCODE or SELFDESTRUCT, has no link references, and is far under the size limits. The manifest matches the code on contract name, metadata, empty constructor arguments and supply. The repository suite of 52 tests, including the invariant suite with revert failure enabled, passes. The protected tests could not compile here because they need the service's Uniswap v4 harness, so I checked their conditions by hand instead.\n\n**Coverage:** all three entry points answered as holds, plus rows for the constructor, manifest, deployability and the static-analysis leads.","treeHash":null,"usage":{"cachedInputTokens":493059,"inputTokens":450,"model":"claude-fable-5-1","outputTokens":9042,"runtime":"claude","turns":15,"wallClockMs":136765}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"fa8fc4653a9e883d","findings":[{"citation":"resolved","description":"Periphery pass. DEPENDENCIES.md says the forge-std src tree is unmodified and that per-file SHA-256 digests are included, and README.md line 47 says 'Vendored source hashes were verified against their included checksum files'. For lib/forge-std that statement is not true of the tree as delivered: lib/forge-std/SHA256SUMS lists the upstream v1.9.7 digests, but seven files in lib/forge-std/src (StdAssertions.sol, StdJson.sol, StdToml.sol, Vm.sol, console.sol, interfaces/IERC7540.sol, interfaces/IMulticall3.sol) have different digests. I downloaded the upstream v1.9.7 archive (its SHA-256 matches the one in DEPENDENCIES.md) and diffed: every difference is line-wrapping/indentation only, consistent with `forge fmt` having been run over lib/ (foundry.toml has no [fmt] exclude for lib), and with all whitespace stripped each file is byte-identical to upstream. The OpenZeppelin tree is clean: all six files match both the included SHA256SUMS and the upstream v5.1.0 archive. Impact: none on the deployed token (forge-std is test-only and semantically unchanged); the defect is that the shipped provenance record is internally inconsistent, so a reviewer running the documented check gets 7 FAILED lines. Fix: either regenerate lib/forge-std/SHA256SUMS from the files as shipped, or restore the upstream byte-exact files and add `ignore = [\"lib/**\"]` under [fmt] so the formatter does not touch vendored code.","line":15,"path":"DEPENDENCIES.md","reproduction":"From the repository root run: `cd lib/forge-std && sha256sum -c SHA256SUMS | grep -v OK`. Expected (per DEPENDENCIES.md/README): every line OK. Actual: 'sha256sum: WARNING: 7 computed checksums did NOT match' with src/StdAssertions.sol, src/StdJson.sol, src/StdToml.sol, src/Vm.sol, src/console.sol, src/interfaces/IERC7540.sol, src/interfaces/IMulticall3.sol reported FAILED. For comparison `cd lib/openzeppelin-contracts && sha256sum -c SHA256SUMS` reports all 6 entries OK. Fetching https://codeload.github.com/foundry-rs/forge-std/tar.gz/refs/tags/v1.9.7 (sha256 45157353ab49eab01d294565866731e599b32401757229689ee459aa26b7ee94, as documented) and comparing e.g. src/Vm.sol with `diff` shows only re-wrapped function signatures; `tr -d ' \\n\\t\\r' < file | sha256sum` gives identical digests for upstream and vendored copies of all seven files.","severity":"info","snippet":"OpenZeppelin includes only the unmodified ERC-20 implementation and its transitive dependencies, under MIT. Forge Standard Library includes its unmodified src tree for tests, under MIT OR Apache-2.0. License texts and file SHA-256 digests are included in each directory. No submodules or installation steps are required.","title":"Vendored forge-std checksum file does not match seven of the vendored files (whitespace-only reformatting), contradicting the documented provenance check"}],"hash":"485a165266c06a967f740ff6beb4e6d0b547af378cc988b4b7316271ed5bf960","nodeId":"c085d614-8373-461e-8cbe-e122905f5bf3","outcome":"completed","summary":"The review is complete and written to `.imd-findings.json`. No files in the repository were changed, and the working tree is still clean apart from the findings file.\n\n**Outcome: no defects in the token.** The contract is a 17-line wrapper over an unmodified OpenZeppelin v5.1.0 ERC-20 that mints 10^27 units to the deployer once. All three listed entry points hold, and the one finding is an info-level provenance note.\n\nWhat I checked in my area:\n\n- **Execution Trace.** Traced approve, transfer and transferFrom through the OpenZeppelin code to their storage writes and revert paths. No external calls, no callbacks, no sentinel path other than the documented unlimited-allowance case, and failed transferFrom calls roll back the allowance write.\n- **Periphery.** Verified the six vendored OpenZeppelin files byte for byte against the upstream v5.1.0 archive, whose hash matches the one documented. Context uses plain msg.sender.\n- **First Principles.** Constructor takes no arguments and mints to the immediate deployer, so the factory receives the whole supply under CREATE2. The ABI exposes no mint, burn, owner, pause or upgrade functions. The runtime bytecode has no reachable DELEGATECALL, CALLCODE, SELFDESTRUCT or any CALL-family opcode.\n- **Launch flows.** Factory to distributor, claims, pool seeding and swaps are plain transfers that arrive whole, so the protected floor's transfer and supply checks are satisfied by construction.\n\nThe build and the project's 34 tests pass under the documented seed.\n\n**One finding, severity info.** The vendored forge-std checksum file does not match seven of its files. I diffed them against the upstream v1.9.7 archive and every difference is whitespace only, consistent with the formatter having been run over the library directory. This is test tooling with no effect on the token, but the README and DEPENDENCIES.md claim the checksums were verified, and that claim fails as shipped. The fix is to regenerate the checksum file or exclude lib from the formatter.\n\nCoverage has eight rows: the three entry points plus the constructor and four invariants, all holds except the forge-std row, which points at the info finding. No proof test was written since nothing reached high severity.","treeHash":null,"usage":{"cachedInputTokens":576120,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":11877,"runtime":"claude","turns":25,"wallClockMs":161419}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"33bef35e96ccb653","findings":[],"hash":"8701dfd28aa26ac7139ac7e39a626f6453365bcffe7b7bebe6347d58738715d1","nodeId":"eb46a30a-515b-4049-952b-5274b90f2829","outcome":"completed","summary":"The review is complete. The findings file is written, the scratch test is removed, and no repository file was changed.\n\n**Result: no defects found in the economics area.** The file `.imd-findings.json` holds an empty findings list and seven coverage rows, all `holds`.\n\n**What the token is.** One contract, a stock OpenZeppelin v5.1.0 ERC-20 with a single constructor mint of one billion tokens at 18 decimals to the deployer. It adds no overrides, no owner, no hooks and no extra entry points. I confirmed the six vendored OpenZeppelin files are byte-identical to the upstream v5.1.0 tag, and the compiled ABI exposes only approve, transfer and transferFrom as state-changing functions.\n\n**What I checked against the three guides.**\n- **Economic Security.** No external dependency, oracle or callback exists. Operations at reported maxima succeed, overdrafts and zero-address sentinels revert atomically, and no selector can grow or shrink supply. The 10/70/20 launch split divides the supply with no remainder.\n- **Invariant.** Sum of balances equals total supply after randomized transfer sequences, in both the project's stateful suite and my own independent fuzz check. Finite allowances decrement exactly and the unlimited allowance is untouched.\n- **Flow Gap.** A delta-measured settlement, as the Uniswap v4 PoolManager performs it, receives exactly the nominal amount in both directions, so the distributor transfer, pool seed, claims and swaps arrive whole. The reachable-opcode scan from the protected floor passes and the token rejects ETH.\n\n**Static analysis leads.** Slither reported nothing. Aderyn's large-numeric-literal note is a style remark on a compile-time constant that evaluates to exactly 10^27, not a defect.\n\n**Not covered.** The protected integration test needs the network's v4 harness, which is not vendored here, so I did not execute a real PoolManager seed and swap. The ERC-20 approve race is standard behavior already documented in the README and was not reported as a finding.","treeHash":null,"usage":{"cachedInputTokens":551271,"inputTokens":322,"model":"claude-fable-5-1","outputTokens":12931,"runtime":"claude","turns":22,"wallClockMs":175292}},{"artifacts":[],"attempt":1,"bundleHash":"70dff6f76aa867944b2b38c58b931a8cf7014bf2be4ee429cc106e66e1780a49","device":"98525db16a699f7a","findings":[],"hash":"cab5f06907c937eb1391787d9bbb0baee09d3282d79cc0c9a114d8bfa71dd6df","nodeId":"c4c3daa0-21e4-47b8-9e77-911b4502805e","outcome":"completed","summary":"Completed under `test/` only. Added 18 boundary/fuzz tests and expanded invariants covering allowance transitions, failure rollback, and supply conservation.\n\nValidation passed with the required seed:\n\n- `forge build`\n- 51 unit/fuzz tests\n- 32,768 invariant handler calls\n\nNo implementation defects were reproduced.","treeHash":"9e6f9f6f4d63c94a669d23ae98a5213c0ef758ab","usage":{"cachedInputTokens":896512,"inputTokens":62047,"model":"gpt-6-astra","outputTokens":15417,"runtime":"codex","turns":5,"wallClockMs":378478}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a4e285247c6f8aed","findings":[],"hash":"da85ccb4ccf8bce627144dc8a78d888767a486d5adfbd916de7cd234dd84f811","nodeId":"5b44f0e5-63b0-4fd4-abb0-21885c62b9fe","outcome":"completed","summary":"The math review of Simdlaunch found no defects. The findings file is written with an empty list and six coverage rows.\n\n**What the token is.** One constant and a constructor over an unmodified OpenZeppelin v5.1.0 ERC-20. I confirmed all five vendored OZ files are byte-identical to the upstream v5.1.0 release by SHA-256, so the arithmetic under review is OZ's `_update`, `_mint`, `_approve` and `_spendAllowance`.\n\n**Math Precision pass.** The supply constant `1_000_000_000 * 10 ** 18` folds to exactly 10^27, checked with node. The only arithmetic is OZ's checked balance guard followed by unchecked subtract and add, both bounded by a total supply that is about 10^50 times below the uint256 limit. There are no divisions, casts, scale conversions or fees, so no rounding or truncation surface exists. The aderyn large-literal lead is this exact constant and is not a defect.\n\n**Boundary pass.** Scratch tests exercised the edges and all behaved as intended:\n- Transfer of balance plus one and of max uint revert with the correct insufficient-balance error.\n- Self-transfer of the full balance by both transfer and transferFrom preserves the balance.\n- Allowance exactly equal spends to zero. Allowance one short reverts. Max allowance is the infinite sentinel and is not decremented. Max minus one is decremented normally.\n- An allowance larger than the balance is still bounded by the balance check.\n- Zero-value transfers succeed. Zero-address sender, receiver and spender all revert.\n\n**Numerical Gap pass.** Supply conservation held under fuzzing and under the project's own stateful invariant suite over 8,192 calls. The 10 percent and 70 percent launch allocations divide 10^27 exactly, and with no fee or hook every launch flow moves exactly what is sent.\n\n**Coverage.** All three listed entry points are marked holds, with three extra rows for the constructor constant, the supply invariant and the launch-flow exactness. Nothing in the assigned area was left unreached. The scratch test directory was removed and the working tree is unchanged apart from the findings file.","treeHash":null,"usage":{"cachedInputTokens":302919,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":9569,"runtime":"claude","turns":18,"wallClockMs":137977}},{"artifacts":[],"attempt":1,"bundleHash":"ddaba7c8b274707e93e60a159d98ec9a78c85996bac88cc6f46583fa86f0d9f5","device":"cf6f08a25e988161","findings":[],"hash":"db3898e2bff965f82f6883f89c00605d42740722d57e898f1ae3626cbfe52311","nodeId":"e9fa1aa3-c619-47c9-9b6a-b5d173066461","outcome":"completed","summary":"Implemented Simdlaunch (SIMD): 1 billion tokens, 18 decimals, minted once to the deployer.\n\nIncluded vendored dependencies, success/failure tests, fuzz tests, stateful invariants, and deployment documentation.\n\nVerified with Solidity 0.8.26:\n\n- `forge build`, including an offline rebuild\n- `forge test`: 34 passed with the supplied seed\n- `forge fmt --check`\n\nProtected network integration tests remain for the verifier’s harness.","treeHash":"5aa7bbab71fb69e20642649556c6464f631ac119","usage":{"cachedInputTokens":395136,"inputTokens":45401,"model":"gpt-6-astra","outputTokens":15378,"runtime":"codex","turns":5,"wallClockMs":282173}},{"artifacts":[],"attempt":1,"bundleHash":"8d5abcef556cca535c8f6a0b0dc729e36b9e3e2a7692ff92cd00265ded8d294b","device":"d67781b306f5a952","findings":[],"hash":"e8188544760def8eeac81a20f9cf25ae0b5ecf05593bd4fd0c616bc591437603","nodeId":"bebbd5cd-2f4a-4f19-a8d7-fe0313847e48","outcome":"completed","summary":"Created `launch.json` matching the accepted Simdlaunch constructor, exact supply, pool settings, and economics. Only the manifest is changed.\n\nVerified manifest fields and compiled constructor ABI. `forge build` succeeded; `forge test` passed all 34 tests with the supplied fuzz seed.","treeHash":"452f5fcea6aa32dda13528af22955a1b6194f47b","usage":{"cachedInputTokens":164352,"inputTokens":20643,"model":"gpt-6-astra","outputTokens":2273,"runtime":"codex","turns":3,"wallClockMs":52404}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a7979f925df7a720","findings":[],"hash":"f3d848cba242d8bb4f7ffa7d31a10c852278930a6ba367ccb6f8c43b68f4a58a","nodeId":"50e0e529-c97a-4987-86c4-6378d0c8cd1a","outcome":"completed","summary":"I found no defects in the permissions area (Access Control, Trust Gap and Asymmetry). `.imd-findings.json` holds `{\"findings\":[]}` and a coverage record with a row for each of the 3 entry points, all `holds`. It also has rows for the constructor and three invariants I checked. No tracked files were changed.\n\n**What I reviewed**\n- `src/Simdlaunch.sol` is 17 lines. It inherits OpenZeppelin v5.1.0 `ERC20`, and its constructor mints `1_000_000_000 * 10 ** 18` once to `msg.sender`.\n- There's no owner, role, modifier, override, fee, exemption list or callback hook.\n- I read the vendored `ERC20.sol` and `Context.sol` directly: `approve`, `transfer`, `transferFrom`, `_update`, `_approve` and `_spendAllowance`. All six vendored files match the digests in the library's own `SHA256SUMS`. That file is vendored too, so this only shows the files are internally consistent. I also read the code against upstream v5.1 logic.\n- There's no `delegatecall`, `selfdestruct` or assembly anywhere in `src/` or the vendored files.\n\n**Access Control**\n- Every state-changing path acts only on the caller's own balance or allowance (`msg.sender`).\n- `transferFrom` spends the allowance before moving tokens, and the whole call reverts if either step fails.\n- Nothing can mint after the constructor, and nothing can pause, blacklist, freeze or seize a balance.\n\n**Trust Gap**\n- No role survives deployment. The factory receives the full supply and gets no other power.\n- The launch flows (factory to distributor, factory to PoolManager, trades) move exactly the stated amount.\n\n**Asymmetry**\n- `transfer` and `transferFrom` share one `_update` path with the same checks.\n- Zero-address rules are the standard ones: no sending or approving to address zero.\n- The only infinite allowance is `type(uint256).max`, as documented.\n\n**Leads I checked and dropped**\n- **aderyn large-numeric-literal at line 12:** this is the intended supply constant, 1e27. Not a defect.\n- **slither:** reported nothing.\n- **Approve front-running race:** standard ERC-20 behaviour, not a defect in this code, so I didn't report it.\n\n**Not covered:** there's no `launch.json` in the tree yet, so the manifest wasn't reviewed. The protected floor tests import files that aren't in this tree (the floor checks, `LaunchLiquidity`, v4-core), so I couldn't run them here. The project's own 34 tests pass.","treeHash":null,"usage":{"cachedInputTokens":237921,"inputTokens":18,"model":"claude-opus-5-5","outputTokens":3648,"runtime":"claude","turns":9,"wallClockMs":53265}}],"verification":[{"checks":[{"durationMs":1543,"exitCode":0,"name":"build","output":"Compiling 29 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.48s\nCompiler run successful!\n","passed":true},{"durationMs":8472,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 33 tests for test/Simdlaunch.t.sol:SimdlaunchTest\n[PASS] testFuzz_AllowanceOverdrawReverts(uint256,uint256) (runs: 1000, μ: 128117, ~: 128251)\nLogs:\n  Bound result 355448513179237735249948721\n  Bound result 933768070243600300164231879\n\n[PASS] testFuzz_ApproveSetsExactAllowance(uint256) (runs: 1000, μ: 88503, ~: 88730)\n[PASS] testFuzz_OverdrawReverts(uint256) (runs: 1000, μ: 71816, ~: 72157)\nLogs:\n  Bound result 1000000000000000000000000001\n\n[PASS] testFuzz_TransferConservesSupply(uint256,address) (runs: 1000, μ: 95929, ~: 96321)\nLogs:\n  Bound result 1110656123827262052030274997575716274749304014933\n  Bound result 0\n\n[PASS] testFuzz_TransferFromConservesSupplyAndAccountsForAllowance(uint256,uint256) (runs: 1000, μ: 166254, ~: 168414)\nLogs:\n  Bound result 4702\n\n[PASS] test_ApproveEmitsEventAndDoesNotMoveTokens() (gas: 93601)\n[PASS] test_ApproveOverwritesAndCanBeRevoked() (gas: 139706)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 40230)\n[PASS] test_ConstructorEmitsExactlyOneMint() (gas: 12238)\n[PASS] test_Create2DeploymentUsesArgumentFreeCreationCode() (gas: 327791)\n[PASS] test_DeployerCannotSpendHolderTokensWithoutApproval() (gas: 155634)\n[PASS] test_FactoryReceivesAllSupply() (gas: 345294)\n[PASS] test_LaunchDistributionClaimsAndTradingTransfersArriveWhole() (gas: 696806)\n[PASS] test_MetadataAndInitialSupply() (gas: 111809)\n[PASS] test_NoExternalMintBurnAdminOrUpgradeEntryPoints() (gas: 852882)\n[PASS] test_RejectsNativeEtherAndUnknownCalls() (gas: 67303)\n[PASS] test_RevokedApprovalCannotSpend() (gas: 176098)\n[PASS] test_SelfTransferPreservesBalanceAndEmitsEvent() (gas: 56794)\n[PASS] test_SelfTransferStillRequiresBalance() (gas: 35951)\n[PASS] test_TransferEntireBalance() (gas: 78349)\n[PASS] test_TransferFromCannotUseAnotherSpendersApproval() (gas: 163301)\n[PASS] test_TransferFromConsumesAllowanceAndEmitsTransfer() (gas: 289286)\n[PASS] test_TransferFromInfiniteAllowanceIsNotDecremented() (gas: 199397)\n[PASS] test_TransferFromInsufficientAllowanceRevertsWithoutChanges() (gas: 175936)\n[PASS] test_TransferFromInsufficientBalanceRollsBackAllowance() (gas: 181593)\n[PASS] test_TransferFromSelfConsumesAllowanceWithoutChangingBalance() (gas: 169841)\n[PASS] test_TransferFromToZeroRollsBackAllowance() (gas: 174358)\n[PASS] test_TransferFromZeroSenderReverts() (gas: 37792)\n[PASS] test_TransferInsufficientBalanceRevertsWithoutChanges() (gas: 123061)\n[PASS] test_TransferMovesExactAmountAndEmitsEvent() (gas: 96284)\n[PASS] test_TransferToZeroRevertsEvenForZeroAmount() (gas: 85379)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 63035)\n[PASS] test_ZeroTransferFromNeedsNoAllowanceAndEmitsEvent() (gas: 56263)\nSuite result: ok. 33 passed; 0 failed; 0 skipped; finished in 102.21ms (179.64ms CPU time)\n\nRan 18 tests for test/Simdlaunch.boundaries.t.sol:SimdlaunchBoundaryTest\n[PASS] testFuzz_AllRolesMayAliasWithoutCreatingTokens(uint256,uint256,uint256) (runs: 1000, μ: 190013, ~: 191003)\nLogs:\n  Bound result 437146109382953100603566598\n  Bound result 6255191\n\n[PASS] testFuzz_ApprovalReplacementIsExactIdempotentAndIsolated(uint256,uint256) (runs: 1000, μ: 390355, ~: 390420)\n[PASS] testFuzz_DelegatedOverdrawRollsBackAnyAllowance(uint256,uint256,bool) (runs: 1000, μ: 205208, ~: 205171)\nLogs:\n  Bound result 166062288035260921101383055\n  Bound result 115792089237316195423570985008687907853269984665640397977169548746992296791314\n\n[PASS] testFuzz_ExhaustedAllowanceCannotBeReplayedAfterTokensReturn(uint256) (runs: 1000, μ: 330924, ~: 330756)\nLogs:\n  Bound result 11000000000000000000\n\n[PASS] testFuzz_RepeatedRoundTripsRestoreBalancesAndPreserveApprovals(uint256,uint256,uint256) (runs: 1000, μ: 850905, ~: 822498)\nLogs:\n  Bound result 331876938777358884539873360\n  Bound result 9674828799586241333700894\n  Bound result 2\n\n[PASS] testFuzz_SplittingDelegatedTransfersHasTheSameFinalState(uint256,uint256) (runs: 1000, μ: 356531, ~: 358217)\nLogs:\n  Bound result 15000000000000000000\n  Bound result 12754\n\n[PASS] test_ApprovalDoesNotFollowTokensToANewOwner() (gas: 282290)\n[PASS] test_ContractSpenderUsesItsOwnAllowanceAndRecipientNeedsNoCallback() (gas: 500341)\n[PASS] test_FailedSpendDoesNotConsumeAnOtherwiseUsableApproval() (gas: 315888)\n[PASS] test_InfiniteAllowanceCanBeReducedAndExhausted() (gas: 327763)\n[PASS] test_MaximumMinusOneAllowanceIsFinite() (gas: 153153)\n[PASS] test_MaximumTransferRevertsWithAndWithoutInfiniteApproval() (gas: 158243)\n[PASS] test_NonpayableSelectorsRejectEtherWithoutChangingTokensOrAllowances() (gas: 259714)\n[PASS] test_OneBaseUnitCanBeTransferredAndSpent() (gas: 220720)\n[PASS] test_OwnerNeedsSelfApprovalForTransferFrom() (gas: 252696)\n[PASS] test_TransferToTokenItselfIsAccountedForAsABalance() (gas: 92327)\n[PASS] test_ZeroDelegatedTransferStillRejectsZeroRecipient() (gas: 79026)\n[PASS] test_ZeroSpenderRejectedAtZeroAndMaximumApproval() (gas: 134615)\nSuite result: ok. 18 passed; 0 failed; 0 skipped; finished in 117.86ms (656.99ms CPU time)\n\nRan 1 test for test/Simdlaunch.invariant.t.sol:SimdlaunchInvariantTest\n[PASS]\nSimdlaunchInvariantTest invariants:\n[PASS] invariant_AllowancesMatchModel\n[PASS] invariant_MetadataRemainsUnchanged\n[PASS] invariant_SupplyAndBalancesMatchModel\n SimdlaunchInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭--------------+-------------------------+-------+---------+----------╮\n| Contract     | Selector                | Calls | Reverts | Discards |\n+=====================================================================+\n| TokenHandler | approve                 | 2575  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | approveFinite           | 2546  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | approveInfinite         | 2580  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectAllowanceOverdraw | 2532  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectDelegatedOverdraw | 2503  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectOverdraw          | 2589  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectZeroRecipient     | 2469  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | rejectZeroSpender       | 2387  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | revoke                  | 2476  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | roundTrip               | 2532  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | transfer                | 2490  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | transferAll             | 2556  | 0       | 0        |\n|--------------+-------------------------+-------+---------+----------|\n| TokenHandler | transferFrom            | 2533  | 0       | 0        |\n╰--------------+-------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 250000000000000000000000000\n  Bound result 250000000000000000000000000\n  Bound result 250000000000000000000000000\n  Bound result 250000000000000000000000000\n  Bound result 3139\n  Bound result 0\n  Bound result 11\n  Bound result 0\n  Bound result 38000000000000000000\n  Bound result 11371\n  Bound result 1\n  Bound result 2689\n  Bound result 10000000000000000001\n  Bound result 29\n  Bound result 6\n  Bound result 6\n  Bound result 1000000000\n  Bound result 1\n  Bound result 211574972698989785551299869\n  Bound result 5880\n  Bound result 167\n  Bound result 12000000000000000000\n  Bound result 4726\n  Bound result 169128840239464181341304285\n  Bound result 580871159760535818658690989\n  Bound result 1\n  Bound result 7243\n  Bound result 4298\n  Bound result 0\n  Bound result 448\n  Bound result 0\n  Bound result 6131\n  Bound result 169128840239464181341304284\n  Bound result 169128840239464181341304284\n  Bound result 0\n  Bound result 8\n  Bound result 1445\n  Bound result 5\n  Bound result 154\n  Bound result 1441\n  Bound result 20000000000000000000\n  Bound result 5837\n  Bound result 338257680478928362682595486\n  Bound result 6\n  Bound result 141\n  Bound result 0\n  Bound result 0\n  Bound result 999999999999999999999994163\n  Bound result 18000000000000000000\n  Bound result 250000000000000000000004726\n  Bound result 4839\n  Bound result 13\n  Bound result 4026\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3967\n  Bound result 11000000000000000000\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 8.38s (8.37s CPU time)\n\nRan 3 test suites in 8.38s (8.60s CPU time): 52 tests passed, 0 failed, 0 skipped (52 total tests)\n","passed":true},{"durationMs":39,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Simdlaunch.approve(address,uint256)\",\"Simdlaunch.transfer(address,uint256)\",\"Simdlaunch.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":15,\"README.md\":73,\"foundry.toml\":18,\"remappings.txt\":2,\"src/Simdlaunch.sol\":17,\"test/Simdlaunch.boundaries.t.sol\":353,\"test/Simdlaunch.invariant.t.sol\":249,\"test/Simdlaunch.t.sol\":453,\"test/TESTING.md\":67,\"test/helpers/TokenFactory.sol\":19},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"cab5f06907c937eb1391787d9bbb0baee09d3282d79cc0c9a114d8bfa71dd6df","verifiedTreeHash":"9e6f9f6f4d63c94a669d23ae98a5213c0ef758ab","verifierVersion":"0.1.0+b10502ca"},{"checks":[{"durationMs":1152,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.08s\nCompiler run successful!\n","passed":true},{"durationMs":1955,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 33 tests for test/Simdlaunch.t.sol:SimdlaunchTest\n[PASS] testFuzz_AllowanceOverdrawReverts(uint256,uint256) (runs: 512, μ: 128134, ~: 128261)\nLogs:\n  Bound result 241359248080635609618750992\n  Bound result 405957000182819455484209675\n\n[PASS] testFuzz_ApproveSetsExactAllowance(uint256) (runs: 512, μ: 88428, ~: 88730)\n[PASS] testFuzz_OverdrawReverts(uint256) (runs: 512, μ: 71834, ~: 72157)\nLogs:\n  Bound result 60964389266163006325160457174968801181788495376905781247483679565614067\n\n[PASS] testFuzz_TransferConservesSupply(uint256,address) (runs: 512, μ: 95787, ~: 95890)\nLogs:\n  Bound result 220347896189079712381884176\n\n[PASS] testFuzz_TransferFromConservesSupplyAndAccountsForAllowance(uint256,uint256) (runs: 512, μ: 166142, ~: 168414)\nLogs:\n  Bound result 4460\n\n[PASS] test_ApproveEmitsEventAndDoesNotMoveTokens() (gas: 93601)\n[PASS] test_ApproveOverwritesAndCanBeRevoked() (gas: 139706)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 40230)\n[PASS] test_ConstructorEmitsExactlyOneMint() (gas: 12238)\n[PASS] test_Create2DeploymentUsesArgumentFreeCreationCode() (gas: 327791)\n[PASS] test_DeployerCannotSpendHolderTokensWithoutApproval() (gas: 155634)\n[PASS] test_FactoryReceivesAllSupply() (gas: 345294)\n[PASS] test_LaunchDistributionClaimsAndTradingTransfersArriveWhole() (gas: 696806)\n[PASS] test_MetadataAndInitialSupply() (gas: 111809)\n[PASS] test_NoExternalMintBurnAdminOrUpgradeEntryPoints() (gas: 852882)\n[PASS] test_RejectsNativeEtherAndUnknownCalls() (gas: 67303)\n[PASS] test_RevokedApprovalCannotSpend() (gas: 176098)\n[PASS] test_SelfTransferPreservesBalanceAndEmitsEvent() (gas: 56794)\n[PASS] test_SelfTransferStillRequiresBalance() (gas: 35951)\n[PASS] test_TransferEntireBalance() (gas: 78349)\n[PASS] test_TransferFromCannotUseAnotherSpendersApproval() (gas: 163301)\n[PASS] test_TransferFromConsumesAllowanceAndEmitsTransfer() (gas: 289286)\n[PASS] test_TransferFromInfiniteAllowanceIsNotDecremented() (gas: 199397)\n[PASS] test_TransferFromInsufficientAllowanceRevertsWithoutChanges() (gas: 175936)\n[PASS] test_TransferFromInsufficientBalanceRollsBackAllowance() (gas: 181593)\n[PASS] test_TransferFromSelfConsumesAllowanceWithoutChangingBalance() (gas: 169841)\n[PASS] test_TransferFromToZeroRollsBackAllowance() (gas: 174358)\n[PASS] test_TransferFromZeroSenderReverts() (gas: 37792)\n[PASS] test_TransferInsufficientBalanceRevertsWithoutChanges() (gas: 123061)\n[PASS] test_TransferMovesExactAmountAndEmitsEvent() (gas: 96284)\n[PASS] test_TransferToZeroRevertsEvenForZeroAmount() (gas: 85379)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 63035)\n[PASS] test_ZeroTransferFromNeedsNoAllowanceAndEmitsEvent() (gas: 56263)\nSuite result: ok. 33 passed; 0 failed; 0 skipped; finished in 26.69ms (93.83ms CPU time)\n\nRan 1 test for test/Simdlaunch.invariant.t.sol:SimdlaunchInvariantTest\n[PASS]\nSimdlaunchInvariantTest invariants:\n[PASS] invariant_AllowancesMatchModel\n[PASS] invariant_SupplyAndBalancesMatchModel\n SimdlaunchInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+----------------+-------+---------+----------╮\n| Contract     | Selector       | Calls | Reverts | Discards |\n+============================================================+\n| TokenHandler | approve        | 1981  | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| TokenHandler | rejectOverdraw | 2048  | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| TokenHandler | transfer       | 2081  | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| TokenHandler | transferFrom   | 2082  | 0       | 0        |\n╰--------------+----------------+-------+---------+----------╯\n\nLogs:\n  Bound result 10000000000000000000\n  Bound result 365\n  Bound result 4\n  Bound result 10000000000000000000\n  Bound result 919\n  Bound result 6585857902086658222\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 293\n  Bound result 5396\n  Bound result 0\n  Bound result 10260873528783544\n  Bound result 2287400824\n  Bound result 0\n  Bound result 1721493028083510836\n  Bound result 223038813223172200855192549\n  Bound result 0\n  Bound result 0\n  Bound result 1450\n  Bound result 1044\n  Bound result 0\n  Bound result 107844740295671423144774352\n  Bound result 0\n  Bound result 5000000000000000000\n  Bound result 3230\n  Bound result 8\n  Bound result 4298\n  Bound result 0\n  Bound result 1676490628\n  Bound result 5\n  Bound result 293\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.85s (1.85s CPU time)\n\nRan 2 test suites in 1.85s (1.88s CPU time): 34 tests passed, 0 failed, 0 skipped (34 total tests)\n","passed":true},{"durationMs":34,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Simdlaunch.approve(address,uint256)\",\"Simdlaunch.transfer(address,uint256)\",\"Simdlaunch.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":15,\"README.md\":73,\"foundry.toml\":18,\"remappings.txt\":2,\"src/Simdlaunch.sol\":17,\"test/Simdlaunch.invariant.t.sol\":108,\"test/Simdlaunch.t.sol\":452,\"test/helpers/TokenFactory.sol\":19},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":587,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":174,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/Simdlaunch.sol:12: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"db3898e2bff965f82f6883f89c00605d42740722d57e898f1ae3626cbfe52311","verifiedTreeHash":"5aa7bbab71fb69e20642649556c6464f631ac119","verifierVersion":"0.1.0+b10502ca"},{"checks":[{"durationMs":1233,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.14s\nCompiler run successful!\n","passed":true},{"durationMs":1966,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 33 tests for test/Simdlaunch.t.sol:SimdlaunchTest\n[PASS] testFuzz_AllowanceOverdrawReverts(uint256,uint256) (runs: 512, μ: 128134, ~: 128261)\nLogs:\n  Bound result 20000000000000000000\n  Bound result 999999980000000000000029229\n\n[PASS] testFuzz_ApproveSetsExactAllowance(uint256) (runs: 512, μ: 88428, ~: 88730)\n[PASS] testFuzz_OverdrawReverts(uint256) (runs: 512, μ: 71834, ~: 72157)\nLogs:\n  Bound result 60964389266163006325160457174968801181788495376905781247483679565614067\n\n[PASS] testFuzz_TransferConservesSupply(uint256,address) (runs: 512, μ: 95787, ~: 95890)\nLogs:\n  Bound result 11000000000000000000\n\n[PASS] testFuzz_TransferFromConservesSupplyAndAccountsForAllowance(uint256,uint256) (runs: 512, μ: 166142, ~: 168414)\nLogs:\n  Bound result 4460\n\n[PASS] test_ApproveEmitsEventAndDoesNotMoveTokens() (gas: 93601)\n[PASS] test_ApproveOverwritesAndCanBeRevoked() (gas: 139706)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 40230)\n[PASS] test_ConstructorEmitsExactlyOneMint() (gas: 12238)\n[PASS] test_Create2DeploymentUsesArgumentFreeCreationCode() (gas: 327791)\n[PASS] test_DeployerCannotSpendHolderTokensWithoutApproval() (gas: 155634)\n[PASS] test_FactoryReceivesAllSupply() (gas: 345294)\n[PASS] test_LaunchDistributionClaimsAndTradingTransfersArriveWhole() (gas: 696806)\n[PASS] test_MetadataAndInitialSupply() (gas: 111809)\n[PASS] test_NoExternalMintBurnAdminOrUpgradeEntryPoints() (gas: 852882)\n[PASS] test_RejectsNativeEtherAndUnknownCalls() (gas: 67303)\n[PASS] test_RevokedApprovalCannotSpend() (gas: 176098)\n[PASS] test_SelfTransferPreservesBalanceAndEmitsEvent() (gas: 56794)\n[PASS] test_SelfTransferStillRequiresBalance() (gas: 35951)\n[PASS] test_TransferEntireBalance() (gas: 78349)\n[PASS] test_TransferFromCannotUseAnotherSpendersApproval() (gas: 163301)\n[PASS] test_TransferFromConsumesAllowanceAndEmitsTransfer() (gas: 289286)\n[PASS] test_TransferFromInfiniteAllowanceIsNotDecremented() (gas: 199397)\n[PASS] test_TransferFromInsufficientAllowanceRevertsWithoutChanges() (gas: 175936)\n[PASS] test_TransferFromInsufficientBalanceRollsBackAllowance() (gas: 181593)\n[PASS] test_TransferFromSelfConsumesAllowanceWithoutChangingBalance() (gas: 169841)\n[PASS] test_TransferFromToZeroRollsBackAllowance() (gas: 174358)\n[PASS] test_TransferFromZeroSenderReverts() (gas: 37792)\n[PASS] test_TransferInsufficientBalanceRevertsWithoutChanges() (gas: 123061)\n[PASS] test_TransferMovesExactAmountAndEmitsEvent() (gas: 96284)\n[PASS] test_TransferToZeroRevertsEvenForZeroAmount() (gas: 85379)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 63035)\n[PASS] test_ZeroTransferFromNeedsNoAllowanceAndEmitsEvent() (gas: 56263)\nSuite result: ok. 33 passed; 0 failed; 0 skipped; finished in 18.85ms (90.27ms CPU time)\n\nRan 1 test for test/Simdlaunch.invariant.t.sol:SimdlaunchInvariantTest\n[PASS]\nSimdlaunchInvariantTest invariants:\n[PASS] invariant_AllowancesMatchModel\n[PASS] invariant_SupplyAndBalancesMatchModel\n SimdlaunchInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+----------------+-------+---------+----------╮\n| Contract     | Selector       | Calls | Reverts | Discards |\n+============================================================+\n| TokenHandler | approve        | 1981  | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| TokenHandler | rejectOverdraw | 2048  | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| TokenHandler | transfer       | 2081  | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| TokenHandler | transferFrom   | 2082  | 0       | 0        |\n╰--------------+----------------+-------+---------+----------╯\n\nLogs:\n  Bound result 10000000000000000000\n  Bound result 365\n  Bound result 4\n  Bound result 10000000000000000000\n  Bound result 919\n  Bound result 6585857902086658222\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 293\n  Bound result 5396\n  Bound result 0\n  Bound result 10260873528783544\n  Bound result 2287400824\n  Bound result 0\n  Bound result 1721493028083510836\n  Bound result 223038813223172200855192549\n  Bound result 0\n  Bound result 0\n  Bound result 1450\n  Bound result 1044\n  Bound result 0\n  Bound result 107844740295671423144774352\n  Bound result 0\n  Bound result 5000000000000000000\n  Bound result 3230\n  Bound result 8\n  Bound result 3276\n  Bound result 0\n  Bound result 877\n  Bound result 5\n  Bound result 207\n  Bound result 250\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.85s (1.85s CPU time)\n\nRan 2 test suites in 1.85s (1.87s CPU time): 34 tests passed, 0 failed, 0 skipped (34 total tests)\n","passed":true},{"durationMs":52,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Simdlaunch.approve(address,uint256)\",\"Simdlaunch.transfer(address,uint256)\",\"Simdlaunch.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":15,\"README.md\":73,\"foundry.toml\":18,\"launch.json\":24,\"remappings.txt\":2,\"src/Simdlaunch.sol\":17,\"test/Simdlaunch.invariant.t.sol\":108,\"test/Simdlaunch.t.sol\":452,\"test/helpers/TokenFactory.sol\":19},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"e8188544760def8eeac81a20f9cf25ae0b5ecf05593bd4fd0c616bc591437603","verifiedTreeHash":"452f5fcea6aa32dda13528af22955a1b6194f47b","verifierVersion":"0.1.0+b10502ca"}]}