{"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":"2422185e-e467-4b06-863b-49475bd13695","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"0fe7c676ebbcd582aa326d152751dc8e2d131ba70ac9cd2b7220f3b3a96cc869","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"cf2620b47bbf88e60ca9868a008d4d2f22b5349635351e4ba447cc1c699e1744","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"668bccf967b4dec51113a8c842b5df86f2c7f93c882dd046a511d75b004eb03c","dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"1ffae8faec9b5c2211a7c08a9d47696ce0321d54a71a90606176e0fbf3628104","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"f24fe86ce65dc8767b0bd359e630508f895dc9ba3023af10ce7fc6c3a079dccc","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"44b9de55d865687a2bba036e8c7abdfa6f7fab0241a72f5ea948e30d84a67f4c","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"6b8d2c2ebd3301cff2be8edb1e1cc6ba65c858c02fe7247be81722b969842265","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"6b8d2c2ebd3301cff2be8edb1e1cc6ba65c858c02fe7247be81722b969842265","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"fafce6ff30d2b24ab7d9ca621793a3741c6720954242e183488634072ed39e99","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"763c7b2a18b45e8485deac62313f7f33b8c782e19456a88f2b914cfeb858fd92","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"73431852439ad3a343f3d2b7db1c43cd363b9f48f9bb51497374a0cf6d50b223","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"73431852439ad3a343f3d2b7db1c43cd363b9f48f9bb51497374a0cf6d50b223","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: Coinbitc (COINBITC).\nToken name: Coinbitc\nToken symbol: COINBITC\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"b869a7db31ba498a23e1708984b2894d6a25057848791aea938e199c17d50ecd","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"2422185e-e467-4b06-863b-49475bd13695","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1450-coinbitc"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52585","feedbackHash":"b0e1b841153cf3a6e54f418f4524f7017d1f94cc85d91fb0f40c84fabaf98a85","nodeKey":"audit_economics","submissionHash":"0fe7c676ebbcd582aa326d152751dc8e2d131ba70ac9cd2b7220f3b3a96cc869","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"50958","feedbackHash":"add1307d80d953e500e44394ff4e72c6aea54dff76660e22ce2e783216db081e","nodeKey":"audit_flow","submissionHash":"cf2620b47bbf88e60ca9868a008d4d2f22b5349635351e4ba447cc1c699e1744","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52548","feedbackHash":"bd63559e7f332909c981f28187622e7b4304ae2ab2c25d1f2fdebe9838ddafc8","nodeKey":"audit_judge","submissionHash":"668bccf967b4dec51113a8c842b5df86f2c7f93c882dd046a511d75b004eb03c","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52682","feedbackHash":"00135afdbbac8bfc824c9e927a7ead8151f5d74bedd324c3a12bbe243a7c83c5","nodeKey":"audit_math","submissionHash":"1ffae8faec9b5c2211a7c08a9d47696ce0321d54a71a90606176e0fbf3628104","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51104","feedbackHash":"28be1d7e61523cb6dfb7692ffb70bdb21a44867b35190fb8527ffaf90287db0c","nodeKey":"audit_permissions","submissionHash":"f24fe86ce65dc8767b0bd359e630508f895dc9ba3023af10ce7fc6c3a079dccc","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51185","feedbackHash":"0b21f8a5f3a9c61fde87cdf94bd07f727558c7a5a1e0e0377bac1616e8ac4c03","nodeKey":"build_contract_project","submissionHash":"44b9de55d865687a2bba036e8c7abdfa6f7fab0241a72f5ea948e30d84a67f4c","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52266","feedbackHash":"0ec1c6f78d935daa555f6badc4f8fac64fd6612a682fb9f862a4334be031d8f0","nodeKey":"manifest","submissionHash":"fafce6ff30d2b24ab7d9ca621793a3741c6720954242e183488634072ed39e99","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"50968","feedbackHash":"e7395be374e361ee7687d8c4fd19face012d97674a3868f2822acd58b6e91d97","nodeKey":"write_foundry_tests","submissionHash":"763c7b2a18b45e8485deac62313f7f33b8c782e19456a88f2b914cfeb858fd92","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"861581c39d500ad4d69006006b4767f625ab94a977dd4a521924a5ea73aad60f","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"3c1226d190150ef0","findings":[],"hash":"0fe7c676ebbcd582aa326d152751dc8e2d131ba70ac9cd2b7220f3b3a96cc869","nodeId":"49936f4b-cedc-4fc0-823e-4858b8d70c9e","outcome":"completed","summary":"I found no defects that I can back with a reproduction. `.imd-findings.json` is written with `\"findings\": []` and a coverage record that answers all three entry points.\n\n**What the code is:** `src/Coinbitc.sol` is a plain OpenZeppelin ERC-20. Its constructor mints 1,000,000,000 × 10^18 to `msg.sender` (the factory), and nothing else is added. The vendored OpenZeppelin files are unmodified v5.0.2: I downloaded the upstream archive, its SHA-256 matches `DEPENDENCIES.md`, and all six vendored files are identical to upstream. There are no fees, hooks, owner, mint, burn or exemption logic, and no external calls. `forge test` passes all 29 tests, including the stateful invariants.\n\n**Economic Security guide:**\n- **Token misbehaviour:** none. Transfers move exactly the stated amount, so these launch flows all arrive whole:\n  - the 10% swarm share to the distributor and its claims;\n  - the 88% pool seed;\n  - the 2% remainder to the requester;\n  - buys and sells settled through the PoolManager.\n- **ERC-20 compliance:** holds. The function returns `true`, errors are custom errors, and `type(uint256).max` works as an unlimited allowance.\n- **Value extraction:** none possible, since there are no owner or admin powers and nothing depends on a price.\n- **Allowance race:** the standard approve race is documented in the README and is not a defect.\n\n**Invariant guide:**\n- The sum of balances equals `totalSupply`, which equals 10^27.\n- The only mint is in the constructor, so the supply cannot grow.\n- The unchecked blocks in `_update` are bounded by the balance check and the supply cap.\n\n**Flow Gap guide:** I found no seams. There are no callbacks, no periphery calls and no address-dependent branches.\n\n**Static analysis lead:** Aderyn's `large-numeric-literal` at `src/Coinbitc.sol:12` is only about style; the value is correct.\n\n**Not covered:**\n- I could not run the protected launch harness (`Token.protected.t.sol`). It imports `src/LaunchLiquidity.sol`, `src/PoolInitializationGuard.sol` and `src/HookFlags.sol`, which aren't in this tree, plus launch environment variables, so the network's verifier runs it.\n- There is no `launch.json` yet, so I couldn't check a manifest.\n\nI changed no files apart from `.imd-findings.json`. Untracked entries like `.bashrc` and `.gitmodules` now show up in `git status`. They are character-device files mounted by the sandbox (the same device type as `/dev/null`), not real files and not something I created.","treeHash":null,"usage":{"cachedInputTokens":368081,"inputTokens":16,"model":"claude-opus-5-5","outputTokens":4192,"runtime":"claude","turns":9,"wallClockMs":51311}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a0f4c3f900dedd4a","findings":[],"hash":"1ffae8faec9b5c2211a7c08a9d47696ce0321d54a71a90606176e0fbf3628104","nodeId":"01bfda47-9de0-4b16-8962-e7051de3f96f","outcome":"completed","summary":"Review complete. The math audit of Coinbitc found no defects, and the findings file records an empty list with full coverage.\n\n**What was checked**\n\n- **Source** is a 14-line contract inheriting the unmodified OpenZeppelin v5.0.2 ERC20 and minting once in the constructor. The vendored library files are plain tracked files, not a submodule.\n- **Math Precision guide.** The supply literal is a compile-time constant equal to exactly 10^27 base units, matching the README digits. The single checked supply increment cannot overflow. Balance updates run unchecked but are bounded by the supply, so no wrap is reachable. Decimals are fixed at 18 and match the scale of the literal. No division, downcast, or scale mixing exists in the token.\n- **Boundary guide.** The token has no external calls, no payable or fallback paths, no bytes decoding, and no sentinel branches beyond the zero-address reverts. I probed 1 wei, full balance, balance plus one, self-transfer, max allowance, max-minus-one allowance, allowance equal to amount, and allowance above balance. All behave as the README documents.\n- **Numerical Gap guide.** The launch split of 10, 88 and 2 percent of 1e27 divides with zero remainder, sums back to the supply, and every intermediate product fits comfortably in 256 bits. Transfers are exact, so the protected harness flows arrive whole.\n- **Static analysis lead.** The aderyn large-literal note reproduces as an exact value, not a defect.\n\n**Verification run**\n\n- Existing suite: 29 tests passed, including 128 invariant sequences of 64 calls.\n- Scratch probes: 11 additional boundary tests passed, then removed as instructed.\n- Format check passed.\n\n**Coverage.** All three entry points, approve, transfer and transferFrom, are marked holds with reasons, plus five invariant rows. Nothing was left unreached. The findings file is valid JSON at the repository root and no project file was modified.","treeHash":null,"usage":{"cachedInputTokens":421878,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":10645,"runtime":"claude","turns":18,"wallClockMs":152466}},{"artifacts":[],"attempt":1,"bundleHash":"c063b4c64a9358390953c08e116aa1cf26f210cac11b711b12379cb956b33b46","device":"1cb8150a876a5ca3","findings":[],"hash":"44b9de55d865687a2bba036e8c7abdfa6f7fab0241a72f5ea948e30d84a67f4c","nodeId":"5ab07a44-32e6-4315-816f-27469a2c1a46","outcome":"completed","summary":"Implemented Coinbitc (COINBITC): 1,000,000,000 tokens with 18 decimals, minted once to the deployer.\n\n- `forge build`, `forge test`, and `forge fmt --check` pass.\n- 28 unit/fuzz tests and both invariants pass.\n- Clean offline verification reproduces identical bytecode.\n- Dependencies are vendored; README documents assumptions, deployment, and operational responsibilities.","treeHash":"32a6a729022443d92601f127ac4d7ca19ae2dfc2","usage":{"cachedInputTokens":449664,"inputTokens":61250,"model":"gpt-6-astra","outputTokens":13501,"runtime":"codex","turns":5,"wallClockMs":377055}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"9b657b3675e34ec5","findings":[],"hash":"668bccf967b4dec51113a8c842b5df86f2c7f93c882dd046a511d75b004eb03c","nodeId":"11f0600f-143e-49e4-8b93-34612a6479bd","outcome":"completed","summary":"The review is complete. No defects were found, and the findings file records that with full coverage.\n\n**Outcome:** `.imd-findings.json` holds an empty findings list and six coverage rows, all `holds`. The working tree is otherwise unchanged (the scratch test lives in the gitignored test/scratch directory).\n\n**What I verified**\n\n- **Specialist input.** All four specialists and the independent tester reported nothing, so there was nothing to reproduce or merge. I did my own pass instead.\n- **Source.** The token is a plain OpenZeppelin v5 ERC-20 with a no-argument constructor minting one billion tokens with 18 decimals to the deployer. No owner, mint, burn, pause, blacklist, fee or hook path exists. The ABI exposes only approve, transfer and transferFrom as state-changing entry points.\n- **Entry points.** For each of the three I traced the checks, state changes and revert paths in the vendored ERC20 and reproduced them in a scratch Foundry test: zero-address and insufficient-balance reverts, allowance spend and infinite-allowance behaviour, exact-amount transfers through a factory-to-distributor-to-claimant flow and a pool-manager-style pull of the pool share. The accepted suite of 47 tests, including invariants, also passes.\n- **Deployability.** The manifest's empty constructorArgs match the constructor. CREATE2 deployment from a factory probe mints exactly the manifest's totalSupply to the deployer. Creation and runtime code are well under the size limits, and an opcode scan found no DELEGATECALL, CALLCODE or SELFDESTRUCT. Name, symbol, decimals and contract identifier match launch.json.\n- **Dependencies.** The vendored OpenZeppelin files are byte-identical to the upstream v5.0.2 archive, whose checksum matches DEPENDENCIES.md. The vendored forge-std differs from v1.9.7 only in whitespace, and it is test-only.\n- **Static analysis leads.** Slither reported nothing. Aderyn's large-literal note points at the supply expression, which evaluates to the manifest value, so it is not a defect.\n\n**Not a finding, noted only:** the pool's initialPrice is the sqrt price for 1.0 rather than one derived from the 10 ETH cap, but the launch rules state that field is provenance only and the deployer derives the real price, and the reference example uses the same value.","treeHash":null,"usage":{"cachedInputTokens":621788,"inputTokens":386,"model":"claude-fable-5-1","outputTokens":9586,"runtime":"claude","turns":13,"wallClockMs":170480}},{"artifacts":[],"attempt":1,"bundleHash":"8dc17797cd6bd948c65b1b356f01fb7be7a08306e04842ffc3ed9c86582c30d6","device":"228636b860e0212c","findings":[],"hash":"763c7b2a18b45e8485deac62313f7f33b8c782e19456a88f2b914cfeb858fd92","nodeId":"1cb1d3bd-1dc7-46fa-8e45-cf01d8a43034","outcome":"completed","summary":"Added 18 adversarial and fuzz tests, and expanded the suite to five stateful invariants covering balances, allowances, supply, and failure atomicity.\n\n`forge build` and `forge test` pass: 47 tests, including 32,768 randomized invariant calls.\n\nOnly `test/` files changed. No implementation defects found.","treeHash":"7692ad4521e917c1fd03e892a43145aa1810d5b8","usage":{"cachedInputTokens":699648,"inputTokens":78904,"model":"gpt-6-astra","outputTokens":11458,"runtime":"codex","turns":5,"wallClockMs":312767}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"d20c1a95c50699ea","findings":[],"hash":"cf2620b47bbf88e60ca9868a008d4d2f22b5349635351e4ba447cc1c699e1744","nodeId":"f6dd0757-4040-480b-8f7f-4d4f83f2b873","outcome":"completed","summary":"I found no defects in Coinbitc. `.imd-findings.json` holds an empty findings list and a coverage record; I changed no other files.\n\n**What I reviewed:** `src/Coinbitc.sol` is 14 lines. It inherits the vendored OpenZeppelin v5.0.2 `ERC20`, which `DEPENDENCIES.md` says is unchanged; I read its code and saw no edits. The only thing Coinbitc adds is a constructor that mints `1_000_000_000 * 10 ** 18` (exactly 1e27, which matches the brief) to `msg.sender`. Against the Execution Trace, Periphery and First Principles guides:\n\n- **`approve`, `transfer`, `transferFrom` all hold:**\n  - The exact amount moves.\n  - Calls revert on a zero address, a short balance or a short allowance, and a revert undoes everything.\n  - An unlimited (max) allowance is not reduced on use.\n  - There is no fee, burn or hook, so the transfers from the factory to the distributor, from the distributor to claimants, and the pool seed and swaps through the pool manager all arrive in full.\n- **Supply, roles and opcodes:**\n  - Nothing can mint after deployment.\n  - There is no owner, pause, blacklist, freeze or `burnFrom`.\n  - There is no assembly or external call, so no `DELEGATECALL`, `CALLCODE` or `SELFDESTRUCT`.\n  - `decimals()` returns 18, and the name and symbol match the brief.\n- **Static analysis lead:** aderyn's \"large numeric literal\" warning at `src/Coinbitc.sol:12` is a false positive. The literal is written with underscores and works out to exactly 1e27.\n- **Existing tests:** `forge test` passes all 29 tests, including the invariant suite (8,192 calls, no reverts).\n\nThe coverage record answers all three entry points (all `holds`) plus two invariant rows: fixed supply, and no forbidden opcodes with 18 decimals.\n\n**Not covered:**\n- There is no `launch.json` yet, so I checked no manifest.\n- I didn't run the protected floor test here. It imports `src/LaunchLiquidity.sol`, `PoolInitializationGuard.sol`, `HookFlags.sol` and v4-core, and none of these are in this tree, so I assume the verifier supplies them.","treeHash":null,"usage":{"cachedInputTokens":269069,"inputTokens":12,"model":"claude-opus-5-5","outputTokens":2641,"runtime":"claude","turns":6,"wallClockMs":38385}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"e67cc6ec4009b226","findings":[],"hash":"f24fe86ce65dc8767b0bd359e630508f895dc9ba3023af10ce7fc6c3a079dccc","nodeId":"a580e555-7aef-4670-888e-7f6d5980f0ed","outcome":"completed","summary":"The review is complete and found no defects. The findings file at the repository root holds an empty findings list and a seven-row coverage record. No project file was changed, and the scratch test directory was removed.\n\n**What I checked, from the Access Control, Asymmetry and Trust Gap guides**\n\n- **Permission model.** The token is a 14-line subclass of the vendored OpenZeppelin v5.0.2 ERC20 with a constructor mint. The ABI exposes only the constructor, three ERC-20 writers and six views. There is no owner, initializer, proxy, pause, blacklist, mint or burn entry point, and no payable path. All five vendored OpenZeppelin files hash identically to the upstream v5.0.2 tag.\n- **Inconsistent guards.** Balances are written only by the internal update function and allowances only by the internal approve function, so there is no weaker parallel writer to exploit. The mint path is reachable only from the constructor, and the burn path is unreachable because transfers reject the zero receiver.\n- **Confused deputy.** The factory holds the whole supply after construction but cannot pull from any holder without that holder's allowance. I verified the exact call the protected harness makes from the factory address reverts and leaves the holder's balance intact.\n- **Asymmetry.** The approve and spend-allowance pair write the same slot with the same validation. The transfer and transferFrom pair share one internal path. The one documented difference, no Approval event on transferFrom, is upstream OpenZeppelin v5 behavior and the README states it.\n- **Trust gap seams.** The token has no setter, oracle, fee recipient or pricing formula, so none of the four seams exists. The only trust assumption is that the factory distributes the ten, eighty-eight and two percent split outside the token, which is the network's design.\n- **Bytecode and launch floor.** Creation and runtime code contain no DELEGATECALL, CALLCODE, SELFDESTRUCT or CREATE. Transfers move exactly the requested amount, so the swarm share, claims, seed and swaps arrive whole. Decimals are 18, the contract name is 8 characters, and the constructor takes no arguments.\n\n**Extra checks beyond the existing suite.** The project's 29 tests pass, including two stateful invariants. I added a scratch fuzz that sends random selectors and calldata from random callers for 2000 runs and asserts supply and a holder's balance never change, plus checks that ETH is refused and that transferFrom from the zero address reverts. All passed.\n\n**Static-analysis leads.** Slither reported nothing. Aderyn's large-numeric-literal note points at the compile-time constant that equals exactly ten to the twenty-seventh, confirmed by the tests. It is not a defect.\n\n**Not reported, by the guides' do-not-report rules.** The standard ERC-20 approve race, a zero-value transferFrom needing no allowance, and tokens sent to the contract being unrecoverable are all documented in the README and carry no loss path.","treeHash":null,"usage":{"cachedInputTokens":496792,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":10788,"runtime":"claude","turns":25,"wallClockMs":154583}},{"artifacts":[],"attempt":1,"bundleHash":"122380b797e08d47adec74601e5d23d736f8cb91b703544d16c5c98fc0630899","device":"644eb561f6d70a85","findings":[],"hash":"fafce6ff30d2b24ab7d9ca621793a3741c6720954242e183488634072ed39e99","nodeId":"0929e7ed-b627-4be7-93a6-ffcfd56f70ae","outcome":"completed","summary":"Done. The manifest is written and verified against the accepted tree.\n\n**What I wrote:** `launch.json` at the repository root, the only file changed. It describes the single accepted contract, Coinbitc, as a custom_token launch:\n\n- **Token:** contract Coinbitc, name Coinbitc, symbol COINBITC, 18 decimals, empty constructorArgs, totalSupply of 10^27 minor units. This matches the source, which mints one billion tokens with 18 decimals to msg.sender in a no-argument constructor. The compiled ABI confirms the constructor has no inputs.\n- **Contracts:** an empty list. The accepted tree has no application contracts.\n- **Pool and economics:** copied verbatim from the launch reference. Native ETH pair, fee 12500, tick spacing 60, the one-to-one sqrtPriceX96, and the requester's economics object with poolBps 8800, a 10 ETH opening cap, and the lowercase remainder address.\n- **Notes:** a short description of the token's fixed supply, lack of privileged functions, and the factory's handling of the swarm share, pool seed and remainder. It is 807 characters, under the 4000 limit.\n\n**Checks run:**\n\n- `forge build` compiled cleanly with Solidity 0.8.26.\n- `forge test` passed all 29 tests across both suites, including the 128-run invariant suite.\n- A scratch script validated the manifest's key set, types, lowercase addresses, supply string, verbatim economics and notes length.\n- `git status` shows launch.json as the only new or changed path.\n\nThe protected harness itself was not run locally because it depends on the network's Uniswap v4 and launch sources, which are not in this tree. Its requirements are satisfied by construction: the supply is exactly the manifest's, minted to the deployer, with no exemptions needed since every transfer is exact.","treeHash":"8bb9d4cb5e2266cb769bf1e5a8ee4267a17d8e87","usage":{"cachedInputTokens":222742,"inputTokens":162,"model":"claude-fable-5-1","outputTokens":3373,"runtime":"claude","turns":9,"wallClockMs":50169}}],"verification":[{"checks":[{"durationMs":1148,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.06s\nCompiler run successful!\n","passed":true},{"durationMs":787,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 28 tests for test/Coinbitc.t.sol:CoinbitcTest\n[PASS] testFuzz_excessTransferReverts(uint256) (runs: 512, μ: 69111, ~: 69458)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640179\n\n[PASS] testFuzz_transferFromSpendsOnlyApprovedAmount(uint256,uint256) (runs: 512, μ: 163454, ~: 165238)\nLogs:\n  Bound result 1725540768\n  Bound result 1391624803\n\n[PASS] testFuzz_transferPreservesSupplyAndBalances(address,uint256) (runs: 512, μ: 92984, ~: 93173)\nLogs:\n  Bound result 483913942585770608523227124\n\n[PASS] test_approvalRevocationPreventsSpending() (gas: 144267)\n[PASS] test_approveEmitsEventAndReplacesAllowance() (gas: 119498)\n[PASS] test_approveZeroSpenderReverts() (gas: 37640)\n[PASS] test_constructorEmitsExactlyOneMint() (gas: 9633)\n[PASS] test_create2MintsToImmediateFactoryDeployer() (gas: 300717)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 160486)\n[PASS] test_entireBalanceCanBeTransferred() (gas: 138822)\n[PASS] test_factoryDistributionAndClaimTransfersAreExact() (gas: 531573)\n[PASS] test_failedTransferFromRollsBackAllowance() (gas: 126549)\n[PASS] test_maximumAmountCannotOverflowBalances() (gas: 65320)\n[PASS] test_metadataAndInitialSupply() (gas: 99415)\n[PASS] test_noMintBurnOrAdministrativeEntryPoints() (gas: 708868)\n[PASS] test_runtimeHasNoPrivilegedExecutionOpcodes() (gas: 780637)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 51419)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 91460)\n[PASS] test_transferFromCanExhaustAllowance() (gas: 137925)\n[PASS] test_transferFromConsumesFiniteAllowanceAndEmitsTransfer() (gas: 160477)\n[PASS] test_transferFromInsufficientAllowanceRevertsWithoutStateChange() (gas: 116072)\n[PASS] test_transferFromPreservesInfiniteAllowance() (gas: 215118)\n[PASS] test_transferFromToSelfConsumesAllowanceButPreservesBalance() (gas: 103742)\n[PASS] test_transferFromToZeroRevertsAndPreservesAllowance() (gas: 114583)\n[PASS] test_transferInsufficientBalanceRevertsWithoutStateChange() (gas: 67725)\n[PASS] test_transferToZeroAddressRevertsEvenForZeroAmount() (gas: 71925)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73345)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 78783)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 11.16ms (39.92ms CPU time)\n\nRan 1 test for test/Coinbitc.invariant.t.sol:CoinbitcInvariantTest\n[PASS]\nCoinbitcInvariantTest invariants:\n[PASS] invariant_allBalancesAreConserved\n[PASS] invariant_supplyIsAlwaysOneBillionTokens\n CoinbitcInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭-----------------+--------------+-------+---------+----------╮\n| Contract        | Selector     | Calls | Reverts | Discards |\n+=============================================================+\n| CoinbitcHandler | approve      | 2706  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbitcHandler | transfer     | 2707  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbitcHandler | transferFrom | 2779  | 0       | 0        |\n╰-----------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1540\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 9\n  Bound result 0\n  Bound result 4448\n  Bound result 969\n  Bound result 0\n  Bound result 999999999999999999999994012\n  Bound result 10\n  Bound result 0\n  Bound result 7\n  Bound result 0\n  Bound result 3\n  Bound result 1123\n  Bound result 131\n  Bound result 6\n  Bound result 12\n  Bound result 112\n  Bound result 0\n  Bound result 1000000000\n  Bound result 6\n  Bound result 58\n  Bound result 597578778454866171896983220\n  Bound result 6\n  Bound result 0\n  Bound result 35\n  Bound result 832\n  Bound result 658113357\n  Bound result 18\n  Bound result 2958\n  Bound result 8\n  Bound result 0\n  Bound result 2\n  Bound result 12\n  Bound result 10\n  Bound result 12\n  Bound result 864\n  Bound result 445424493\n  Bound result 0\n  Bound result 25\n  Bound result 2670\n  Bound result 3981\n  Bound result 1682\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 706.17ms (704.95ms CPU time)\n\nRan 2 test suites in 707.59ms (717.33ms CPU time): 29 tests passed, 0 failed, 0 skipped (29 total tests)\n","passed":true},{"durationMs":36,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Coinbitc.approve(address,uint256)\",\"Coinbitc.transfer(address,uint256)\",\"Coinbitc.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":24,\"README.md\":125,\"foundry.toml\":18,\"remappings.txt\":2,\"src/Coinbitc.sol\":14,\"test/Coinbitc.invariant.t.sol\":87,\"test/Coinbitc.t.sol\":367},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":448,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":224,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/Coinbitc.sol:12: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"44b9de55d865687a2bba036e8c7abdfa6f7fab0241a72f5ea948e30d84a67f4c","verifiedTreeHash":"32a6a729022443d92601f127ac4d7ca19ae2dfc2","verifierVersion":"0.1.0+fb8278c5"},{"checks":[{"durationMs":1422,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.32s\nCompiler run successful!\n","passed":true},{"durationMs":11536,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 18 tests for test/Coinbitc.adversarial.t.sol:CoinbitcAdversarialTest\n[PASS] testFuzz_consumedAllowanceCannotBeReusedAfterRefund(uint256,uint256) (runs: 1000, μ: 305746, ~: 306233)\nLogs:\n  Bound result 707551163659024656902983351\n  Bound result 427928887723848952\n\n[PASS] testFuzz_replacingApprovalUsesLastValue(uint256,uint256) (runs: 1000, μ: 196078, ~: 196650)\n[PASS] testFuzz_splitTransfersEqualSingleTransfer(uint256,uint256) (runs: 1000, μ: 204594, ~: 205912)\nLogs:\n  Bound result 1113642812894691069928855\n  Bound result 274756689705085690808114\n\n[PASS] testFuzz_transferRoundTripRestoresBalancesAndApprovals(uint256,uint256) (runs: 1000, μ: 187641, ~: 187973)\nLogs:\n  Bound result 102743199492665504848265993\n\n[PASS] test_approvalDoesNotFollowTokensToAnotherHolder() (gas: 249445)\n[PASS] test_approvalWithoutBalanceBecomesSpendableAfterFunding() (gas: 258488)\n[PASS] test_approvalsAreIsolatedByOwnerAndSpender() (gas: 363262)\n[PASS] test_failedSelfTransferFromRestoresAllowance() (gas: 174770)\n[PASS] test_infiniteAllowanceCanBeLoweredAndRevoked() (gas: 317779)\n[PASS] test_infiniteAllowanceDoesNotPermitMaximumOverdraw() (gas: 129315)\n[PASS] test_maximumMinusOneAllowanceIsFinite() (gas: 147921)\n[PASS] test_oneWeiTransferAndReturnHaveNoRounding() (gas: 148146)\n[PASS] test_selfTransferStillRequiresSufficientBalance() (gas: 105847)\n[PASS] test_spenderCanBeTheRecipient() (gas: 140588)\n[PASS] test_transferFromCallerStillRequiresSelfApproval() (gas: 248293)\n[PASS] test_zeroApprovalStillRejectsZeroSpender() (gas: 48035)\n[PASS] test_zeroTransferFromEmitsEventAndPreservesApproval() (gas: 139612)\n[PASS] test_zeroTransferFromToZeroIsRejected() (gas: 79074)\nSuite result: ok. 18 passed; 0 failed; 0 skipped; finished in 49.68ms (196.18ms CPU time)\n\nRan 28 tests for test/Coinbitc.t.sol:CoinbitcTest\n[PASS] testFuzz_excessTransferReverts(uint256) (runs: 512, μ: 69107, ~: 69458)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584008401855317860\n\n[PASS] testFuzz_transferFromSpendsOnlyApprovedAmount(uint256,uint256) (runs: 512, μ: 163829, ~: 165238)\nLogs:\n  Bound result 69991026973269669379208173\n  Bound result 141315920\n\n[PASS] testFuzz_transferPreservesSupplyAndBalances(address,uint256) (runs: 512, μ: 93429, ~: 93583)\nLogs:\n  Bound result 1\n  Bound result 5\n\n[PASS] test_approvalRevocationPreventsSpending() (gas: 144267)\n[PASS] test_approveEmitsEventAndReplacesAllowance() (gas: 119498)\n[PASS] test_approveZeroSpenderReverts() (gas: 37640)\n[PASS] test_constructorEmitsExactlyOneMint() (gas: 9633)\n[PASS] test_create2MintsToImmediateFactoryDeployer() (gas: 300717)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 160486)\n[PASS] test_entireBalanceCanBeTransferred() (gas: 138822)\n[PASS] test_factoryDistributionAndClaimTransfersAreExact() (gas: 531573)\n[PASS] test_failedTransferFromRollsBackAllowance() (gas: 126549)\n[PASS] test_maximumAmountCannotOverflowBalances() (gas: 65320)\n[PASS] test_metadataAndInitialSupply() (gas: 99415)\n[PASS] test_noMintBurnOrAdministrativeEntryPoints() (gas: 708868)\n[PASS] test_runtimeHasNoPrivilegedExecutionOpcodes() (gas: 780637)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 51419)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 91460)\n[PASS] test_transferFromCanExhaustAllowance() (gas: 137925)\n[PASS] test_transferFromConsumesFiniteAllowanceAndEmitsTransfer() (gas: 160477)\n[PASS] test_transferFromInsufficientAllowanceRevertsWithoutStateChange() (gas: 116072)\n[PASS] test_transferFromPreservesInfiniteAllowance() (gas: 215118)\n[PASS] test_transferFromToSelfConsumesAllowanceButPreservesBalance() (gas: 103742)\n[PASS] test_transferFromToZeroRevertsAndPreservesAllowance() (gas: 114583)\n[PASS] test_transferInsufficientBalanceRevertsWithoutStateChange() (gas: 67725)\n[PASS] test_transferToZeroAddressRevertsEvenForZeroAmount() (gas: 71925)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73345)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 78783)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 49.67ms (109.80ms CPU time)\n\nRan 1 test for test/Coinbitc.invariant.t.sol:CoinbitcInvariantTest\n[PASS]\nCoinbitcInvariantTest invariants:\n[PASS] invariant_allBalancesAreConserved\n[PASS] invariant_allowancesMatchApprovalsAndSuccessfulSpends\n[PASS] invariant_balancesMatchAuthorizedTransfers\n[PASS] invariant_metadataIsStable\n[PASS] invariant_supplyIsAlwaysOneBillionTokens\n CoinbitcInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭-----------------+---------------------------+-------+---------+----------╮\n| Contract        | Selector                  | Calls | Reverts | Discards |\n+==========================================================================+\n| CoinbitcHandler | approve                   | 2643  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | approveInfinite           | 2798  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | approveZeroSpender        | 2719  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | revokeApproval            | 2812  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | transfer                  | 2668  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | transferFrom              | 2653  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | transferFromOverAllowance | 2716  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | transferFromOverBalance   | 2743  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | transferFromToZero        | 2775  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | transferOverBalance       | 2718  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | transferRoundTrip         | 2705  | 0       | 0        |\n|-----------------+---------------------------+-------+---------+----------|\n| CoinbitcHandler | transferToZero            | 2818  | 0       | 0        |\n╰-----------------+---------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639934\n  Bound result 8129\n  Bound result 21924795319422435886505137\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129646853\n  Bound result 4069379764\n  Bound result 88\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129640230\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129646853\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129646148\n  Bound result 0\n  Bound result 151130917142694995382591456\n  Bound result 10154\n  Bound result 449\n  Bound result 115792089237316195423570985008687907853269984665640162908540441312917747048575\n  Bound result 115792089237316195423570985008687907853269984665640414866098018868136645301314\n  Bound result 115792089237316195423570985008687907853269984665640162908540441312917747052529\n  Bound result 5343\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129642406\n  Bound result 909\n  Bound result 1599\n  Bound result 10000000000000000000\n  Bound result 1313373041\n  Bound result 11845447400756163451933\n  Bound result 7753\n  Bound result 3\n  Bound result 1322291541841511677738347234771243041312\n  Bound result 881\n  Bound result 98754782604706285160775150\n  Bound result 93599559596201291819923\n  Bound result 11\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640564039447584007913129647733\n  Bound result 10000000000000000000\n  Bound result 10\n  Bound result 24576\n  Bound result 197738165714610006608058872\n  Bound result 54245474912656467248918320441090806945618809681672255705942045204325914585\n  Bound result 1442\n  Bound result 720\n  Bound result 4\n  Bound result 10784\n  Bound result 115792089237316195423570985008687907853269984665640215284674979301627968870940\n  Bound result 115792089237316195423570985008687907853269984665640564018756891005396278200875\n  Bound result 242\n  Bound result 0\n  Bound result 1\n  Bound result 42000000000000000000\n  Bound result 2\n  Bound result 16991040950521048398960732733\n  Bound result 246\n  Bound result 481\n  Bound result 1000000000\n  Bound result 4022\n  Bound result 242\n  Bound result 10\n  Bound result 24576\n  Bound result 250093599559596202291820643\n  Bound result 401130917142694996695971767\n  Bound result 244\n  Bound result 115792089237316195423570985008687907853269984665640162908540441312916433675464\n  Bound result 401130917142694996695971766\n  Bound result 1000000000\n  Bound result 2544\n  Bound result 115792089237316195423570985008687907853269984665640313945858024411710837822003\n  Bound result 115792089237316195423570985008687907853269984665640519343071032767582220151303\n  Bound result 115792089237316195423570985008687907853269984665640564018756891005396278201592\n  Bound result 115792089237316195423570985008687907853269984665640162908540441312916433668413\n  Bound result 2233625730\n  Bound result 127\n  Bound result 125625217455885223185368974\n  Bound result 95\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639935\n  Bound result 242\n  Bound result 401130917142694996695971764\n  Bound result 2514000704\n  Bound result 115792089237316195423570985008687907853269984665640215284674979301628968877876\n  Bound result 9263\n  Bound result 562\n  Bound result 59\n  Bound result 6000000000000000000\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 11.46s (11.45s CPU time)\n\nRan 3 test suites in 11.46s (11.56s CPU time): 47 tests passed, 0 failed, 0 skipped (47 total tests)\n","passed":true},{"durationMs":35,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Coinbitc.approve(address,uint256)\",\"Coinbitc.transfer(address,uint256)\",\"Coinbitc.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":24,\"README.md\":125,\"foundry.toml\":18,\"remappings.txt\":2,\"src/Coinbitc.sol\":14,\"test/Coinbitc.adversarial.t.sol\":281,\"test/Coinbitc.invariant.t.sol\":243,\"test/Coinbitc.t.sol\":368},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"763c7b2a18b45e8485deac62313f7f33b8c782e19456a88f2b914cfeb858fd92","verifiedTreeHash":"7692ad4521e917c1fd03e892a43145aa1810d5b8","verifierVersion":"0.1.0+fb8278c5"},{"checks":[{"durationMs":1223,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.11s\nCompiler run successful!\n","passed":true},{"durationMs":787,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 28 tests for test/Coinbitc.t.sol:CoinbitcTest\n[PASS] testFuzz_excessTransferReverts(uint256) (runs: 512, μ: 69130, ~: 69458)\nLogs:\n  Bound result 24822386251042269470972492507\n\n[PASS] testFuzz_transferFromSpendsOnlyApprovedAmount(uint256,uint256) (runs: 512, μ: 163592, ~: 165238)\nLogs:\n  Bound result 4893\n  Bound result 18\n\n[PASS] testFuzz_transferPreservesSupplyAndBalances(address,uint256) (runs: 512, μ: 93217, ~: 93197)\nLogs:\n  Bound result 703768758039640499856848098\n\n[PASS] test_approvalRevocationPreventsSpending() (gas: 144267)\n[PASS] test_approveEmitsEventAndReplacesAllowance() (gas: 119498)\n[PASS] test_approveZeroSpenderReverts() (gas: 37640)\n[PASS] test_constructorEmitsExactlyOneMint() (gas: 9633)\n[PASS] test_create2MintsToImmediateFactoryDeployer() (gas: 300717)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 160486)\n[PASS] test_entireBalanceCanBeTransferred() (gas: 138822)\n[PASS] test_factoryDistributionAndClaimTransfersAreExact() (gas: 531573)\n[PASS] test_failedTransferFromRollsBackAllowance() (gas: 126549)\n[PASS] test_maximumAmountCannotOverflowBalances() (gas: 65320)\n[PASS] test_metadataAndInitialSupply() (gas: 99415)\n[PASS] test_noMintBurnOrAdministrativeEntryPoints() (gas: 708868)\n[PASS] test_runtimeHasNoPrivilegedExecutionOpcodes() (gas: 780637)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 51419)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 91460)\n[PASS] test_transferFromCanExhaustAllowance() (gas: 137925)\n[PASS] test_transferFromConsumesFiniteAllowanceAndEmitsTransfer() (gas: 160477)\n[PASS] test_transferFromInsufficientAllowanceRevertsWithoutStateChange() (gas: 116072)\n[PASS] test_transferFromPreservesInfiniteAllowance() (gas: 215118)\n[PASS] test_transferFromToSelfConsumesAllowanceButPreservesBalance() (gas: 103742)\n[PASS] test_transferFromToZeroRevertsAndPreservesAllowance() (gas: 114583)\n[PASS] test_transferInsufficientBalanceRevertsWithoutStateChange() (gas: 67725)\n[PASS] test_transferToZeroAddressRevertsEvenForZeroAmount() (gas: 71925)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73345)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 78783)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 18.20ms (51.28ms CPU time)\n\nRan 1 test for test/Coinbitc.invariant.t.sol:CoinbitcInvariantTest\n[PASS]\nCoinbitcInvariantTest invariants:\n[PASS] invariant_allBalancesAreConserved\n[PASS] invariant_supplyIsAlwaysOneBillionTokens\n CoinbitcInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭-----------------+--------------+-------+---------+----------╮\n| Contract        | Selector     | Calls | Reverts | Discards |\n+=============================================================+\n| CoinbitcHandler | approve      | 2754  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbitcHandler | transfer     | 2720  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbitcHandler | transferFrom | 2718  | 0       | 0        |\n╰-----------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 18\n  Bound result 4\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3\n  Bound result 0\n  Bound result 4030\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 242\n  Bound result 4117\n  Bound result 0\n  Bound result 3\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 197\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 40\n  Bound result 2\n  Bound result 203\n  Bound result 0\n  Bound result 139\n  Bound result 117\n  Bound result 37\n  Bound result 81\n  Bound result 2638\n  Bound result 125\n  Bound result 1000000000\n  Bound result 2\n  Bound result 3270\n  Bound result 781171762079146526105231961\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 695.19ms (693.87ms CPU time)\n\nRan 2 test suites in 696.72ms (713.39ms CPU time): 29 tests passed, 0 failed, 0 skipped (29 total tests)\n","passed":true},{"durationMs":38,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Coinbitc.approve(address,uint256)\",\"Coinbitc.transfer(address,uint256)\",\"Coinbitc.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":24,\"README.md\":125,\"foundry.toml\":18,\"launch.json\":24,\"remappings.txt\":2,\"src/Coinbitc.sol\":14,\"test/Coinbitc.invariant.t.sol\":87,\"test/Coinbitc.t.sol\":367},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"fafce6ff30d2b24ab7d9ca621793a3741c6720954242e183488634072ed39e99","verifiedTreeHash":"8bb9d4cb5e2266cb769bf1e5a8ee4267a17d8e87","verifierVersion":"0.1.0+fb8278c5"}]}