{"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":"4a415360-0f4f-4bcd-ae18-c0af53a90534","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"fc10278c8b5fa29b6a0dd100c72bb9f79f56c2c2be3b32969783026f174a964d","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":"f7827a5916207645c2836659bfe4efe271f67176d505f199699984b1b2817dde","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":"aebb04ce26f6f3aed0ef83463f9fe1b862f4cd865a790a528339b217b35be0ad","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":"a02c4eaedf983cb02096b1fe01188a74c6b4c5cd3683473c6a9ba761a57e2ea9","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":"93794bd7916852a762e2640e31f9173f2c63caf7b810e314dd0dd8950b47964f","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":"32d33a5ba52d27e276f0dbd4920777d0cb854614a18f34d715910078fa933912","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":"00d8d533d7f34b09cd00e0c3b47397cec83cdc54e709c771628fbbcdf0db715f","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"c8c5dfc47ec54cb8d316a50c2ebd755b13737a5e90dc9ec69be7d11c41a9b794","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: Coinbase (COINBASE).\nToken name: Coinbase\nToken symbol: COINBASE\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"5b26624b225c5ca83e94f35527dd24c86ba9eae17a4640f01fb87ed06d10eb8d","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"4a415360-0f4f-4bcd-ae18-c0af53a90534","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1608-coinbase"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52680","feedbackHash":"5b4a9b72b69bc23ef5a13aec346231e00c05d10d878d29ec6a3c6c868b94df38","nodeKey":"audit_economics","submissionHash":"fc10278c8b5fa29b6a0dd100c72bb9f79f56c2c2be3b32969783026f174a964d","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52255","feedbackHash":"c5cf110a502adc40eb958d2bda90a118e57b3f5a49f5d62676928afa21f89bd9","nodeKey":"audit_flow","submissionHash":"f7827a5916207645c2836659bfe4efe271f67176d505f199699984b1b2817dde","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52162","feedbackHash":"cc15f4975402a1f4c7b710221975d9c49056d8016241224d2bb6baafa4ae87f5","nodeKey":"audit_judge","submissionHash":"aebb04ce26f6f3aed0ef83463f9fe1b862f4cd865a790a528339b217b35be0ad","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51315","feedbackHash":"5770302e3463331b9ae5a40d12ea136c25da9d658f49bab16a562af467695684","nodeKey":"audit_math","submissionHash":"a02c4eaedf983cb02096b1fe01188a74c6b4c5cd3683473c6a9ba761a57e2ea9","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52169","feedbackHash":"5b9b297db0fee7d3458e4113c9a7b65698601c4c2dbb39d7956bfa2a63efa6a2","nodeKey":"audit_permissions","submissionHash":"93794bd7916852a762e2640e31f9173f2c63caf7b810e314dd0dd8950b47964f","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52342","feedbackHash":"a99eb7a2b33277320856878879066469f67c3c5a53caeafa9599e5bf6ae74eab","nodeKey":"build_contract_project","submissionHash":"32d33a5ba52d27e276f0dbd4920777d0cb854614a18f34d715910078fa933912","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52092","feedbackHash":"323411542d237425215bded6f14a0e02ae8aa5966b722172c8faed983cf0e1cd","nodeKey":"manifest","submissionHash":"00d8d533d7f34b09cd00e0c3b47397cec83cdc54e709c771628fbbcdf0db715f","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51509","feedbackHash":"3dad270aad453b243b85db54f291763057a7c6ae00e2949a34817d99b6a18a87","nodeKey":"write_foundry_tests","submissionHash":"c8c5dfc47ec54cb8d316a50c2ebd755b13737a5e90dc9ec69be7d11c41a9b794","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"aa81e956ebcb7a6178932b783868410b5f1b617103db6308fffc2b9f4163e59a","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"bb814751b10d24d23b4f9cc954dccc865241de55f10fff3509f42638f90093e3","device":"ddeff5e2c1df0f4a","findings":[],"hash":"00d8d533d7f34b09cd00e0c3b47397cec83cdc54e709c771628fbbcdf0db715f","nodeId":"9623a24e-5f3a-4470-90b6-2e795a953007","outcome":"completed","summary":"Created `launch.json` matching the accepted Coinbase constructor, exact supply, pool settings, and economics. Only the manifest changed.\n\nOffline build and all 32 tests passed, including a second fuzz seed. Slither reported no medium/high findings. Manifest fields and constructor ABI checks passed.\n\nGit staging was unavailable because `.git` is read-only; the file remains ready for collection.","treeHash":"0d1e61f3ebcfc53dc0fa252dc28c06c2e73b69da","usage":{"cachedInputTokens":344704,"inputTokens":34197,"model":"gpt-6-astra","outputTokens":3296,"runtime":"codex","turns":4,"wallClockMs":142028}},{"artifacts":[],"attempt":1,"bundleHash":"151d7e15ba892cac41920c9dd969f2804010caddad0a08d92959c8325cbcad35","device":"cd2c3a8d55620566","findings":[],"hash":"32d33a5ba52d27e276f0dbd4920777d0cb854614a18f34d715910078fa933912","nodeId":"261d94b0-43ac-4c64-a7ab-7bc230e118b8","outcome":"completed","summary":"Implemented Coinbase (COINBASE): 1,000,000,000 tokens, 18 decimals, minted once to the deployer.\n\nIncluded vendored dependencies, success/failure tests, accounting invariants, and deployment documentation.\n\nPassed `forge build`, `forge test`, and `forge fmt --check`. A clean offline build and parallel tests also passed with an empty environment.","treeHash":"faf65f3527bd03ae612eadb6db72cc161d01ecc1","usage":{"cachedInputTokens":405504,"inputTokens":46584,"model":"gpt-6-astra","outputTokens":15138,"runtime":"codex","turns":5,"wallClockMs":506375}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"e8816d4386532a66","findings":[{"citation":"resolved","description":"README.md (Build and check, line 46) instructs the verifier to run `sha256sum --check DEPENDENCIES.sha256`, and DEPENDENCIES.md (lines 4-6) states the upstream files are unmodified and that the hash file is a local integrity check. On the committed tree the check fails for seven files under lib/forge-std/src/ (Vm.sol, StdAssertions.sol, StdJson.sol, StdToml.sol, console.sol, interfaces/IERC7540.sol, interfaces/IMulticall3.sol). I diffed each against the pinned upstream tag forge-std v1.9.7: the differences are whitespace only (long function signatures were reflowed onto one line), so there is no behavioural change, and the five OpenZeppelin v5.0.2 files are byte-identical to upstream. The defect is outside my assigned area (access control / trust gap / asymmetry) and does not touch the token's runtime: it is a broken documented check and an inaccurate 'unmodified' claim. Minimal fix: either regenerate DEPENDENCIES.sha256 from the tree as committed, or restore the seven files to their upstream v1.9.7 bytes so the recorded hashes match. Either way the README's check then passes.","line":46,"path":"README.md","reproduction":"From the repository root run `sha256sum --check DEPENDENCIES.sha256`. Expected (per README.md:46 and DEPENDENCIES.md:4-6): every line reports OK. Actual: `lib/forge-std/src/StdAssertions.sol: FAILED`, `lib/forge-std/src/StdJson.sol: FAILED`, `lib/forge-std/src/StdToml.sol: FAILED`, `lib/forge-std/src/Vm.sol: FAILED`, `lib/forge-std/src/console.sol: FAILED`, `lib/forge-std/src/interfaces/IERC7540.sol: FAILED`, `lib/forge-std/src/interfaces/IMulticall3.sol: FAILED`, `sha256sum: WARNING: 7 computed checksums did NOT match`, exit status 1. For example DEPENDENCIES.sha256:24 records 9068805b59ac1d0ea03a8fa1f15ae49c094e0c6c852a2500e0dd112f264b2cb1 for lib/forge-std/src/Vm.sol, which is not the hash of the committed file. `git status` is clean, so this is the committed state, not a local edit.","severity":"low","snippet":"sha256sum --check DEPENDENCIES.sha256","title":"Shipped dependency integrity check fails: 7 vendored forge-std files do not match DEPENDENCIES.sha256"}],"hash":"93794bd7916852a762e2640e31f9173f2c63caf7b810e314dd0dd8950b47964f","nodeId":"a6b58006-f45a-4360-acd0-8ae3c94907e1","outcome":"completed","summary":"Review complete. The findings file is written and no tracked file was changed.\n\n**Outcome.** The Coinbase token's permission model is clean in my area. It has no privileged actor, so there is nothing for the Access Control, Trust Gap or Asymmetry checklists to break. I report one low defect outside my area.\n\n**What I verified**\n- **Access control.** The compiled ABI exposes only the constructor, eight ERC-20 views and the three entry points. There is no owner, minter, pauser, blacklist, initializer, receive or fallback. Each entry point writes only the caller's own balance or allowance row. A scratch test confirmed the factory cannot pull a holder's balance without approval and that tx.origin receives nothing at deployment.\n- **Trust gap.** The deployer has exactly the rights of every other holder. The only trust assumption is outside the token: the factory holds the whole supply after construction and performs the distribution.\n- **Asymmetry.** Finite allowances decrease exactly, the max allowance never decreases, zero-owner transferFrom reverts on both the zero and non-zero value paths, and transfer to the zero address reverts so no burn path exists.\n- **Runtime.** An opcode scan of the deployed bytecode found no CALL, STATICCALL, DELEGATECALL, CALLCODE, CREATE, SELFDESTRUCT or ORIGIN. The vendored OpenZeppelin files are byte-identical to upstream v5.0.2.\n- **Existing checks.** The project's 32 unit, fuzz and invariant tests pass, and `forge fmt --check` is clean.\n\n**Finding (low).** The README tells the verifier to run the shipped integrity check, and it fails: seven forge-std files under lib/ do not match DEPENDENCIES.sha256. I diffed each against the pinned v1.9.7 tag and the differences are whitespace only, so behaviour is unaffected. The fix is to regenerate the hash file or restore the upstream bytes.\n\n**Not reached.** The protected launch harness could not be run here because it imports Uniswap v4 sources absent from this tree. I traced its expectations by reading and see no way a plain fixed-supply ERC-20 fails them. One non-code point for the requester, not recorded as a finding: a mainnet token named \"Coinbase\" with symbol COINBASE carries obvious trademark and impersonation exposure.","treeHash":null,"usage":{"cachedInputTokens":792317,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":17177,"runtime":"claude","turns":27,"wallClockMs":238031}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"e3a598aae0640402","findings":[{"citation":"resolved","description":"DEPENDENCIES.md states the vendored upstream files are unmodified and that DEPENDENCIES.sha256 records each file's hash, and README.md lists `sha256sum --check DEPENDENCIES.sha256` as one of the four verification commands. In the committed tree that command fails for 7 of 36 files, all under lib/forge-std/src/: StdAssertions.sol, StdJson.sol, StdToml.sol, Vm.sol, console.sol, interfaces/IERC7540.sol, interfaces/IMulticall3.sol. The hashes in DEPENDENCIES.sha256 are the hashes of the upstream forge-std v1.9.7 archive files (archive SHA-256 45157353... matches the one recorded in DEPENDENCIES.md), but the committed copies have been reformatted (line-wrapping of long function signatures, as `forge fmt` produces; the differences are whitespace-only when compared token by token). So the integrity claim is false for the tree as committed: either the files must be restored to upstream bytes or the hash file must be regenerated from the tree. All five OpenZeppelin v5.0.2 files, which are the only dependency compiled into the Coinbase token, are byte-identical to upstream and their hashes verify. This does not affect the token's bytecode or any entry point; it only breaks the project's own documented provenance check, which a reviewer relying on it would misread as evidence of tampering.","line":5,"path":"DEPENDENCIES.md","reproduction":"From the repository root run `sha256sum --check DEPENDENCIES.sha256`. Expected (per DEPENDENCIES.md and README.md): every line reports OK and the command exits 0. Actual: 29 lines OK, then `lib/forge-std/src/StdAssertions.sol: FAILED`, `lib/forge-std/src/StdJson.sol: FAILED`, `lib/forge-std/src/StdToml.sol: FAILED`, `lib/forge-std/src/Vm.sol: FAILED`, `lib/forge-std/src/console.sol: FAILED`, `lib/forge-std/src/interfaces/IERC7540.sol: FAILED`, `lib/forge-std/src/interfaces/IMulticall3.sol: FAILED`, `sha256sum: WARNING: 7 computed checksums did NOT match`, exit status 1. Concretely for Vm.sol: `sha256sum lib/forge-std/src/Vm.sol` gives a1b1c82924aecf0f38b53192fd1e801cccc1e1fd2ecd6b2301e4f4c4ab102a15, while DEPENDENCIES.sha256 line 24 records 9068805b59ac1d0ea03a8fa1f15ae49c094e0c6c852a2500e0dd112f264b2cb1, which is the hash of src/Vm.sol inside the upstream v1.9.7 archive (2397 lines upstream vs 2369 lines committed; `diff` shows only re-wrapped signatures). `git status` is clean, so this is the committed state, not a local edit.","severity":"low","snippet":"files and licenses are unmodified; `DEPENDENCIES.sha256` records each file's","title":"Documented dependency integrity check fails: seven vendored forge-std files do not match DEPENDENCIES.sha256 (outside the math area; test-only dependency)"}],"hash":"a02c4eaedf983cb02096b1fe01188a74c6b4c5cd3683473c6a9ba761a57e2ea9","nodeId":"11494c55-485a-4e05-a1f1-94d8f812f7e1","outcome":"completed","summary":"The review is complete and the findings file is written.\n\n**Result for the assigned area (Math Precision, Boundary, Numerical Gap): no defects.** The token at `src/Coinbase.sol` is an unmodified OpenZeppelin v5.0.2 ERC-20 with one compile-time constant and one constructor mint. There is no fixed-point math, division, scale conversion, downcast, signed arithmetic, fee, burn or cap anywhere in the token. I verified the vendored OpenZeppelin files are byte-identical to upstream, then exercised every math boundary with a scratch Foundry suite that has since been removed:\n\n- **Supply constant** evaluates to exactly 1e27 and divides to one billion whole tokens with zero remainder. No runtime path can change it.\n- **transfer** behaves correctly at 0, 1 wei, exact balance, balance plus one, supply plus one, max uint, and self-transfer of the whole supply. Fuzzed sums are conserved. The unchecked balance add in OpenZeppelin cannot wrap because the supply is fixed far below 2^256.\n- **transferFrom and approve** handle max uint as infinite, decrement max minus one, consume an exact allowance to zero, revert atomically when one wei short, need no allowance for zero amounts, and leave the allowance intact when the receiver is the zero address.\n- **Launch flows** move exactly the stated amount, so the protected whole-arrival, seed and swap checks cannot come up short.\n\nThe slither lead was empty. The aderyn lead on the large literal is the compile-time supply constant, confirmed exact on chain.\n\n**One low finding outside my area.** The README and DEPENDENCIES.md tell reviewers to run `sha256sum --check DEPENDENCIES.sha256` as an integrity check and claim the vendored files are unmodified. That check fails on the committed tree for seven forge-std files, which were reformatted relative to the upstream v1.9.7 archive while the hash file still records the upstream hashes. The differences are whitespace only and forge-std is a test-only dependency, so no token bytecode is affected. The fix is to restore the upstream bytes or regenerate the hash file.\n\nThe coverage record has nine rows. All three ABI entry points hold, five invariant rows hold, and the forge-std integrity row points to the finding. The working tree is clean apart from the findings file.","treeHash":null,"usage":{"cachedInputTokens":1056164,"inputTokens":610,"model":"claude-fable-5-1","outputTokens":14272,"runtime":"claude","turns":20,"wallClockMs":246088}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"f9cb4fd544aa3c68","findings":[{"citation":"resolved","description":"README.md line 46 lists `sha256sum --check DEPENDENCIES.sha256` as one of the four build-and-check commands, and DEPENDENCIES.md lines 4-6 state that the vendored upstream files are unmodified and that DEPENDENCIES.sha256 records each file's hash for a local integrity check. On the committed tree (git status clean) the check fails: 29 of 36 entries are OK, and 7 entries under lib/forge-std/src/ report FAILED (StdAssertions.sol, StdJson.sol, StdToml.sol, Vm.sol, console.sol, interfaces/IERC7540.sol, interfaces/IMulticall3.sol). I reproduced this and then diffed each of the seven files against the upstream forge-std v1.9.7 archive (archive SHA-256 45157353ab49eab01d294565866731e599b32401757229689ee459aa26b7ee94, as DEPENDENCIES.md records): the recorded hashes are the upstream file hashes, and the committed copies differ from upstream only in whitespace and line wrapping (removing all spaces, tabs and newlines from both sides gives identical bytes for every one of the seven). All five vendored OpenZeppelin v5.0.2 files that the token actually compiles against are byte-identical to the upstream v5.0.2 archive, so the token's bytecode and accounting are unaffected; forge-std is a test-only dependency and `forge build`, `forge test` (62 passed) and `forge fmt --check` all succeed. The defect is a broken release checklist and a false provenance statement: an operator following the README gets exit status 1 and a tamper warning and cannot tell benign reformatting from a modified test library without redoing this diff. All five specialists reported this same root cause; it is one finding. Fix: either regenerate DEPENDENCIES.sha256 from the tree as committed and amend DEPENDENCIES.md to say the forge-std sources were reformatted with forge fmt, or restore the seven files to their upstream v1.9.7 bytes so the recorded hashes hold.","line":24,"path":"DEPENDENCIES.sha256","reproduction":"State: the committed tree at HEAD 950e512, `git status` clean. Input: from the repository root run `sha256sum --check DEPENDENCIES.sha256`. Expected (README.md:46, DEPENDENCIES.md:4-6): every line reports OK and the command exits 0. Actual: `lib/forge-std/src/StdAssertions.sol: FAILED`, `lib/forge-std/src/StdJson.sol: FAILED`, `lib/forge-std/src/StdToml.sol: FAILED`, `lib/forge-std/src/Vm.sol: FAILED`, `lib/forge-std/src/console.sol: FAILED`, `lib/forge-std/src/interfaces/IERC7540.sol: FAILED`, `lib/forge-std/src/interfaces/IMulticall3.sol: FAILED`, `sha256sum: WARNING: 7 computed checksums did NOT match`, exit status 1. Concretely for line 24: `sha256sum lib/forge-std/src/Vm.sol` prints a1b1c82924aecf0f38b53192fd1e801cccc1e1fd2ecd6b2301e4f4c4ab102a15 while the recorded value 9068805b59ac1d0ea03a8fa1f15ae49c094e0c6c852a2500e0dd112f264b2cb1 is the hash of src/Vm.sol inside the upstream v1.9.7 tarball. Whitespace-only confirmation: `diff <(tr -d ' \\t\\n' < forge-std-1.9.7/src/Vm.sol) <(tr -d ' \\t\\n' < lib/forge-std/src/Vm.sol)` prints nothing, and the same holds for the other six files.","severity":"low","snippet":"9068805b59ac1d0ea03a8fa1f15ae49c094e0c6c852a2500e0dd112f264b2cb1  lib/forge-std/src/Vm.sol","title":"Documented dependency integrity check fails: seven vendored forge-std files do not match DEPENDENCIES.sha256 (merged from audit_economics, audit_permissions, audit_math, audit_flow and write_foundry_t"},{"citation":"resolved","description":"README.md lines 86-87 say the repository 'does not ... provide a launch manifest', and line 85-86 say the separate launch process owns manifest creation. The committed tree contains launch.json at the repository root (added by the accepted manifest step), with kind custom_token, contract Coinbase, constructorArgs [] and totalSupply 1000000000000000000000000000, all of which agree with src/Coinbase.sol. The manifest itself is consistent with the schema rules (lowercase addresses, string uint256 fields, numeric fee/tickSpacing/decimals, no extra keys, notes under 4,000 characters). Only the README sentence is stale. No behavioural impact; a one-line documentation correction.","line":87,"path":"README.md","reproduction":"Input: `ls launch.json` and `sed -n 85,87p README.md` from the repository root. Expected: the README's description of what the repository contains matches the tree. Actual: launch.json exists (1296 bytes, kind custom_token) while README.md:86-87 states the repository does not provide a launch manifest.","severity":"info","snippet":"artifact and does not initiate transactions or provide a launch manifest.","title":"README states the repository provides no launch manifest, but launch.json is committed"}],"hash":"aebb04ce26f6f3aed0ef83463f9fe1b862f4cd865a790a528339b217b35be0ad","nodeId":"4caad4ab-109d-47c5-aba4-7b7de18250e0","outcome":"completed","summary":"The review is complete and the findings file is written. No tracked files were changed.\n\n**Outcome.** The Coinbase token has no code defect. The five specialists all reported the same single issue, which I reproduced and merged into one low finding.\n\n**What I verified**\n- `src/Coinbase.sol` is a 17-line OpenZeppelin v5.0.2 ERC20 with an argument-free constructor minting exactly 10^27 units to msg.sender. The five vendored OpenZeppelin files are byte-identical to the upstream v5.0.2 archive.\n- Build, the 62-test suite, and `forge fmt --check` all pass. The runtime bytecode contains no DELEGATECALL, CALLCODE, SELFDESTRUCT or CALL opcodes, and the sizes are far below the deployment limits.\n- All three entry points (approve, transfer, transferFrom) are stock ERC20 and marked `holds` in the coverage record, plus a row for the constructor and supply invariant.\n- `launch.json` agrees with the contract: empty constructorArgs, supply string, decimals 18, lowercase addresses, no extra keys.\n\n**Findings written to `.imd-findings.json`**\n1. **Low, merged from all five specialists.** `sha256sum --check DEPENDENCIES.sha256` fails for seven forge-std files. I fetched the upstream v1.9.7 archive and confirmed the recorded hashes are upstream's and the committed copies differ only in whitespace. Test-only dependency, no effect on the token. Fix is to regenerate the hash file or restore the upstream bytes.\n2. **Info.** README line 87 says the repository provides no launch manifest, but `launch.json` is committed.\n\nNo critical or high finding exists, so no proof test was needed.","treeHash":null,"usage":{"cachedInputTokens":492242,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":8213,"runtime":"claude","turns":10,"wallClockMs":190855}},{"artifacts":[],"attempt":1,"bundleHash":"3c471817d20c392edbad55d18781b1faadfd384ffbebc2f7e5fea05c7fec2c7f","device":"74a99f640688d37b","findings":[{"description":"README.md tells the operator to run `sha256sum --check DEPENDENCIES.sha256` as part of the build-and-check procedure, and DEPENDENCIES.md states the vendored files are unmodified upstream copies. Seven files under lib/forge-std/src/ do not match the recorded hashes: StdAssertions.sol, StdJson.sol, StdToml.sol, Vm.sol, console.sol, interfaces/IERC7540.sol and interfaces/IMulticall3.sol. Diffing against upstream forge-std v1.9.7 shows the differences are whitespace and line-wrapping only (the files were re-formatted by forge fmt), so the token and its tests are unaffected and the five OpenZeppelin v5.0.2 files are byte-identical to upstream. The defect is that the delivered integrity check does not pass as documented, so an operator following the README gets a failure and cannot distinguish a formatting change from a tampered dependency. Either the hashes should be regenerated from the files as committed, or the files restored to the upstream bytes. The token contract src/Coinbase.sol has no defect: it is a plain fixed-supply OpenZeppelin ERC20 and every adversarial test written for this task passes against it.","line":1,"path":"DEPENDENCIES.sha256","reproduction":"Run `sha256sum --check DEPENDENCIES.sha256` from the repository root. Expected (per README.md): every line reports OK. Actual: `sha256sum: WARNING: 7 computed checksums did NOT match`, listing the seven lib/forge-std/src files above as FAILED.","severity":"info","title":"Documented dependency integrity check fails for the vendored forge-std files"}],"hash":"c8c5dfc47ec54cb8d316a50c2ebd755b13737a5e90dc9ec69be7d11c41a9b794","nodeId":"f5781c03-e70d-431d-ba1b-173c1d0cef43","outcome":"completed","summary":"Done. The full suite passes: 62 tests across 5 files, with no changes outside `test/` other than the findings file the brief asks for.\n\n**What I found about the token.** `src/Coinbase.sol` is a plain OpenZeppelin v5.0.2 fixed-supply ERC-20 and has no defect. I confirmed the five vendored OpenZeppelin files are byte-identical to upstream, so nothing is hidden in the library. The constructor mints exactly 10^27 units once to its immediate deployer, there are no admin entry points, and the runtime has no DELEGATECALL, CALLCODE, SELFDESTRUCT, CREATE or CREATE2.\n\n**What I added**, building on the existing unit and invariant files rather than rewriting them:\n\n- `test/Coinbase.launch.t.sol` mirrors the protected launch floor without the Uniswap v4 stack. It deploys through raw CREATE2 with the attested creation code and checks address prediction, the single mint event, the full swarm, pool and remainder flows arriving whole, 20 uneven claims draining the distributor to exact dust, pool-manager settle and take, CREATE2 salt collision, independent supplies across deployments, ether rejection, unknown selectors, stuck tokens at the token address, and the protected harness's complete lists of 10 supply-growing and 12 holder-freezing signatures from both a stranger and the factory.\n- `test/Coinbase.fuzz.t.sol` has 13 property tests at 1000 runs each over arbitrary accounts: three-party conservation, round trips, exactly one Transfer event per transfer, split sums, and failure paths with exact custom errors for zero receiver, zero spender, strangers pulling without approval, over-allowance and over-balance pulls, the unlimited-allowance boundary, random unknown selectors, and ether.\n- `test/Coinbase.adversarial.invariant.t.sol` is a second invariant suite at 256 runs by depth 64 with an open cast: the deployer, the token address as a sink, five funded holders, two strangers and newcomers who join mid-sequence. Fourteen handler actions include ten that must be refused, asserted with their exact revert data at the point of call so `fail_on_revert` stays meaningful. Invariants hold supply fixed, balances and allowances equal to the ghost model, the cast summing to the supply, and no ether at the token.\n\n**Grounding.** I ran all three new files against a mutant with a 1% transfer fee and a deployer-only mint. Seven launch tests, ten fuzz tests and all four invariants failed on the mutant, so none of the properties are vacuous.\n\n**One finding, severity info**, written to `.imd-findings.json`. The README's documented integrity check fails: seven forge-std files no longer match `DEPENDENCIES.sha256` because they were reformatted. The differences are whitespace only and do not affect the token, but an operator following the README gets a failure.\n\nI did not commit; the working tree holds the three new test files and the findings file.","treeHash":"83c5389984832c5310d95c66948a6f4fbbb1982c","usage":{"cachedInputTokens":1087397,"inputTokens":450,"model":"claude-fable-5-1","outputTokens":38291,"runtime":"claude","turns":30,"wallClockMs":553726}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"e06554fd2816f9d7","findings":[{"citation":"resolved","description":"The README lists `sha256sum --check DEPENDENCIES.sha256` as one of the four build-and-check commands, and DEPENDENCIES.md (line 5) states that the vendored upstream files are unmodified and that DEPENDENCIES.sha256 records each file's hash. Neither is true of the committed tree. DEPENDENCIES.sha256 records the hashes of the pristine upstream forge-std v1.9.7 files (for example Vm.sol = 9068805b...2cb1, which is the hash of the file inside the upstream tarball 45157353...ee94), but seven files under lib/forge-std/src/ were re-formatted after vendoring (forge fmt style: wrapped signatures joined or split, assembly re-indented), so their on-disk hashes differ: StdAssertions.sol, StdJson.sol, StdToml.sol, Vm.sol, console.sol, interfaces/IERC7540.sol, interfaces/IMulticall3.sol. I diffed every one of the seven against the upstream tarball: the changes are whitespace and line-wrapping only, with no change to any token, assertion, cheatcode or interface semantics, so the test suite's assertions are genuine. All six vendored OpenZeppelin v5.0.2 files are byte-identical to upstream. Impact is confined to the project's own release checklist: the integrity step the author tells the launch operator to run fails on the shipped tree, and the 'unmodified' provenance claim in DEPENDENCIES.md is false for a test-only dependency. Fix: either regenerate DEPENDENCIES.sha256 from the tree as committed (`sha256sum lib/... > DEPENDENCIES.sha256`) and amend DEPENDENCIES.md to say forge-std was reformatted, or restore the seven files from the v1.9.7 archive so the recorded upstream hashes hold. The token contract and its OpenZeppelin base are unaffected.","line":46,"path":"README.md","reproduction":"State: the committed tree at HEAD e751caa (git status clean, `git diff HEAD -- lib` empty). Input: run from the repository root the README's own command `sha256sum --check DEPENDENCIES.sha256`. Expected (per README.md:40-47 and DEPENDENCIES.md:4-6): every line reports OK and the command exits 0. Actual: exit status 1 with `sha256sum: WARNING: 7 computed checksums did NOT match`, the FAILED lines being lib/forge-std/src/StdAssertions.sol, StdJson.sol, StdToml.sol, Vm.sol, console.sol, interfaces/IERC7540.sol and interfaces/IMulticall3.sol. Cross-check: `curl -sSL https://codeload.github.com/foundry-rs/forge-std/tar.gz/refs/tags/v1.9.7` has SHA-256 45157353ab49eab01d294565866731e599b32401757229689ee459aa26b7ee94 as DEPENDENCIES.md states; `sha256sum forge-std-1.9.7/src/Vm.sol` from that archive gives 9068805b59ac1d0ea03a8fa1f15ae49c094e0c6c852a2500e0dd112f264b2cb1, the value DEPENDENCIES.sha256 line for Vm.sol records, while `sha256sum lib/forge-std/src/Vm.sol` in the tree gives a1b1c82924aecf0f38b53192fd1e801cccc1e1fd2ecd6b2301e4f4c4ab102a15. `diff -u` of each of the seven pairs shows only whitespace/line-wrapping changes (e.g. StdAssertions.sol lines 480-483 joined onto one line; console.sol lines 5-6 joined, 12-22 collapsed to one `pop(staticcall(...))` line).","severity":"low","snippet":"sha256sum --check DEPENDENCIES.sha256","title":"Documented dependency integrity check fails: DEPENDENCIES.sha256 does not match seven vendored forge-std files"}],"hash":"f7827a5916207645c2836659bfe4efe271f67176d505f199699984b1b2817dde","nodeId":"f3ab7d66-e604-44f1-a307-32165ca3ef2a","outcome":"completed","summary":"The review is complete and the findings file is written. Nothing else is pending.\n\n**Outcome.** The Coinbase token is a plain 17-line OpenZeppelin ERC-20 with no admin surface, and all three state-changing entry points hold. I found one low-severity defect, outside the token code itself, in the project's release checklist.\n\n**What I checked, by area**\n\n- **Execution Trace.** Traced approve, transfer and transferFrom through the vendored ERC-20 base to every revert path and storage write. Zero-address checks, atomic rollback on insufficient balance or allowance, unlimited-allowance handling and self-transfer all behave as the README states. Launch flows move exact amounts, so the factory, distributor and PoolManager transfers arrive whole.\n- **Periphery.** Downloaded the upstream OpenZeppelin v5.0.2 and forge-std v1.9.7 archives into a scratch directory outside the repo. The archive hashes match the dependency notes. All six OpenZeppelin files are byte-identical to upstream. Seven forge-std files differ from upstream in whitespace only, which I confirmed by diffing each one.\n- **First Principles.** The constructor mints exactly 10^27 units to the immediate deployer, which the launch harness requires to be the factory. The compiled ABI exposes only the three listed functions plus views and events. No receive, fallback, mint, burn, pause, blacklist or owner path exists. The existing suite of 32 unit, fuzz and invariant tests passes, and the format check passes.\n\n**The one finding (low).** The README tells the launch operator to run the dependency integrity check, and the dependency notes claim the vendored files are unmodified. Running that command on the committed tree fails with seven mismatches, because the recorded hashes describe the pristine upstream forge-std files while the vendored copies were reformatted. The reproduction and the exact command, hashes and file list are in the finding. The fix is to regenerate the checksum file from the committed tree or restore the seven files from the upstream archive.\n\n**Leads I dismissed.** Aderyn's large-literal lead at the supply constant is correct arithmetic and already asserted by a test. The slither run reported nothing.\n\n**Coverage.** Seven rows: all three entry points and the constructor hold, the fixed-supply and no-privileged-path invariant holds, the OpenZeppelin periphery holds, and the forge-std periphery row points at the finding. No files were changed other than `.imd-findings.json`, and the scratch download was removed.","treeHash":null,"usage":{"cachedInputTokens":641754,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":13284,"runtime":"claude","turns":26,"wallClockMs":188474}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"d7e6877fd9e388bb","findings":[{"citation":"resolved","description":"README.md line 46 lists `sha256sum --check DEPENDENCIES.sha256` as a build-and-check step and DEPENDENCIES.md lines 4-6 state that the vendored upstream files are unmodified and that DEPENDENCIES.sha256 records each file's hash for a local integrity check. The check fails on the tree as committed: 7 of 36 entries mismatch, all under lib/forge-std/src (StdAssertions.sol, StdJson.sol, StdToml.sol, Vm.sol, console.sol, interfaces/IERC7540.sol, interfaces/IMulticall3.sol). The recorded hashes are the upstream forge-std v1.9.7 hashes (verified by fetching the tagged files); the vendored copies were reformatted (forge fmt style line wrapping) and differ from upstream only in whitespace, so the DEPENDENCIES.md claim that they are unmodified is also inaccurate. All 29 other entries, including every OpenZeppelin v5.0.2 file the token inherits (ERC20.sol, IERC20.sol, IERC20Metadata.sol, Context.sol, draft-IERC6093.sol), match both the recorded hash and upstream byte for byte, so the token's production accounting is unaffected. Impact: a reviewer or launch operator following the README gets a failed integrity check and cannot distinguish this benign reformatting from a tampered test library without re-deriving the diff themselves; the documented provenance guarantee is not delivered. No funds are at risk and the token bytecode is unaffected. Fix: either restore the upstream v1.9.7 bytes for those 7 files, or regenerate DEPENDENCIES.sha256 from the tree and amend DEPENDENCIES.md to say the forge-std files were reformatted.","line":24,"path":"DEPENDENCIES.sha256","reproduction":"From the repository root run `sha256sum --check DEPENDENCIES.sha256`. Expected (per README.md line 46 and DEPENDENCIES.md lines 4-6): every line reports OK and exit status 0. Actual: `lib/forge-std/src/StdAssertions.sol: FAILED`, `lib/forge-std/src/StdJson.sol: FAILED`, `lib/forge-std/src/StdToml.sol: FAILED`, `lib/forge-std/src/Vm.sol: FAILED`, `lib/forge-std/src/console.sol: FAILED`, `lib/forge-std/src/interfaces/IERC7540.sol: FAILED`, `lib/forge-std/src/interfaces/IMulticall3.sol: FAILED`, `sha256sum: WARNING: 7 computed checksums did NOT match`, exit status 1. Concretely for line 24: `sha256sum lib/forge-std/src/Vm.sol` prints a1b1c82924aecf0f... while the recorded value is 9068805b59ac1d0e... (which is the hash of upstream forge-std v1.9.7 src/Vm.sol). Stripping whitespace from both files makes them identical, confirming formatting-only drift.","severity":"low","snippet":"9068805b59ac1d0ea03a8fa1f15ae49c094e0c6c852a2500e0dd112f264b2cb1  lib/forge-std/src/Vm.sol","title":"Documented dependency integrity check fails: DEPENDENCIES.sha256 does not match 7 vendored forge-std files"}],"hash":"fc10278c8b5fa29b6a0dd100c72bb9f79f56c2c2be3b32969783026f174a964d","nodeId":"0a4abd31-2b5f-41ce-bea1-9f67341bb6a3","outcome":"completed","summary":"The review is complete and the findings file is written. No source file was changed.\n\n**Outcome.** The token's economics hold. One low-severity defect is reported, outside the economic area.\n\n**What was checked, in the assigned area:**\n- The token is a bare OpenZeppelin v5.0.2 ERC20 with a single constructor mint of 10^27 units to the deployer. I fetched the tagged upstream files and confirmed every vendored OpenZeppelin file the token inherits is byte-identical.\n- Economic Security: there are no external dependencies, oracles, fee or tax formulas, callbacks, or sentinel-address branches, so none of the guide's extraction or dependency-failure modes have a surface.\n- Invariants: balance conservation, fixed supply, and holder-only balance mutation hold. The only writer of total supply is the constructor, and the ABI exposes only approve, transfer and transferFrom as state changers.\n- Flow Gap: I modelled the launch flows in a scratch test under test/scratch (10% to the distributor, 88% to the pool, 2% remainder, a full claim, and pool-style pulls with finite and unlimited allowances). Every flow arrives whole, the basis-point split leaves no dust, and the 88% share fits Uniswap v4's int128 deltas. The existing 32-test suite and the 128-run invariant suite also pass.\n\n**Finding reported (low):** the integrity check the README instructs, `sha256sum --check DEPENDENCIES.sha256`, fails on 7 forge-std files. The recorded hashes are upstream v1.9.7's, but the vendored copies were reformatted, so the \"unmodified\" claim in DEPENDENCIES.md is inaccurate. The differences are whitespace only, forge-std is test-only, and token bytecode is unaffected.\n\n**Coverage:** all three listed entry points are recorded as holds, with six additional invariant and launch-flow rows. One limit is stated in the record: the protected Uniswap v4 harness could not run here because v4-core and the launch liquidity library are not in this tree, so pool behaviour was verified by hook absence and numeric bounds rather than by executing a seed and swap.","treeHash":null,"usage":{"cachedInputTokens":637769,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":14613,"runtime":"claude","turns":26,"wallClockMs":213361}}],"verification":[{"checks":[{"durationMs":1301,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.18s\nCompiler run successful!\n","passed":true},{"durationMs":2784,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 31 tests for test/Coinbase.t.sol:CoinbaseTest\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 512, μ: 93138, ~: 93440)\nLogs:\n  Bound result 2446\n\n[PASS] testFuzz_transferFromAccounting(uint256,uint256) (runs: 512, μ: 162438, ~: 164803)\nLogs:\n  Bound result 24692\n  Bound result 1922\n\n[PASS] testFuzz_transferFromOverAllowanceIsAtomic(uint256) (runs: 512, μ: 119332, ~: 119482)\nLogs:\n  Bound result 631372466744852046767515952\n\n[PASS] testFuzz_transferOverBalanceIsAtomic(uint256,uint256) (runs: 512, μ: 126890, ~: 127214)\nLogs:\n  Bound result 18287\n  Bound result 105151829\n\n[PASS] test_anotherSpenderCannotUseApproval() (gas: 105238)\n[PASS] test_approveDoesNotRequireBalance() (gas: 78616)\n[PASS] test_approveEmitsEventAndCanBeReplacedAndRevoked() (gas: 157885)\n[PASS] test_approveZeroSpenderReverts() (gas: 61952)\n[PASS] test_constructorEmitsMintTransfer() (gas: 11431)\n[PASS] test_constructorMintsToImmediateDeployer() (gas: 32780)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 158046)\n[PASS] test_factoryDeploymentAndLaunchTransfersArriveWhole() (gas: 684720)\n[PASS] test_metadataAndInitialSupply() (gas: 107523)\n[PASS] test_noMintBurnOrAdministrativeEntrypoints() (gas: 1089540)\n[PASS] test_runtimeHasNoPrivilegedOpcodes() (gas: 2259434)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 53925)\n[PASS] test_transferEmitsEventAndMovesExactAmount() (gas: 91483)\n[PASS] test_transferEntireSupply() (gas: 86061)\n[PASS] test_transferFromAfterRevocationReverts() (gas: 129925)\n[PASS] test_transferFromExhaustsAllowanceAndCannotSpendAgain() (gas: 161633)\n[PASS] test_transferFromInsufficientBalanceRollsBackAllowance() (gas: 126245)\n[PASS] test_transferFromSelfConsumesAllowanceWithoutMovingBalance() (gas: 107699)\n[PASS] test_transferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 162334)\n[PASS] test_transferFromToZeroRollsBackAllowance() (gas: 114154)\n[PASS] test_transferFromUnlimitedAllowanceIsNotDecremented() (gas: 183029)\n[PASS] test_transferFromZeroAmountNeedsNoAllowance() (gas: 78772)\n[PASS] test_transferFromZeroSenderReverts() (gas: 35385)\n[PASS] test_transferMaximumUintRevertsWithoutChangingState() (gas: 55022)\n[PASS] test_transferToZeroRevertsEvenForZeroAmount() (gas: 71904)\n[PASS] test_transferWithoutBalanceReverts() (gas: 57373)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 63047)\nSuite result: ok. 31 passed; 0 failed; 0 skipped; finished in 20.02ms (88.19ms CPU time)\n\nRan 1 test for test/Coinbase.invariant.t.sol:CoinbaseInvariantTest\n[PASS]\nCoinbaseInvariantTest invariants:\n[PASS] invariant_allowancesMatchApprovalsAndSpending\n[PASS] invariant_supplyAndBalancesAreConserved\n CoinbaseInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭-----------------+--------------+-------+---------+----------╮\n| Contract        | Selector     | Calls | Reverts | Discards |\n+=============================================================+\n| CoinbaseHandler | approve      | 2736  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbaseHandler | transfer     | 2711  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbaseHandler | transferFrom | 2745  | 0       | 0        |\n╰-----------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 133605612161717917480742153\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 2563\n  Bound result 6\n  Bound result 5750\n  Bound result 0\n  Bound result 0\n  Bound result 7\n  Bound result 4000000000000000000\n  Bound result 12772\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 221427752505559821476549345\n  Bound result 2105397860521368425465448\n  Bound result 30000000000000000000\n  Bound result 9\n  Bound result 3\n  Bound result 5577\n  Bound result 487686701141822314475419770\n  Bound result 5\n  Bound result 324355719312316192008385620\n  Bound result 88\n  Bound result 133\n  Bound result 0\n  Bound result 30000000000000000000\n  Bound result 1983\n  Bound result 0\n  Bound result 13466421031525711987421702\n  Bound result 251426646053880980165349603\n  Bound result 7\n  Bound result 0\n  Bound result 5671\n  Bound result 5972\n  Bound result 0\n  Bound result 117906\n  Bound result 255\n  Bound result 2\n  Bound result 10\n  Bound result 1000000000\n  Bound result 763600052\n  Bound result 110\n  Bound result 18\n  Bound result 6067\n  Bound result 5970\n  Bound result 3770\n  Bound result 6000000000000000000\n  Bound result 177362148\n  Bound result 28531715540902696018448188\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 918\n  Bound result 255\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.68s (2.68s CPU time)\n\nRan 2 test suites in 2.68s (2.70s CPU time): 32 tests passed, 0 failed, 0 skipped (32 total tests)\n","passed":true},{"durationMs":55,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Coinbase.approve(address,uint256)\",\"Coinbase.transfer(address,uint256)\",\"Coinbase.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":22,\"DEPENDENCIES.sha256\":36,\"README.md\":124,\"foundry.toml\":18,\"launch.json\":24,\"remappings.txt\":2,\"src/Coinbase.sol\":17,\"test/Coinbase.invariant.t.sol\":101,\"test/Coinbase.t.sol\":391},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"00d8d533d7f34b09cd00e0c3b47397cec83cdc54e709c771628fbbcdf0db715f","verifiedTreeHash":"0d1e61f3ebcfc53dc0fa252dc28c06c2e73b69da","verifierVersion":"0.1.0+327e1e9f"},{"checks":[{"durationMs":1129,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.02s\nCompiler run successful!\n","passed":true},{"durationMs":2410,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 31 tests for test/Coinbase.t.sol:CoinbaseTest\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 512, μ: 92874, ~: 93176)\nLogs:\n  Bound result 149471540927100702044170192\n\n[PASS] testFuzz_transferFromAccounting(uint256,uint256) (runs: 512, μ: 162438, ~: 164851)\nLogs:\n  Bound result 323239349965332628991768818\n  Bound result 390077524907\n\n[PASS] testFuzz_transferFromOverAllowanceIsAtomic(uint256) (runs: 512, μ: 119036, ~: 119482)\nLogs:\n  Bound result 2\n\n[PASS] testFuzz_transferOverBalanceIsAtomic(uint256,uint256) (runs: 512, μ: 126726, ~: 127292)\nLogs:\n  Bound result 28053080458800004849864381\n  Bound result 270414360416213802252546873307579158536733549273\n\n[PASS] test_anotherSpenderCannotUseApproval() (gas: 105238)\n[PASS] test_approveDoesNotRequireBalance() (gas: 78616)\n[PASS] test_approveEmitsEventAndCanBeReplacedAndRevoked() (gas: 157885)\n[PASS] test_approveZeroSpenderReverts() (gas: 61952)\n[PASS] test_constructorEmitsMintTransfer() (gas: 11431)\n[PASS] test_constructorMintsToImmediateDeployer() (gas: 32780)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 158046)\n[PASS] test_factoryDeploymentAndLaunchTransfersArriveWhole() (gas: 684720)\n[PASS] test_metadataAndInitialSupply() (gas: 107523)\n[PASS] test_noMintBurnOrAdministrativeEntrypoints() (gas: 1089540)\n[PASS] test_runtimeHasNoPrivilegedOpcodes() (gas: 2259434)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 53925)\n[PASS] test_transferEmitsEventAndMovesExactAmount() (gas: 91483)\n[PASS] test_transferEntireSupply() (gas: 86061)\n[PASS] test_transferFromAfterRevocationReverts() (gas: 129925)\n[PASS] test_transferFromExhaustsAllowanceAndCannotSpendAgain() (gas: 161633)\n[PASS] test_transferFromInsufficientBalanceRollsBackAllowance() (gas: 126245)\n[PASS] test_transferFromSelfConsumesAllowanceWithoutMovingBalance() (gas: 107699)\n[PASS] test_transferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 162334)\n[PASS] test_transferFromToZeroRollsBackAllowance() (gas: 114154)\n[PASS] test_transferFromUnlimitedAllowanceIsNotDecremented() (gas: 183029)\n[PASS] test_transferFromZeroAmountNeedsNoAllowance() (gas: 78772)\n[PASS] test_transferFromZeroSenderReverts() (gas: 35385)\n[PASS] test_transferMaximumUintRevertsWithoutChangingState() (gas: 55022)\n[PASS] test_transferToZeroRevertsEvenForZeroAmount() (gas: 71904)\n[PASS] test_transferWithoutBalanceReverts() (gas: 57373)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 63047)\nSuite result: ok. 31 passed; 0 failed; 0 skipped; finished in 19.12ms (78.36ms CPU time)\n\nRan 1 test for test/Coinbase.invariant.t.sol:CoinbaseInvariantTest\n[PASS]\nCoinbaseInvariantTest invariants:\n[PASS] invariant_allowancesMatchApprovalsAndSpending\n[PASS] invariant_supplyAndBalancesAreConserved\n CoinbaseInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭-----------------+--------------+-------+---------+----------╮\n| Contract        | Selector     | Calls | Reverts | Discards |\n+=============================================================+\n| CoinbaseHandler | approve      | 2708  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbaseHandler | transfer     | 2795  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbaseHandler | transferFrom | 2689  | 0       | 0        |\n╰-----------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 4089\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 12\n  Bound result 1719639409\n  Bound result 0\n  Bound result 169446152821717099096754538\n  Bound result 4\n  Bound result 0\n  Bound result 20000000000000000000\n  Bound result 5356\n  Bound result 3\n  Bound result 7\n  Bound result 0\n  Bound result 0\n  Bound result 228\n  Bound result 255\n  Bound result 0\n  Bound result 5\n  Bound result 0\n  Bound result 0\n  Bound result 249999980000000000000005352\n  Bound result 79999999999999978584\n  Bound result 11\n  Bound result 0\n  Bound result 26\n  Bound result 3\n  Bound result 5000000000000000000\n  Bound result 12\n  Bound result 4\n  Bound result 250000004999999999999999999\n  Bound result 1201\n  Bound result 6\n  Bound result 3\n  Bound result 0\n  Bound result 2106\n  Bound result 760988992758871596499508513\n  Bound result 345\n  Bound result 1000000000\n  Bound result 1\n  Bound result 11\n  Bound result 255\n  Bound result 242\n  Bound result 4803\n  Bound result 0\n  Bound result 249999999999999999999999995\n  Bound result 4000000000000000000\n  Bound result 0\n  Bound result 493\n  Bound result 250512198908313535624902332\n  Bound result 7\n  Bound result 2733\n  Bound result 1\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.32s (2.32s CPU time)\n\nRan 2 test suites in 2.32s (2.34s CPU time): 32 tests passed, 0 failed, 0 skipped (32 total tests)\n","passed":true},{"durationMs":34,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Coinbase.approve(address,uint256)\",\"Coinbase.transfer(address,uint256)\",\"Coinbase.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":22,\"DEPENDENCIES.sha256\":36,\"README.md\":124,\"foundry.toml\":18,\"remappings.txt\":2,\"src/Coinbase.sol\":17,\"test/Coinbase.invariant.t.sol\":101,\"test/Coinbase.t.sol\":391},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":409,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":125,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/Coinbase.sol:10: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"32d33a5ba52d27e276f0dbd4920777d0cb854614a18f34d715910078fa933912","verifiedTreeHash":"faf65f3527bd03ae612eadb6db72cc161d01ecc1","verifierVersion":"0.1.0+327e1e9f"},{"checks":[{"durationMs":2271,"exitCode":0,"name":"build","output":"Compiling 30 files with Solc 0.8.26\nSolc 0.8.26 finished in 2.15s\nCompiler run successful!\n","passed":true},{"durationMs":23075,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 31 tests for test/Coinbase.t.sol:CoinbaseTest\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 512, μ: 92622, ~: 93116)\nLogs:\n  Bound result 426249737884166200944966541\n\n[PASS] testFuzz_transferFromAccounting(uint256,uint256) (runs: 512, μ: 163845, ~: 164835)\nLogs:\n  Bound result 5\n  Bound result 5\n\n[PASS] testFuzz_transferFromOverAllowanceIsAtomic(uint256) (runs: 512, μ: 119346, ~: 119506)\nLogs:\n  Bound result 386613879785081306402095365\n\n[PASS] testFuzz_transferOverBalanceIsAtomic(uint256,uint256) (runs: 512, μ: 127188, ~: 127262)\nLogs:\n  Bound result 26009863075411904688135197\n  Bound result 2\n\n[PASS] test_anotherSpenderCannotUseApproval() (gas: 105238)\n[PASS] test_approveDoesNotRequireBalance() (gas: 78616)\n[PASS] test_approveEmitsEventAndCanBeReplacedAndRevoked() (gas: 157885)\n[PASS] test_approveZeroSpenderReverts() (gas: 61952)\n[PASS] test_constructorEmitsMintTransfer() (gas: 11431)\n[PASS] test_constructorMintsToImmediateDeployer() (gas: 32780)\n[PASS] test_deployerCannotSpendHolderBalanceWithoutApproval() (gas: 158046)\n[PASS] test_factoryDeploymentAndLaunchTransfersArriveWhole() (gas: 684720)\n[PASS] test_metadataAndInitialSupply() (gas: 107523)\n[PASS] test_noMintBurnOrAdministrativeEntrypoints() (gas: 1089540)\n[PASS] test_runtimeHasNoPrivilegedOpcodes() (gas: 2259434)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 53925)\n[PASS] test_transferEmitsEventAndMovesExactAmount() (gas: 91483)\n[PASS] test_transferEntireSupply() (gas: 86061)\n[PASS] test_transferFromAfterRevocationReverts() (gas: 129925)\n[PASS] test_transferFromExhaustsAllowanceAndCannotSpendAgain() (gas: 161633)\n[PASS] test_transferFromInsufficientBalanceRollsBackAllowance() (gas: 126245)\n[PASS] test_transferFromSelfConsumesAllowanceWithoutMovingBalance() (gas: 107699)\n[PASS] test_transferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 162334)\n[PASS] test_transferFromToZeroRollsBackAllowance() (gas: 114154)\n[PASS] test_transferFromUnlimitedAllowanceIsNotDecremented() (gas: 183029)\n[PASS] test_transferFromZeroAmountNeedsNoAllowance() (gas: 78772)\n[PASS] test_transferFromZeroSenderReverts() (gas: 35385)\n[PASS] test_transferMaximumUintRevertsWithoutChangingState() (gas: 55022)\n[PASS] test_transferToZeroRevertsEvenForZeroAmount() (gas: 71904)\n[PASS] test_transferWithoutBalanceReverts() (gas: 57373)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 63047)\nSuite result: ok. 31 passed; 0 failed; 0 skipped; finished in 148.03ms (297.75ms CPU time)\n\nRan 16 tests for test/Coinbase.launch.t.sol:CoinbaseLaunchTest\n[PASS] test_constructorEmitsExactlyOneMintAndNothingElse() (gas: 557293)\n[PASS] test_create2AddressIsPredictableFromCreationCodeAlone() (gas: 10132)\n[PASS] test_creationCodeWithAppendedArgumentsStillMintsToDeployer() (gas: 576409)\n[PASS] test_decimalsAndMetadataAreFixed() (gas: 54804)\n[PASS] test_manyClaimsDrainTheDistributorExactly() (gas: 1390474)\n[PASS] test_mintsTheWholeSupplyToTheFactoryOnly() (gas: 75720)\n[PASS] test_noCommonAdminCallIncreasesSupply() (gas: 1011922)\n[PASS] test_noPrivilegedHandMovesOrFreezesAHolder() (gas: 990911)\n[PASS] test_poolManagerSettleAndTakeMoveExactAmounts() (gas: 550244)\n[PASS] test_rejectsEtherAndUnknownCalls() (gas: 129204)\n[PASS] test_remainderRecipientReceivesExactlyTheRest() (gas: 271207)\n[PASS] test_runtimeFitsEip170AndHasNoPrivilegedOpcodes() (gas: 3601220)\n[PASS] test_sameSaltCannotBeDeployedTwice() (gas: 1040514694)\n[PASS] test_separateDeploymentsHaveIndependentSupplies() (gas: 663474)\n[PASS] test_theSwarmShareArrivesWholeAndIsClaimableWhole() (gas: 153085)\n[PASS] test_tokensSentToTheTokenItselfCannotBeRescuedByAnyone() (gas: 175682)\nSuite result: ok. 16 passed; 0 failed; 0 skipped; finished in 148.07ms (17.70ms CPU time)\n\nRan 13 tests for test/Coinbase.fuzz.t.sol:CoinbaseFuzzTest\n[PASS] testFuzz_allowanceDoesNotCoverMoreThanTheBalance(uint256,uint256) (runs: 1000, μ: 180517, ~: 181115)\nLogs:\n  Bound result 1308162607153348783\n  Bound result 6162998458524057125162362906535373601371358179\n\n[PASS] testFuzz_anyDeployerReceivesTheWholeSupply(address) (runs: 1000, μ: 32240, ~: 32236)\n[PASS] testFuzz_approveAndSpendByArbitrarySpender(address,address,address,uint256,uint256,uint256) (runs: 1000, μ: 290002, ~: 293813)\nLogs:\n  Bound result 20000000000000000000000000\n  Bound result 245\n  Bound result 9\n\n[PASS] testFuzz_approveZeroSpenderAlwaysReverts(address,uint256) (runs: 1000, μ: 38366, ~: 38319)\n[PASS] testFuzz_etherIsAlwaysRejected(uint256,bytes) (runs: 1000, μ: 42508, ~: 42459)\nLogs:\n  Bound result 751139054512506617549\n\n[PASS] testFuzz_onlyExactMaxAllowanceIsUnlimited(uint256,uint256) (runs: 1000, μ: 227111, ~: 227091)\nLogs:\n  Bound result 452647802140961725772983091367897219449744755402585331984090\n  Bound result 25779025276236388610405747\n\n[PASS] testFuzz_roundTripRestoresBalances(address,address,uint256,uint256) (runs: 1000, μ: 180803, ~: 182128)\nLogs:\n  Bound result 255\n  Bound result 0\n\n[PASS] testFuzz_splitAcrossManyRecipientsSumsExactly(uint256,uint8) (runs: 1000, μ: 953628, ~: 649452)\nLogs:\n  Bound result 1\n  Bound result 682565676064704465470208720\n\n[PASS] testFuzz_strangerCannotSpendAnyoneWithoutApproval(address,address,uint256) (runs: 1000, μ: 173370, ~: 173486)\nLogs:\n  Bound result 766996417073496942060593962\n\n[PASS] testFuzz_threePartyConservation(address,address,uint256,uint256) (runs: 1000, μ: 182006, ~: 183685)\nLogs:\n  Bound result 244\n  Bound result 136\n\n[PASS] testFuzz_transferEmitsExactlyOneTransferEvent(address,uint256) (runs: 1000, μ: 69544, ~: 69936)\nLogs:\n  Bound result 3224\n\n[PASS] testFuzz_transferToZeroAlwaysReverts(address,uint256,uint256) (runs: 1000, μ: 114089, ~: 114406)\nLogs:\n  Bound result 42000000000000000000\n\n[PASS] testFuzz_unknownSelectorsRevertAndChangeNothing(bytes4,bytes,address) (runs: 1000, μ: 111777, ~: 111587)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 148.23ms (1.73s CPU time)\n\nRan 1 test for test/Coinbase.invariant.t.sol:CoinbaseInvariantTest\n[PASS]\nCoinbaseInvariantTest invariants:\n[PASS] invariant_allowancesMatchApprovalsAndSpending\n[PASS] invariant_supplyAndBalancesAreConserved\n CoinbaseInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭-----------------+--------------+-------+---------+----------╮\n| Contract        | Selector     | Calls | Reverts | Discards |\n+=============================================================+\n| CoinbaseHandler | approve      | 2730  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbaseHandler | transfer     | 2770  | 0       | 0        |\n|-----------------+--------------+-------+---------+----------|\n| CoinbaseHandler | transferFrom | 2692  | 0       | 0        |\n╰-----------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 29448732130633381804159117\n  Bound result 100000000000000000000000000\n  Bound result 100\n  Bound result 1761649582\n  Bound result 1000000000000000000\n  Bound result 5911\n  Bound result 42000000000000000000\n  Bound result 3735928559\n  Bound result 56\n  Bound result 173404072699690893247738573\n  Bound result 289\n  Bound result 0\n  Bound result 4956\n  Bound result 4281\n  Bound result 20000000\n  Bound result 12\n  Bound result 1938\n  Bound result 2021\n  Bound result 38281281151112223185\n  Bound result 836\n  Bound result 1000\n  Bound result 3714247997\n  Bound result 91941355100977523190113941\n  Bound result 0\n  Bound result 662\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 88\n  Bound result 338\n  Bound result 16058979845144669094980673\n  Bound result 0\n  Bound result 0\n  Bound result 100000000\n  Bound result 5632\n  Bound result 244\n  Bound result 0\n  Bound result 1\n  Bound result 3782\n  Bound result 4096\n  Bound result 100000000000000000000000000\n  Bound result 131564\n  Bound result 1000000000000000000\n  Bound result 100000000000000000000000000\n  Bound result 439463051544835566037104967\n  Bound result 3\n  Bound result 690170551293625149454444669\n  Bound result 2679\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1725540769\n  Bound result 0\n  Bound result 173191039939364\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.48s (2.48s CPU time)\n\nRan 1 test for test/Coinbase.adversarial.invariant.t.sol:CoinbaseAdversarialInvariantTest\n[PASS]\nCoinbaseAdversarialInvariantTest invariants:\n[PASS] invariant_allowancesMatchTheModel\n[PASS] invariant_balancesMatchTheModelAndSumToSupply\n[PASS] invariant_supplyIsFixed\n[PASS] invariant_tokenHoldsNoEtherAndNothingLeavesItsOwnBalanceUnasked\n CoinbaseAdversarialInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------------------------+------------------------------+-------+---------+----------╮\n| Contract                   | Selector                     | Calls | Reverts | Discards |\n+========================================================================================+\n| CoinbaseAdversarialHandler | approve                      | 1200  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | approveZeroSpender           | 1204  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | deployerPullsWithoutApproval | 1219  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | privilegedCall               | 1149  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | sendEther                    | 1090  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | strangerPullsWithoutApproval | 1194  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | strangerSpendsNothing        | 1127  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | transfer                     | 1198  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | transferFrom                 | 1156  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | transferFromOverAllowance    | 1158  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | transferFromOverBalance      | 1180  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | transferOverBalance          | 1168  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | transferToNewcomer           | 1190  | 0       | 0        |\n|----------------------------+------------------------------+-------+---------+----------|\n| CoinbaseAdversarialHandler | transferToZero               | 1151  | 0       | 0        |\n╰----------------------------+------------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 240\n  Bound result 11\n  Bound result 664\n  Bound result 6000000000000000000\n  Bound result 4288775753\n  Bound result 86863523773954249005\n  Bound result 127\n  Bound result 100000000000000000000\n  Bound result 0\n  Bound result 356\n  Bound result 340282366920938463463374607431768211455\n  Bound result 3735928559\n  Bound result 1098\n  Bound result 673\n  Bound result 1000000000\n  Bound result 3310\n  Bound result 3\n  Bound result 1469\n  Bound result 92691036148375976223\n  Bound result 27\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639935\n  Bound result 6000000000000000000\n  Bound result 0\n  Bound result 2160796475585944952033224\n  Bound result 1511414344021405270740555630401507787782553456953421371\n  Bound result 0\n  Bound result 18\n  Bound result 0\n  Bound result 8800\n  Bound result 20000000000000000000000000\n  Bound result 2592\n  Bound result 64\n  Bound result 10939\n  Bound result 6000000000000000000\n  Bound result 1000000000000000000\n  Bound result 45964562849758830526593357988034324100145098188132309735876257002631966110600\n  Bound result 255\n  Bound result 20000000\n  Bound result 65199377593173043366583900\n  Bound result 306824587\n  Bound result 6181\n  Bound result 100\n  Bound result 2921663306711287838737737123712981270521783295744273317895962445247484\n  Bound result 0\n  Bound result 2835717307\n  Bound result 7414\n  Bound result 0\n  Bound result 6\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 22.98s (22.98s CPU time)\n\nRan 5 test suites in 22.98s (25.91s CPU time): 62 tests passed, 0 failed, 0 skipped (62 total tests)\n","passed":true},{"durationMs":42,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Coinbase.approve(address,uint256)\",\"Coinbase.transfer(address,uint256)\",\"Coinbase.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"DEPENDENCIES.md\":22,\"DEPENDENCIES.sha256\":36,\"README.md\":124,\"foundry.toml\":18,\"remappings.txt\":2,\"src/Coinbase.sol\":17,\"test/Coinbase.adversarial.invariant.t.sol\":384,\"test/Coinbase.fuzz.t.sol\":283,\"test/Coinbase.invariant.t.sol\":101,\"test/Coinbase.launch.t.sol\":375,\"test/Coinbase.t.sol\":391},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"c8c5dfc47ec54cb8d316a50c2ebd755b13737a5e90dc9ec69be7d11c41a9b794","verifiedTreeHash":"83c5389984832c5310d95c66948a6f4fbbb1982c","verifierVersion":"0.1.0+327e1e9f"}]}