{"assessments":[],"deployments":[{"attestationHash":"8b347e673c9e76f7cc5ced81e26718ef3db6f977a610f343a3e872d8a91f3ceb","chainId":1,"contracts":[{"address":"0x784ff9a3ac5d88a30bfff6f7f2a270161fbe6000","blockNumber":26262945,"name":"PoolInitializationGuard","role":"hook","txHash":"0xa4f1dcdff1aa86ba693b26fa558e8b3539ccc3999706828f91929f4d91dd1f68"},{"address":"0xad00c2123279a547520ce60487e3853f4a9de76b","blockNumber":26262945,"name":"MerkleDistributor","role":"distributor","txHash":"0xa4f1dcdff1aa86ba693b26fa558e8b3539ccc3999706828f91929f4d91dd1f68"},{"address":"0xbb9cf4dd09d6802392c102cfc03fc14a1c5d62f4","blockNumber":26262945,"name":"Squeekchain","role":"token","txHash":"0xa4f1dcdff1aa86ba693b26fa558e8b3539ccc3999706828f91929f4d91dd1f68"}],"id":"1df982ff-4cf1-49ee-8315-37b270186876","manifestHash":"663e3af2c0eb78d653424f3a5ecc0a1a26747ba5f6bad934cdbd31efe33b4086","status":"live"}],"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":"0ede4474-3031-4667-904a-7c68280a4e46","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"542d40c99c90bc237c7291f064ea44c1f3fad4b62c4db657ed806f5672934f05","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":"cf4dd353951cc0f1ba841a9e05549359241089d8e98fe8999e02125f25e2ef7c","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":"56f440872ed062a52d5347527663a2fa6146feb7ea19b1f2d0708272adf19642","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":"29883779475468b789ab5a6738c0be0f600071a9ba983d4fd00998b7491b0b26","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":"8148c0d8a2b180aae47bc9f675ec944ef6806548e9361710eab7032e2bafcbac","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":"aedc445fa2e4f73d02a5da0cbcde2cb691ca7a0e05a3f02e76540d422c798e2d","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"816fe39c7efd64504a19175b0f4dd9186d61069f37a22684c90358a18c60bddc","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"816fe39c7efd64504a19175b0f4dd9186d61069f37a22684c90358a18c60bddc","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"476e85ddc2e1088a1facff7344452091ff0ee0543eff6cf1f58a1a592a716886","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"d6584b0d6af79ccda9b1197a532e882dd5d0667f093f86027e79868de6b98fce","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"ab3f8f2aa4e7f3b3ada558c0dcf522ba733ca3df3b1da92c707a0fe305816d5f","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"ab3f8f2aa4e7f3b3ada558c0dcf522ba733ca3df3b1da92c707a0fe305816d5f","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: squeekchain (SQK).\nToken name: squeekchain\nToken symbol: SQK\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"a69f30d2b78f5fcc849945192bc85bbd594ddc7b1a1028cbbcdfeb0736ce5626","previousHash":"99bbcb173b38f809b29b57b124384e98540503d2648591cf6b1e5b3aa30becdf","projectId":"0ede4474-3031-4667-904a-7c68280a4e46","publication":{"commit":"e32f00d5676c75df6c2baf1cfeb8a761f0093086","deliveredAt":"2026-10-24T13:55:47.150Z","repoUrl":"https://github.com/identity-md-launches/launch-2535-squeekchain"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[],"site":null,"snapshotHash":"d69ace24e03b906283227c3d644e64b2d2abd8132d6e1e4b9b0943c5e28442e4","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"e0f64c10e30e33e2","findings":[],"hash":"29883779475468b789ab5a6738c0be0f600071a9ba983d4fd00998b7491b0b26","nodeId":"37810dad-897c-4d31-98e2-51c20e0c5784","outcome":"completed","summary":"I found no math defects in squeekchain (SQK). I wrote the result to `.imd-findings.json` with an empty findings list and a coverage row for each of the three entry points, all marked `holds`. No other files were changed.\n\nThe token is `src/Squeekchain.sol`, a thin wrapper over the standard OpenZeppelin v5.0.2 ERC20. Its constructor mints `1_000_000_000 * 10**18` (1e27) once to the deployer. The vendored ERC20 file matches its recorded hash, so the library has not been altered.\n\nWhat I checked against the Math Precision, Boundary and Numerical Gap guides:\n- **Precision:** there is no division, fee, tax or rounding anywhere, so amounts move exactly as sent.\n- **Unchecked arithmetic:** the balance subtraction only runs after `fromBalance < value` reverts. The additions can't overflow because the total supply is fixed at 1e27, far below 2^256.\n- **Allowance boundaries:** `_spendAllowance` reverts when the allowance is too small and doesn't decrease an allowance of `type(uint256).max`, which is the standard \"unlimited approval\" behaviour.\n- **Edge inputs:** transfers of zero, of exactly the whole balance, of the balance plus one, and to yourself all behave correctly. Zero addresses are rejected.\n- **Supply:** the constant is computed at compile time, `decimals()` returns 18, and nothing can mint or burn after deployment.\n- **Static analysis:** the one aderyn note (a large number written out at `src/Squeekchain.sol:12`) is about style only and isn't a defect.\n\nThe existing tests pass: 27 of 27, including the invariant that supply, balances and allowances stay consistent.\n\nSome of the vendored test-library (forge-std) files don't match the hashes in `DEPENDENCIES.lock.json`. That only affects testing, not the deployed token, so I left it out of the findings; it's worth a look by whoever maintains the dependency list.","treeHash":null,"usage":{"cachedInputTokens":197721,"inputTokens":12,"model":"claude-opus-5-5","outputTokens":2520,"runtime":"claude","turns":6,"wallClockMs":51706}},{"artifacts":[],"attempt":1,"bundleHash":"6566e3964453c2d3c134db130bbf55239b022d2b47774c7c3755aee8233f9680","device":"b3e0a28d5c3d1a63","findings":[],"hash":"476e85ddc2e1088a1facff7344452091ff0ee0543eff6cf1f58a1a592a716886","nodeId":"6caccc98-7932-48fb-aa37-d5af89bb73f8","outcome":"completed","summary":"Created `launch.json` matching `Squeekchain`’s constructor, exact supply, and required pool/economics values. No application contracts are listed.\n\n`forge build` succeeded; all 27 tests passed with the supplied fuzz seed. Only `launch.json` changed.","treeHash":"b50895e5a6119030c3c026a80c8720e728cfdd33","usage":{"cachedInputTokens":239360,"inputTokens":28349,"model":"gpt-6-astra","outputTokens":2360,"runtime":"codex","turns":3,"wallClockMs":81862}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"60c045240bb09c33","findings":[],"hash":"542d40c99c90bc237c7291f064ea44c1f3fad4b62c4db657ed806f5672934f05","nodeId":"c4ef1acf-7a7d-4221-bf60-b67588160f67","outcome":"completed","summary":"The review is complete with no defects found. The findings file holds an empty list and eight coverage rows, and the working tree is untouched apart from that file.\n\n**What was checked in the assigned area**\n\n- **Economic Security.** The token is OpenZeppelin v5.0.2 ERC20 with a single constructor mint and nothing else. There is no fee, rebase, pause, blacklist, hook, callback, fallback, or external call, so nothing can short a launch flow or strand funds. The five vendored library files are byte-identical to the upstream commit named in the lock file, which I confirmed by fetching them. The supply constant evaluates to exactly 10^27 base units, which dismisses the aderyn large-literal lead.\n- **Invariant.** Total supply equals the sum of balances and stays at 10^27 for life. Only the constructor reaches the internal mint, and no burn or administrative selector exists. The project's own invariant suite and 24 unit tests pass locally with the documented seed.\n- **Flow Gap.** Every flow the protected launch test exercises moves exactly the stated amount: the swarm share to the distributor, claims out of it, the single-sided seed into the PoolManager, and a trader's buy and sell. No seam between execution, periphery and intent exists because the token overrides nothing.\n\n**One lead outside the area, dismissed.** The runtime is compiled for Cancun and contains PUSH0 and MCOPY, and chain 4663's block headers lack the usual post-Shanghai fields. I simulated the creation code through eth_call on chains 1, 4663 and 8453. All three returned the full runtime, and chain 4663 identifies as Arbitrum Nitro v3.12, which supports those opcodes. No finding.\n\n**Coverage.** All three listed entry points hold, each with a one-line reason, plus rows for supply conservation, exact constructor mint, launch-flow exactness, dependency integrity and opcode compatibility. Slither and Mythril were not run beyond the verifier's supplied output. The standard ERC-20 approve overwrite race was checked and is a design property of the standard, already documented in the README, not a defect in this code.","treeHash":null,"usage":{"cachedInputTokens":601393,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":12387,"runtime":"claude","turns":19,"wallClockMs":192912}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"1da032f42d59f73b","findings":[],"hash":"56f440872ed062a52d5347527663a2fa6146feb7ea19b1f2d0708272adf19642","nodeId":"a5c7200f-4740-4e47-9911-0aafb47fc50c","outcome":"completed","summary":"I found no defects in this audit, and `.imd-findings.json` holds an empty findings list plus a coverage record.\n\n**What I checked**\n- **The contract:** `src/Squeekchain.sol` is a plain OpenZeppelin v5.0.0 ERC20 with nothing overridden. Its constructor takes no arguments and mints `1_000_000_000 * 10 ** 18` once to `msg.sender`, which is the factory. It has no owner, no mint or burn callable from outside, no fees and no pause. Nothing can increase the supply after launch.\n- **The OpenZeppelin library:** I read its `transfer`, `transferFrom`, `approve`, `_spendAllowance` and `_update`, and they behave as standard. Every launch transfer (factory to distributor, the pool seed, swaps) moves exactly the amount it says. The library has no `delegatecall` or `selfdestruct`.\n- **The manifest:** `launch.json` matches the code. `constructorArgs` is empty, matching the constructor; the name, symbol and 18 decimals match; `totalSupply` is `1000000000000000000000000000`. The contract name is under 32 characters and addresses are lowercase.\n- **Deployability:** the contract is 1,752 bytes deployed and 2,639 bytes at creation, far below the 24,576 and 49,152 limits. It needs no particular address bits, so the factory can deploy it.\n- **Tests:** all 47 project tests pass, including the invariant suites.\n\n**The other inputs**\n- **Specialists:** none of the four specialists or the tester reported anything, so there was nothing to reproduce or merge.\n- **Static analysis:** Slither reported nothing. Aderyn flagged the large number at line 12, but that is the intended supply constant, not a defect.\n\n**Coverage:** all three entry points (`approve`, `transfer`, `transferFrom`) are marked `holds`. I added two more rows for the fixed-supply rule and for the manifest matching the code.\n\nI changed no repository files.","treeHash":null,"usage":{"cachedInputTokens":255826,"inputTokens":14,"model":"claude-opus-5-5","outputTokens":3150,"runtime":"claude","turns":7,"wallClockMs":91652}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"9b657b3675e34ec5","findings":[],"hash":"8148c0d8a2b180aae47bc9f675ec944ef6806548e9361710eab7032e2bafcbac","nodeId":"05c9c744-25f3-48e5-b6ae-badc55b96eba","outcome":"completed","summary":"The review is complete. No defects were found in my area, and the findings file is written with an empty findings list and a full coverage record. No tracked file was changed.\n\n**What I reviewed.** The token at `src/Squeekchain.sol` is a 17-line contract that inherits the vendored OpenZeppelin v5.0.2 ERC-20 unchanged and mints the whole supply to the constructor's caller. I checked it against the Access Control, Trust Gap and Asymmetry guides in the Pashov reference, plus the protected launch floor tests.\n\n**What held.**\n- **Permission model.** There are no roles, modifiers, owner, initializer, mint, burn, pause or blacklist. The three state-changing entry points each act only on the caller's own balance or allowance. The factory, as deployer, has no privilege over any later holder.\n- **Trust-gap seams.** With no privileged actor and no paired pricing or fee formula, none of the four seams in the guide has anything to attach to.\n- **Asymmetry pairs.** Approve and spend mirror each other, including the unlimited-allowance case. Transfer and transferFrom share one update path. Revert paths roll back fully, which the existing fuzz tests confirm.\n- **Hidden surface.** The compiled ABI exposes only the standard ERC-20 functions, with no receive or fallback. The runtime bytecode has no CALL, DELEGATECALL, CALLCODE, CREATE or SELFDESTRUCT. All six vendored OpenZeppelin files match their lockfile SHA-256 hashes.\n- **Supply.** The constant evaluates to exactly 10^27 base units, minted once. The project's 27 tests pass with the README's fuzz seed, including the 256-run invariant suite with zero reverts.\n\n**Leads dismissed.** The aderyn large-numeric-literal note is style only. The ERC-20 approve race is a standard property, already documented in the README, not a defect in this code.\n\n**Coverage record.** The three listed entry points are marked `holds`, with three extra rows for the constructor's role handout, the hidden-entry-point invariant and the fixed-supply invariant. Nothing was left unreached, and no scratch test was needed since no finding carries a proof.","treeHash":null,"usage":{"cachedInputTokens":531164,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":8859,"runtime":"claude","turns":26,"wallClockMs":164243}},{"artifacts":[],"attempt":1,"bundleHash":"1ee9fc5a61da815d6644ab4b52795201106ec5a2300340d440837d13c816c7d6","device":"ff05547b7fde285c","findings":[],"hash":"aedc445fa2e4f73d02a5da0cbcde2cb691ca7a0e05a3f02e76540d422c798e2d","nodeId":"f42b7ba9-28c4-456c-89eb-db1596607e94","outcome":"completed","summary":"Implemented [Squeekchain.sol](/home/imd/.identitymd-10/work/0ede4474-3031-4667-904a-7c68280a4e46/f42b7ba9-28c4-456c-89eb-db1596607e94/src/Squeekchain.sol): 1 billion SQK, 18 decimals, minted once to the deployer.\n\nIncludes vendored dependencies, deployment documentation, and success/failure, fuzz, and invariant tests.\n\nVerified with Solidity 0.8.26:\n\n- `forge build` passed.\n- `forge test`: 27 passed using the required seed.\n- `forge fmt --check` passed.","treeHash":"e2ab0d1cd28c1b406891f376bc91a38b95e591bb","usage":{"cachedInputTokens":664576,"inputTokens":38337,"model":"gpt-6-astra","outputTokens":18987,"runtime":"codex","turns":5,"wallClockMs":629037}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"6f30d6341cbff249","findings":[],"hash":"cf4dd353951cc0f1ba841a9e05549359241089d8e98fe8999e02125f25e2ef7c","nodeId":"af569a9d-5ec0-423a-88ed-2fe5846aaf4e","outcome":"completed","summary":"I found no defects in `Squeekchain` in my area (the Execution Trace, Periphery and First Principles guides). `.imd-findings.json` holds an empty findings list and a coverage record with a row for each of the 3 entry points, all marked `holds`, plus 3 invariant rows.\n\n**What the code is:** `src/Squeekchain.sol` is 17 lines. It inherits the standard OpenZeppelin v5.0.2 `ERC20` without changing it, and its constructor calls `_mint(msg.sender, 1_000_000_000 * 10**18)` once. It has no other functions, no owner, no fee and no hooks.\n\n**What I checked:**\n- **Shared library code (Periphery):** I downloaded the five vendored OpenZeppelin files from the upstream commit, and their SHA-256 hashes match the files in `lib/` exactly. So the code everything relies on is unchanged upstream code, not just consistent with the repo's own lock file.\n- **`approve`, `transfer`, `transferFrom` (Execution Trace):**\n  - Mismatched inputs: none of the three functions has two inputs that could be made to disagree in a harmful way.\n  - Special values: an allowance of the maximum `uint256` only skips the allowance decrease; it skips no other check.\n  - Zero address: `transferFrom(address(0), x, 0)` reverts with `ERC20InvalidSender`, so it can't be used to mint.\n  - Failures: `transferFrom` spends the allowance before moving tokens, and a failure reverts everything, so nothing is left half-updated.\n  - Leftover allowances and the usual race when changing an allowance with `approve` are standard ERC-20 behaviour and are documented in the README.\n- **Assumptions (First Principles):**\n  - The only way to mint is the constructor, because runtime calls can't reach the mint or burn path. The supply therefore stays at exactly 10^27.\n  - Transfers have no fee or callback, so the factory → distributor → claimant and pool manager transfers arrive whole.\n- **Runtime bytecode:** I scanned the deployed code using the protected test's reachability rule. No reachable DELEGATECALL, CALLCODE, SELFDESTRUCT, CALL or CREATE.\n- **Tests:** `forge test` passes all 27 tests, including 6,000 fuzz cases and 256 invariant sequences with zero reverts.\n\n**What I didn't do:**\n- I didn't run the protected launch tests (`Token.protected.t.sol`, `Owners.protected.t.sol`). They need v4-core, the launch harness and environment settings that aren't in this repo.\n- I didn't check the economics the README describes (10% swarm, 40% pool, 50% requester) against the job. They come from the job and aren't in the token code.\n- The static-analysis lead (a \"large numeric literal\" at line 12) is just the supply constant, so it isn't a defect.\n\nThe only file I created in the repository is `.imd-findings.json`, and it is gitignored. `git status` shows a clean tree.","treeHash":null,"usage":{"cachedInputTokens":543093,"inputTokens":20,"model":"claude-opus-5-5","outputTokens":5980,"runtime":"claude","turns":12,"wallClockMs":77287}},{"artifacts":[],"attempt":1,"bundleHash":"6365663c28bfad1ab4c1b1cb8570d2c1a568675fe4fbbfcd5a935ea510619ab5","device":"ea62f3bebece9304","findings":[],"hash":"d6584b0d6af79ccda9b1197a532e882dd5d0667f093f86027e79868de6b98fce","nodeId":"5a14fed0-2bad-4c0d-b87b-17690c8239f2","outcome":"completed","summary":"I added two test files. The full suite passes: 47 tests, run with the verifier's fuzz seed (`0x26fc…2da2`) under forge 1.8.3, and `forge build` is clean. I found no defects, so I didn't write `.imd-findings.json`. The contract is a plain OpenZeppelin ERC20 that mints the whole 1,000,000,000 × 10¹⁸ supply to the deployer, with no admin, mint or burn functions.\n\nThe earlier contributors' 27 tests were already thorough and I left them untouched. I added to the parts they didn't reach:\n\n**`test/SqueekchainAdversarialInvariant.t.sol`**: invariant tests where random call sequences mix successful calls with calls that must fail.\n- **Actors:** five accounts with very uneven starting balances: almost the whole supply, 1,000 tokens, 1 wei, an empty account, and an outsider. This makes overdrafts from zero and from one wei reachable. The earlier handler only ever made calls that succeed, and every actor started with tokens.\n- **Failing calls:** sending more than you hold, sending to the zero address, approving the zero address, spending past an allowance, and spending within an allowance but past the balance. A stranger with no allowance trying to pull funds is also included. Each must revert with the exact OpenZeppelin error and leave nothing behind.\n- **Invariants:** every balance and allowance matches an independent model, the actors together hold the whole supply, the supply never changes, and no tokens end up at the zero address, the token itself, the handler or the test contract.\n- **Not vacuous:** a check at the end of each run fails it if no failing call was ever made. Over 256 runs × 64 calls, each of the 9 actions ran about 1,800 times.\n\n**`test/SqueekchainEdges.t.sol`**: 19 unit and fuzz tests for edge cases:\n- **No ETH:** the token rejects plain ETH and ETH sent along with a `transfer`. Any function selector outside the ERC-20 interface (fuzzed), or an empty call, reverts.\n- **Bytecode scan:** the deployed code has no reachable DELEGATECALL, CALLCODE or SELFDESTRUCT, checked the same way the launch's protected test checks it.\n- **One-call launch:** a helper contract deploys the token and distributes it in a single call, as a factory would; handing out one wei more than the supply reverts the whole deployment.\n- **Allowance edges:** only exactly `type(uint256).max` counts as infinite (one below it is spent down normally); an allowance equal to the supply drops to zero once spent; an allowance can't overdraw after the balance is gone; allowances are separate for each owner–spender pair; approving doesn't require holding a balance.\n- **Fuzzed:** a stranger can't pull without an allowance, two-step transfers conserve the supply, and spending any amount within an allowance leaves the right remainder.\n\nI haven't committed the two new files; they're untracked in `test/`.","treeHash":"fe7e2661bf5df8fad164939118bccd12884e0a09","usage":{"cachedInputTokens":478877,"inputTokens":20,"model":"claude-opus-5-5","outputTokens":13818,"runtime":"claude","turns":11,"wallClockMs":165564}}],"verification":[{"checks":[{"durationMs":1217,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.12s\nCompiler run successful!\n","passed":true},{"durationMs":4131,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 2 tests for test/SqueekchainLaunch.t.sol:SqueekchainLaunchTest\n[PASS] test_create2MintsEverythingToImmediateDeployer() (gas: 354344)\n[PASS] test_distributionClaimsAndPoolTransfersArriveWhole() (gas: 717619)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.12ms (948.26µs CPU time)\n\nRan 24 tests for test/Squeekchain.t.sol:SqueekchainTest\n[PASS] testFuzz_failedTransferFromPreservesAllowanceAndBalances(uint256) (runs: 1000, μ: 203292, ~: 203157)\nLogs:\n  Bound result 2\n\n[PASS] testFuzz_partialAllowanceSpending(uint256,uint256) (runs: 1000, μ: 165136, ~: 167302)\nLogs:\n  Bound result 6387\n  Bound result 1891\n\n[PASS] testFuzz_transferAboveAllowanceRevertsAtomically(uint256,uint256) (runs: 1000, μ: 133742, ~: 134123)\nLogs:\n  Bound result 336435934316099906141729318\n  Bound result 663564065683900093858521861\n\n[PASS] testFuzz_transferAboveBalanceRevertsAtomically(uint256) (runs: 1000, μ: 69060, ~: 69395)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913131391934\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 1000, μ: 93069, ~: 93202)\nLogs:\n  Bound result 1\n\n[PASS] testFuzz_transferToZeroReverts(uint256) (runs: 1000, μ: 58242, ~: 58193)\n[PASS] test_approveEmitsEventWithoutMovingTokens() (gas: 99097)\n[PASS] test_approveReplacesPreviousAllowance() (gas: 93537)\n[PASS] test_approveZeroSpenderReverts() (gas: 37552)\n[PASS] test_constructorEmitsExactlyOneMintEvent() (gas: 9620)\n[PASS] test_constructorSetsMetadataAndEntireSupply() (gas: 107649)\n[PASS] test_deployerCannotMoveAnotherHoldersTokensWithoutApproval() (gas: 158374)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 222719)\n[PASS] test_noMintBurnOrAdministrativeEntryPoints() (gas: 1716946)\n[PASS] test_revocationPreventsFurtherSpending() (gas: 203592)\n[PASS] test_selfTransferPreservesBalance() (gas: 53916)\n[PASS] test_transferEntireSupplyArrivesExactly() (gas: 88671)\n[PASS] test_transferFromConsumesFiniteAllowanceAndEmitsTransfer() (gas: 162437)\n[PASS] test_transferFromToOwnerConsumesOnlyAllowance() (gas: 115995)\n[PASS] test_transferFromZeroRecipientRollsBackAllowance() (gas: 125076)\n[PASS] test_transferFromZeroSenderCannotMint() (gas: 55164)\n[PASS] test_unapprovedCallerCannotUseAnotherSpendersAllowance() (gas: 116116)\n[PASS] test_zeroTransferFromAnEmptyAccountEmitsEvent() (gas: 73331)\n[PASS] test_zeroTransferFromNeedsNoAllowanceAndEmitsEvent() (gas: 93790)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 46.57ms (282.31ms CPU time)\n\nRan 1 test for test/SqueekchainInvariant.t.sol:SqueekchainInvariantTest\n[PASS] invariant_supplyBalancesAndAllowancesMatchTheModel() (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------------+--------------+-------+---------+----------╮\n| Contract           | Selector     | Calls | Reverts | Discards |\n+================================================================+\n| SqueekchainHandler | approve      | 5404  | 0       | 0        |\n|--------------------+--------------+-------+---------+----------|\n| SqueekchainHandler | transfer     | 5501  | 0       | 0        |\n|--------------------+--------------+-------+---------+----------|\n| SqueekchainHandler | transferFrom | 5479  | 0       | 0        |\n╰--------------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 249999999999999999999999997\n  Bound result 1163\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 17\n  Bound result 375247843722567126966278923\n  Bound result 625247843722567126966280086\n  Bound result 3481\n  Bound result 4686487062031695985\n  Bound result 0\n  Bound result 4094070854369726362\n  Bound result 0\n  Bound result 10\n  Bound result 0\n  Bound result 443\n  Bound result 0\n  Bound result 249969883006900032\n  Bound result 0\n  Bound result 50000000000000000000\n  Bound result 3714247997\n  Bound result 0\n  Bound result 60000000000000000000\n  Bound result 2092\n  Bound result 17\n  Bound result 0\n  Bound result 111\n  Bound result 335812277983722586296856505\n  Bound result 15\n  Bound result 790\n  Bound result 0\n  Bound result 14\n  Bound result 5806\n  Bound result 169601236416698418877008\n  Bound result 16\n  Bound result 0\n  Bound result 13\n  Bound result 3\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.01s (4.01s CPU time)\n\nRan 3 test suites in 4.02s (4.06s CPU time): 27 tests passed, 0 failed, 0 skipped (27 total tests)\n","passed":true},{"durationMs":96,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Squeekchain.approve(address,uint256)\",\"Squeekchain.transfer(address,uint256)\",\"Squeekchain.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.lock.json\":164,\"LICENSE\":21,\"README.md\":153,\"foundry.toml\":21,\"launch.json\":24,\"remappings.txt\":2,\"src/Squeekchain.sol\":17,\"test/Squeekchain.t.sol\":333,\"test/SqueekchainInvariant.t.sol\":101,\"test/SqueekchainLaunch.t.sol\":78},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"476e85ddc2e1088a1facff7344452091ff0ee0543eff6cf1f58a1a592a716886","verifiedTreeHash":"b50895e5a6119030c3c026a80c8720e728cfdd33","verifierVersion":"0.1.0+ad64f8c4"},{"checks":[{"durationMs":2436,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 2.25s\nCompiler run successful!\n","passed":true},{"durationMs":6419,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 2 tests for test/SqueekchainLaunch.t.sol:SqueekchainLaunchTest\n[PASS] test_create2MintsEverythingToImmediateDeployer() (gas: 354344)\n[PASS] test_distributionClaimsAndPoolTransfersArriveWhole() (gas: 717619)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 2.04ms (2.97ms CPU time)\n\nRan 24 tests for test/Squeekchain.t.sol:SqueekchainTest\n[PASS] testFuzz_failedTransferFromPreservesAllowanceAndBalances(uint256) (runs: 1000, μ: 203292, ~: 203157)\nLogs:\n  Bound result 302095348201336850457700539\n\n[PASS] testFuzz_partialAllowanceSpending(uint256,uint256) (runs: 1000, μ: 165136, ~: 167302)\nLogs:\n  Bound result 1064470261\n  Bound result 4192746\n\n[PASS] testFuzz_transferAboveAllowanceRevertsAtomically(uint256,uint256) (runs: 1000, μ: 133742, ~: 134123)\nLogs:\n  Bound result 1064470261\n  Bound result 1000000000000000000\n\n[PASS] testFuzz_transferAboveBalanceRevertsAtomically(uint256) (runs: 1000, μ: 69060, ~: 69395)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039507584007913129639935\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 1000, μ: 93069, ~: 93202)\nLogs:\n  Bound result 24576\n\n[PASS] testFuzz_transferToZeroReverts(uint256) (runs: 1000, μ: 58242, ~: 58193)\n[PASS] test_approveEmitsEventWithoutMovingTokens() (gas: 99097)\n[PASS] test_approveReplacesPreviousAllowance() (gas: 93537)\n[PASS] test_approveZeroSpenderReverts() (gas: 37552)\n[PASS] test_constructorEmitsExactlyOneMintEvent() (gas: 9620)\n[PASS] test_constructorSetsMetadataAndEntireSupply() (gas: 107649)\n[PASS] test_deployerCannotMoveAnotherHoldersTokensWithoutApproval() (gas: 158374)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 222719)\n[PASS] test_noMintBurnOrAdministrativeEntryPoints() (gas: 1716946)\n[PASS] test_revocationPreventsFurtherSpending() (gas: 203592)\n[PASS] test_selfTransferPreservesBalance() (gas: 53916)\n[PASS] test_transferEntireSupplyArrivesExactly() (gas: 88671)\n[PASS] test_transferFromConsumesFiniteAllowanceAndEmitsTransfer() (gas: 162437)\n[PASS] test_transferFromToOwnerConsumesOnlyAllowance() (gas: 115995)\n[PASS] test_transferFromZeroRecipientRollsBackAllowance() (gas: 125076)\n[PASS] test_transferFromZeroSenderCannotMint() (gas: 55164)\n[PASS] test_unapprovedCallerCannotUseAnotherSpendersAllowance() (gas: 116116)\n[PASS] test_zeroTransferFromAnEmptyAccountEmitsEvent() (gas: 73331)\n[PASS] test_zeroTransferFromNeedsNoAllowanceAndEmitsEvent() (gas: 93790)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 71.99ms (429.78ms CPU time)\n\nRan 1 test for test/SqueekchainInvariant.t.sol:SqueekchainInvariantTest\n[PASS] invariant_supplyBalancesAndAllowancesMatchTheModel() (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------------+--------------+-------+---------+----------╮\n| Contract           | Selector     | Calls | Reverts | Discards |\n+================================================================+\n| SqueekchainHandler | approve      | 5404  | 0       | 0        |\n|--------------------+--------------+-------+---------+----------|\n| SqueekchainHandler | transfer     | 5501  | 0       | 0        |\n|--------------------+--------------+-------+---------+----------|\n| SqueekchainHandler | transferFrom | 5479  | 0       | 0        |\n╰--------------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 249999999999999999999999997\n  Bound result 1163\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 17\n  Bound result 375247843722567126966278923\n  Bound result 625247843722567126966280086\n  Bound result 3481\n  Bound result 4686487062031695985\n  Bound result 0\n  Bound result 4094070854369726362\n  Bound result 0\n  Bound result 10\n  Bound result 0\n  Bound result 443\n  Bound result 0\n  Bound result 249969883006900032\n  Bound result 0\n  Bound result 50000000000000000000\n  Bound result 3714247997\n  Bound result 0\n  Bound result 60000000000000000000\n  Bound result 2092\n  Bound result 17\n  Bound result 0\n  Bound result 111\n  Bound result 335812277983722586296856505\n  Bound result 15\n  Bound result 790\n  Bound result 0\n  Bound result 14\n  Bound result 5806\n  Bound result 169601236416698418877008\n  Bound result 16\n  Bound result 0\n  Bound result 13\n  Bound result 3\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 6.18s (6.18s CPU time)\n\nRan 3 test suites in 6.19s (6.25s CPU time): 27 tests passed, 0 failed, 0 skipped (27 total tests)\n","passed":true},{"durationMs":104,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Squeekchain.approve(address,uint256)\",\"Squeekchain.transfer(address,uint256)\",\"Squeekchain.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.lock.json\":164,\"LICENSE\":21,\"README.md\":153,\"foundry.toml\":21,\"remappings.txt\":2,\"src/Squeekchain.sol\":17,\"test/Squeekchain.t.sol\":333,\"test/SqueekchainInvariant.t.sol\":101,\"test/SqueekchainLaunch.t.sol\":78},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":1327,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":548,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/Squeekchain.sol:12: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"aedc445fa2e4f73d02a5da0cbcde2cb691ca7a0e05a3f02e76540d422c798e2d","verifiedTreeHash":"e2ab0d1cd28c1b406891f376bc91a38b95e591bb","verifierVersion":"0.1.0+ad64f8c4"},{"checks":[{"durationMs":3850,"exitCode":0,"name":"build","output":"Compiling 30 files with Solc 0.8.26\nSolc 0.8.26 finished in 3.66s\nCompiler run successful!\n","passed":true},{"durationMs":8842,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 2 tests for test/SqueekchainLaunch.t.sol:SqueekchainLaunchTest\n[PASS] test_create2MintsEverythingToImmediateDeployer() (gas: 354344)\n[PASS] test_distributionClaimsAndPoolTransfersArriveWhole() (gas: 717619)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 34.24ms (4.27ms CPU time)\n\nRan 19 tests for test/SqueekchainEdges.t.sol:SqueekchainEdgesTest\n[PASS] testFuzz_approveThenSpendAnyAmountWithinBounds(uint256,uint256) (runs: 1000, μ: 142584, ~: 144396)\nLogs:\n  Bound result 70346416919066049132638586624274139170336\n  Bound result 503905915428750758766408122\n\n[PASS] testFuzz_strangerCannotPullWithoutAllowance(address,uint256) (runs: 1000, μ: 49393, ~: 49346)\nLogs:\n  Bound result 3129\n\n[PASS] testFuzz_twoHopTransferConserves(address,address,uint256,uint256) (runs: 1000, μ: 153662, ~: 158654)\nLogs:\n  Bound result 331636957878073876408916688510075428763496291657\n  Bound result 738709832097896876722261302692366679162626368155\n  Bound result 3333166008939483805303639\n  Bound result 1855421649186227081704993\n\n[PASS] testFuzz_unknownSelectorsRevert(bytes4,bytes) (runs: 1000, μ: 47712, ~: 47493)\n[PASS] test_allowanceExactlySupplySpentInFullReachesZero() (gas: 163032)\n[PASS] test_allowanceOneBelowMaxIsDecremented() (gas: 124769)\n[PASS] test_allowanceOutlivesBalanceAndCannotOverdraw() (gas: 202119)\n[PASS] test_allowancesArePerOwnerAndPerSpender() (gas: 208807)\n[PASS] test_approveDoesNotRequireABalance() (gas: 101411)\n[PASS] test_balanceAfterSpendingDownIsReusable() (gas: 206759)\n[PASS] test_emptyAccountCannotSendOneWei() (gas: 37843)\n[PASS] test_emptyCalldataReverts() (gas: 29047)\n[PASS] test_launchOverdistributionRevertsWholeDeployment() (gas: 338643)\n[PASS] test_oneCallLaunchMintsToTheLauncherAndDistributesExactly() (gas: 418362)\n[PASS] test_rejectsEtherWithTransfer() (gas: 50752)\n[PASS] test_rejectsPlainEther() (gas: 39736)\n[PASS] test_runtimeHasNoDelegatecallCallcodeOrSelfdestruct() (gas: 2473308)\n[PASS] test_supplyIsExactlyOneBillionWholeTokens() (gas: 42408)\n[PASS] test_transferOneWeiOverFullSupplyReverts() (gas: 35494)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 76.09ms (317.74ms CPU time)\n\nRan 24 tests for test/Squeekchain.t.sol:SqueekchainTest\n[PASS] testFuzz_failedTransferFromPreservesAllowanceAndBalances(uint256) (runs: 1000, μ: 203326, ~: 203157)\nLogs:\n  Bound result 591381680009804548897589753\n\n[PASS] testFuzz_partialAllowanceSpending(uint256,uint256) (runs: 1000, μ: 165691, ~: 167302)\nLogs:\n  Bound result 240602778465261362318010221\n  Bound result 167012926\n\n[PASS] testFuzz_transferAboveAllowanceRevertsAtomically(uint256,uint256) (runs: 1000, μ: 133923, ~: 134133)\nLogs:\n  Bound result 49132638586624274139170336\n  Bound result 700270887174804885392303820\n\n[PASS] testFuzz_transferAboveBalanceRevertsAtomically(uint256) (runs: 1000, μ: 69065, ~: 69395)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640031\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 1000, μ: 93124, ~: 93202)\nLogs:\n  Bound result 950802173035556416223248443\n\n[PASS] testFuzz_transferToZeroReverts(uint256) (runs: 1000, μ: 58245, ~: 58193)\n[PASS] test_approveEmitsEventWithoutMovingTokens() (gas: 99097)\n[PASS] test_approveReplacesPreviousAllowance() (gas: 93537)\n[PASS] test_approveZeroSpenderReverts() (gas: 37552)\n[PASS] test_constructorEmitsExactlyOneMintEvent() (gas: 9620)\n[PASS] test_constructorSetsMetadataAndEntireSupply() (gas: 107649)\n[PASS] test_deployerCannotMoveAnotherHoldersTokensWithoutApproval() (gas: 158374)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 222719)\n[PASS] test_noMintBurnOrAdministrativeEntryPoints() (gas: 1716946)\n[PASS] test_revocationPreventsFurtherSpending() (gas: 203592)\n[PASS] test_selfTransferPreservesBalance() (gas: 53916)\n[PASS] test_transferEntireSupplyArrivesExactly() (gas: 88671)\n[PASS] test_transferFromConsumesFiniteAllowanceAndEmitsTransfer() (gas: 162437)\n[PASS] test_transferFromToOwnerConsumesOnlyAllowance() (gas: 115995)\n[PASS] test_transferFromZeroRecipientRollsBackAllowance() (gas: 125076)\n[PASS] test_transferFromZeroSenderCannotMint() (gas: 55164)\n[PASS] test_unapprovedCallerCannotUseAnotherSpendersAllowance() (gas: 116116)\n[PASS] test_zeroTransferFromAnEmptyAccountEmitsEvent() (gas: 73331)\n[PASS] test_zeroTransferFromNeedsNoAllowanceAndEmitsEvent() (gas: 93790)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 76.77ms (454.83ms CPU time)\n\nRan 1 test for test/SqueekchainInvariant.t.sol:SqueekchainInvariantTest\n[PASS] invariant_supplyBalancesAndAllowancesMatchTheModel() (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------------+--------------+-------+---------+----------╮\n| Contract           | Selector     | Calls | Reverts | Discards |\n+================================================================+\n| SqueekchainHandler | approve      | 5404  | 0       | 0        |\n|--------------------+--------------+-------+---------+----------|\n| SqueekchainHandler | transfer     | 5501  | 0       | 0        |\n|--------------------+--------------+-------+---------+----------|\n| SqueekchainHandler | transferFrom | 5479  | 0       | 0        |\n╰--------------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 249999999999999999999999997\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 12\n  Bound result 0\n  Bound result 12\n  Bound result 14572334809519060065329389\n  Bound result 9\n  Bound result 3483\n  Bound result 0\n  Bound result 1\n  Bound result 1801\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 274\n  Bound result 0\n  Bound result 1061\n  Bound result 0\n  Bound result 11\n  Bound result 0\n  Bound result 134751605656987718695380289\n  Bound result 0\n  Bound result 1861\n  Bound result 13\n  Bound result 59999999999999999999\n  Bound result 88\n  Bound result 109643180257772006295234689\n  Bound result 235427605190480939934669788\n  Bound result 889\n  Bound result 0\n  Bound result 0\n  Bound result 4061\n  Bound result 196\n  Bound result 10000000000000000000\n  Bound result 1536\n  Bound result 243\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.95s (5.95s CPU time)\n\nRan 1 test for test/SqueekchainAdversarialInvariant.t.sol:SqueekchainAdversarialInvariantTest\n[PASS]\nSqueekchainAdversarialInvariantTest invariants:\n[PASS] invariant_balancesAndAllowancesMatchTheModelAfterFailures\n[PASS] invariant_supplyIsFixedAndNothingLeaksOutsideTheActors\n SqueekchainAdversarialInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------------------------+-----------------------------+-------+---------+----------╮\n| Contract                      | Selector                    | Calls | Reverts | Discards |\n+==========================================================================================+\n| SqueekchainAdversarialHandler | approve                     | 1829  | 0       | 0        |\n|-------------------------------+-----------------------------+-------+---------+----------|\n| SqueekchainAdversarialHandler | approveZeroSpender          | 1831  | 0       | 0        |\n|-------------------------------+-----------------------------+-------+---------+----------|\n| SqueekchainAdversarialHandler | strangerTransferFrom        | 1773  | 0       | 0        |\n|-------------------------------+-----------------------------+-------+---------+----------|\n| SqueekchainAdversarialHandler | transfer                    | 1790  | 0       | 0        |\n|-------------------------------+-----------------------------+-------+---------+----------|\n| SqueekchainAdversarialHandler | transferFrom                | 1802  | 0       | 0        |\n|-------------------------------+-----------------------------+-------+---------+----------|\n| SqueekchainAdversarialHandler | transferFromMoreThanAllowed | 1805  | 0       | 0        |\n|-------------------------------+-----------------------------+-------+---------+----------|\n| SqueekchainAdversarialHandler | transferFromMoreThanHeld    | 1876  | 0       | 0        |\n|-------------------------------+-----------------------------+-------+---------+----------|\n| SqueekchainAdversarialHandler | transferMoreThanHeld        | 1841  | 0       | 0        |\n|-------------------------------+-----------------------------+-------+---------+----------|\n| SqueekchainAdversarialHandler | transferToZero              | 1837  | 0       | 0        |\n╰-------------------------------+-----------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1\n  Bound result 0\n  Bound result 8\n  Bound result 1461501637330902918203684832716283019655932542975\n  Bound result 3381\n  Bound result 41108975001\n  Bound result 16147102836\n  Bound result 17\n  Bound result 14\n  Bound result 0\n  Bound result 3124842406\n  Bound result 4695\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129632283\n  Bound result 999998999999999999999999989\n  Bound result 0\n  Bound result 1\n  Bound result 1121\n  Bound result 8662\n  Bound result 0\n  Bound result 36022411110381717882350561238377626233656768039533388991386\n  Bound result 10000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 47688004234545986137665663476957324480396586168143663544562483646282773430272\n  Bound result 65378097072544540450\n  Bound result 0\n  Bound result 999998999999999999999999995\n  Bound result 115792089237316195423570985008687907853269984665640564038457584007954238614943\n  Bound result 1\n  Bound result 25266746980629423976760257582662222257631296129113574136954084493320502\n  Bound result 51727916369582513934368065858518181\n  Bound result 25\n  Bound result 0\n  Bound result 40000000000000000000\n  Bound result 0\n  Bound result 3\n  Bound result 3\n  Bound result 25000000000000000000\n  Bound result 5\n  Bound result 0\n  Bound result 1461501637330902918203684832716283019655932542975\n  Bound result 0\n  Bound result 15158354658751331446146729358760947944449256223998019382524625720851546386900\n  Bound result 5941\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 8.62s (8.62s CPU time)\n\nRan 5 test suites in 8.63s (14.76s CPU time): 47 tests passed, 0 failed, 0 skipped (47 total tests)\n","passed":true},{"durationMs":116,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Squeekchain.approve(address,uint256)\",\"Squeekchain.transfer(address,uint256)\",\"Squeekchain.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.lock.json\":164,\"LICENSE\":21,\"README.md\":153,\"foundry.toml\":21,\"remappings.txt\":2,\"src/Squeekchain.sol\":17,\"test/Squeekchain.t.sol\":333,\"test/SqueekchainAdversarialInvariant.t.sol\":223,\"test/SqueekchainEdges.t.sol\":243,\"test/SqueekchainInvariant.t.sol\":101,\"test/SqueekchainLaunch.t.sol\":78},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"d6584b0d6af79ccda9b1197a532e882dd5d0667f093f86027e79868de6b98fce","verifiedTreeHash":"fe7e2661bf5df8fad164939118bccd12884e0a09","verifierVersion":"0.1.0+ad64f8c4"}]}