{"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":"03c3105d-077d-4495-ab68-bd3aa14e5196","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"8878b3cdad9dfd00bdbfe8fd3d89de60ab7dad39798c0effda509b0380c0e34c","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":"552fc7a2868118bce15ce6c295e93813f40be14478f17db831bccde2ade7c173","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":"462b8ca163561d205b27dbfc99e161446bd1ee5c6f5f9050d88afc0011cea439","dependsOn":["build_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"3014f1ea5961918ca059453a484bf4c8bcbbfc2248dbe31d94ac7c5cdf8f50bd","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"3014f1ea5961918ca059453a484bf4c8bcbbfc2248dbe31d94ac7c5cdf8f50bd","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"fa6d36c2ccd39d2666e97d9d6f8d529f8c06c2bd563ac0626309109f86297efb","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":"fff070a3e2f029f528d9deee5e11f3761b0bf4b29f181bfd4b9cfbea8cf39d17","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":"6023d2f6914da63ed8cb366d700e93fe543fd5e7676a9340e5b06bf496cce464","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"b6503de65ad02f845827887c23da4c3b56ccc5df7a459db263bae6e549d92f7f","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"b6503de65ad02f845827887c23da4c3b56ccc5df7a459db263bae6e549d92f7f","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"d066f6dbc21b991c0c4d2fd38c53c4d71f445b0025c980c05389da73ad97da18","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"78e0cf068e206e413c141c24eeed73f753859c941dee836eb2cf077b9bda3d90","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: IMD DOG (IMDOG).\nToken name: IMD DOG\nToken symbol: IMDOG\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"43382d1aca3b24c063418fb0a24be9fcb7dd7e09d2dba770aafc5b70c77992be","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"03c3105d-077d-4495-ab68-bd3aa14e5196","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-757-imd-dog"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"50981","feedbackHash":"b5c1158360a61e0d1bda48f1f725f80ffccb49bbca9f2de9706ad9ec19e68bf5","nodeKey":"audit_economics","submissionHash":"8878b3cdad9dfd00bdbfe8fd3d89de60ab7dad39798c0effda509b0380c0e34c","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51334","feedbackHash":"8f002d46b53cbc49b7df27598c6755aff7dc72334b03d25ddd4d0a05019a7638","nodeKey":"audit_flow","submissionHash":"552fc7a2868118bce15ce6c295e93813f40be14478f17db831bccde2ade7c173","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"50903","feedbackHash":"92d9ea678a368349340ce033f925b973e04e2b3df7f4dc7e2455de7e3363defd","nodeKey":"audit_judge","submissionHash":"462b8ca163561d205b27dbfc99e161446bd1ee5c6f5f9050d88afc0011cea439","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51027","feedbackHash":"ed6cb523ee0faa155899aa3b7c858e64fea1c4ac23eb3b60885451aa53108c25","nodeKey":"audit_math","submissionHash":"fa6d36c2ccd39d2666e97d9d6f8d529f8c06c2bd563ac0626309109f86297efb","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"50959","feedbackHash":"8568664a1a66f5291e0e577c2fc041aa018efd84dedfbe70ee6f401b66fd412a","nodeKey":"audit_permissions","submissionHash":"fff070a3e2f029f528d9deee5e11f3761b0bf4b29f181bfd4b9cfbea8cf39d17","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51248","feedbackHash":"b74c3be3e92af9e04d13966bb8c6df1d0185ee93105884ff3d042a039420240c","nodeKey":"build_contract_project","submissionHash":"6023d2f6914da63ed8cb366d700e93fe543fd5e7676a9340e5b06bf496cce464","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51060","feedbackHash":"828ebb5d7ac03d5ea85509cc479bb4532f99bdb0e8f57c04c8031997c29a91c4","nodeKey":"manifest","submissionHash":"d066f6dbc21b991c0c4d2fd38c53c4d71f445b0025c980c05389da73ad97da18","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51200","feedbackHash":"2769bbcbef133e764df6efe2841312cf0dfabdf6b2e349964a8a3ce1e4bf0104","nodeKey":"write_foundry_tests","submissionHash":"78e0cf068e206e413c141c24eeed73f753859c941dee836eb2cf077b9bda3d90","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"3e2dd4d13ba9c397d88c17d129023cdbf745ea02d02d5ee6600504a6291fd184","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":null,"device":"523ef565dd740e25","findings":[],"hash":"462b8ca163561d205b27dbfc99e161446bd1ee5c6f5f9050d88afc0011cea439","nodeId":"c959870e-d3ad-4247-8ba4-10424a505d02","outcome":"completed","summary":"The review is complete. No defects were found, and `.imd-findings.json` holds an empty findings list with a full coverage record. The working tree is otherwise untouched.\n\n**What I verified**\n\n- **The token is a plain fixed-supply ERC-20.** It inherits OpenZeppelin v5.1.0 with no overrides, no owner, no mint or burn, no pause or blocklist, and a no-argument constructor. The compiled ABI exposes only approve, transfer and transferFrom as state-changing functions.\n- **The vendored dependency is genuine.** All five OpenZeppelin files hash-match the pinned upstream commit, so the inherited logic is exactly what the library ships. The tree has no submodule.\n- **The minted supply matches the manifest.** The constant evaluates to one billion tokens at 18 decimals, which equals the manifest's totalSupply digit for digit. The aderyn \"large numeric literal\" lead is a style note with no defect behind it.\n- **The runtime code is inert.** Disassembly shows no CALL-family, DELEGATECALL, CALLCODE, CREATE or SELFDESTRUCT opcodes at all.\n- **Launch flows move exact amounts.** With no special-casing of any sender or receiver, the swarm share, claims, the single-sided seed and trader swaps all move precisely what they say. The manifest's recorded price also reproduces from the stated market cap and supply.\n- **Existing tests pass offline.** All 41 unit, fuzz and invariant tests in the project pass.\n\n**Specialist findings**\n\nAll four specialists and the independent tester reported nothing, so there was nothing to reproduce or merge. I traced the three entry points myself against the OpenZeppelin source and marked each as holding, with four additional invariant rows for supply, privileged powers, opcodes and launch flows.\n\n**One item I could not check**\n\nThe manifest's paired currency address and the economics block are supposed to be copied from the job. No network file or job text was supplied in my reads, so I could not confirm them. That is a gap in available evidence, not a defect in the token, and I did not report it as a finding.","treeHash":null,"usage":{"cachedInputTokens":409286,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":7746,"runtime":"claude","turns":11,"wallClockMs":139090}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"433c37ef2c9c708d","findings":[],"hash":"552fc7a2868118bce15ce6c295e93813f40be14478f17db831bccde2ade7c173","nodeId":"9437f7cb-8d31-40d0-90b9-862c907310c7","outcome":"completed","summary":"Review complete. The findings file is written with an empty findings list and an 11-row coverage record. The scratch probe is removed and the tree is unchanged apart from the findings file.\n\n**Outcome: no defects found.** The token is a 15-line fixed-supply wrapper around unmodified OpenZeppelin v5.1.0 ERC20. Every lead from the Execution Trace, Periphery and First Principles guides was traced and closed with a concrete check.\n\n**What I verified**\n- **Entry points.** All three state-changing functions hold. I traced guards, state writes and every revert path, including the from-equals-to self-transfer, the max-allowance sentinel, zero-address sentinels, and atomic rollback of the allowance when the transfer leg of transferFrom fails.\n- **Constructor and supply.** The constructor mints exactly 10^27 minor units to msg.sender once. A CREATE2 deployment from a factory credits the factory, not its caller. There is no initializer, proxy, or constructor argument.\n- **Privileged surface.** The compiled ABI exposes only approve, transfer and transferFrom as nonpayable. There is no receive or fallback, so ether and unknown selectors revert.\n- **Bytecode.** An independent opcode scan of the deployed runtime found no DELEGATECALL, CALLCODE, SELFDESTRUCT, CALL or CREATE at all.\n- **Periphery.** Each vendored OpenZeppelin file hashes identically to the raw file at the pinned upstream commit. The unchecked blocks in the base contract are sound because supply is fixed and no mint path exists after construction.\n- **Launch flows.** With no fee, burn or exemption logic, the factory, distributor, PoolManager and trader flows all move exactly the stated amount.\n- **Static-analysis lead.** The aderyn large-literal note is a style lead only. The constant equals the brief's supply and involves no runtime arithmetic.\n\n**Checks run**\n- Existing suite: 29 tests passed, including the invariant run.\n- My scratch probe: 7 additional edge-case tests passed, then deleted.\n- forge fmt check passed.\n\n**Known behaviour, not reported as a finding.** The standard ERC-20 approve front-running race exists, as it does in every ERC-20. It is documented in the README and is recorded in the coverage rows rather than as a defect.","treeHash":null,"usage":{"cachedInputTokens":568915,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":13751,"runtime":"claude","turns":24,"wallClockMs":215877}},{"artifacts":[],"attempt":1,"bundleHash":"cc09a774916e9e93be0866629d4ff1ec325ded9c5571a0a67988a4949dd2a699","device":"468e1f512c9ac6ca","findings":[],"hash":"6023d2f6914da63ed8cb366d700e93fe543fd5e7676a9340e5b06bf496cce464","nodeId":"e9dfe5a3-435b-49a4-b648-01b4a6082459","outcome":"completed","summary":"Implemented [IMDOG](src/IMDOG.sol): 1,000,000,000 tokens, 18 decimals, minted once to the deployer.\n\nAdded vendored dependencies, deployment documentation, and success, failure, fuzz and invariant tests.\n\nAll checks pass with Solidity 0.8.26:\n\n- `forge build`\n- `forge test` — 29 passed\n- `forge fmt --check`\n\nThe protected launch integration requires external infrastructure and was not run locally.","treeHash":"30eb98cd039420d334fb8856776e72d09788ef72","usage":{"cachedInputTokens":350848,"inputTokens":56046,"model":"gpt-6-astra","outputTokens":11404,"runtime":"codex","turns":5,"wallClockMs":284755}},{"artifacts":[],"attempt":1,"bundleHash":"268899e0ecde0923f0ef42ce738cae072724aa727424bd23f9f6c98eefa23399","device":"2468e053049c5c80","findings":[],"hash":"78e0cf068e206e413c141c24eeed73f753859c941dee836eb2cf077b9bda3d90","nodeId":"378c605b-0802-4f8c-bfab-6e5da4e3e367","outcome":"completed","summary":"Expanded failure-path, approval-boundary, rollback/retry, and stateful accounting tests.\n\n`forge build` and `forge test` pass offline: 40 unit/fuzz tests plus 3 invariant properties across 16,384 randomized calls.\n\nOnly `test/` changed. No implementation defects found.","treeHash":"8b94f056d8e8b3ce654cef1933148a6c8042b5ca","usage":{"cachedInputTokens":653696,"inputTokens":69940,"model":"gpt-6-astra","outputTokens":9836,"runtime":"codex","turns":5,"wallClockMs":271925}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"5739ce0d803a43cd","findings":[],"hash":"8878b3cdad9dfd00bdbfe8fd3d89de60ab7dad39798c0effda509b0380c0e34c","nodeId":"41d55e96-269f-4973-8344-eaf9d18fd422","outcome":"completed","summary":"The review is complete. No tracked file changed; the only new files are the findings record and the scratch rehearsal test.\n\n**Outcome: clean review, no findings.** The `.imd-findings.json` file holds an empty findings list and ten coverage rows, all `holds`.\n\n**What I checked, in my area (Economic Security, Invariant, Flow Gap):**\n\n- **Entry points.** All three state-changing functions in `src/IMDOG.sol` are the unmodified OpenZeppelin `approve`, `transfer` and `transferFrom`. Zero receiver and zero owner revert, insufficient balance and allowance revert atomically, infinite allowance stays unchanged, and the factory cannot pull a holder's balance without approval.\n- **Supply invariants.** The constructor mints exactly 10^27 minor units to `msg.sender` once. The ABI exposes no mint, burn, initialize, upgrade, receive or fallback, and a fuzz over random selectors from random callers never changed supply or balances. Burning via a transfer to the zero address also reverts, so supply is fixed in both directions.\n- **Launch flows.** For every admissible pool share, the swarm's ten percent, the pool share and the remainder arrive whole and sum to total supply. The supply is divisible by 10,000, so no share rounds. No tax, hook or callback exists that could short the distributor, the pool manager or a trader.\n- **Periphery.** The six vendored OpenZeppelin files hash identically to the upstream v5.1.0 tag, fetched over git. The compiled runtime contains no DELEGATECALL, CALLCODE or SELFDESTRUCT and accepts no native value.\n\n**Not executed locally.** The protected suite's live Uniswap v4 seed-and-swap test needs v4-core and environment inputs that this repository does not carry. I traced that flow by reading the pool manager's settle and take semantics against a plain ERC-20 and marked it as holds by trace, which the coverage row states explicitly.\n\n**Leads I deliberately did not report.** The standard ERC-20 approve race and the irrecoverability of tokens sent to the token's own address are inherent ERC-20 properties that the README documents as intended, not defects in this code. The aderyn large-literal note is a style lead whose value I confirmed is correct.","treeHash":null,"usage":{"cachedInputTokens":1218760,"inputTokens":482,"model":"claude-fable-5-1","outputTokens":16999,"runtime":"claude","turns":27,"wallClockMs":239025}},{"artifacts":[],"attempt":1,"bundleHash":"8d8a4342b91c9c817a1f1440b33f4c0bb6ad7ba3e58e3e61fb1357e15af50f9b","device":"312a95392d3e8a75","findings":[],"hash":"d066f6dbc21b991c0c4d2fd38c53c4d71f445b0025c980c05389da73ad97da18","nodeId":"cfb915f2-a44a-4002-9d34-5ed3f1f16aa6","outcome":"completed","summary":"Created [launch.json](/root/.identitymd/work/03c3105d-077d-4495-ab68-bd3aa14e5196/cfb915f2-a44a-4002-9d34-5ed3f1f16aa6/launch.json) matching IMDOG’s constructor, supply, required economics, and pair currency.\n\nSchema and constructor ABI checks passed. `forge build` succeeded; `forge test` passed all 29 tests. Only `launch.json` is changed for submission.","treeHash":"d281886b38385adf3c177bed540a345f032d0e1e","usage":{"cachedInputTokens":192384,"inputTokens":21308,"model":"gpt-6-astra","outputTokens":3026,"runtime":"codex","turns":3,"wallClockMs":88722}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"61b4050710026370","findings":[],"hash":"fa6d36c2ccd39d2666e97d9d6f8d529f8c06c2bd563ac0626309109f86297efb","nodeId":"0ef7f9a9-e016-432b-9fec-860bf782f0c7","outcome":"completed","summary":"The findings file is in place at the repository root (the harness excludes it from git by design), the scratch directory is removed, and no tracked file changed.\n\n**Result: no math defects found.** The review covered the Math Precision, Boundary and Numerical Gap guides against `src/IMDOG.sol` and the ERC-20 it inherits. `.imd-findings.json` holds an empty findings list and eight coverage rows, all `holds`.\n\nWhat was checked and how it held up:\n\n- **Supply constant.** The literal at line 10 evaluates to exactly 10^27 at compile time, a 90-bit value. It fits the Uniswap v4 signed 128-bit delta and 128-bit liquidity types, so a whole-supply seed or swap cannot saturate pool math. It is divisible by 10,000, so the swarm's ten percent and every possible poolBps split leave no truncation dust.\n- **No arithmetic to round.** The token adds no division, multiplication, cast, fee or scale conversion. Decimals is the constant 18 from the base contract and matches the brief.\n- **Boundary inputs.** A scratch Foundry battery of 15 tests exercised max-uint and supply-plus-one transfers, self-transfer overdraw, exact-allowance spend to zero, an allowance of max minus one (correctly finite), allowance above balance (cannot mint), and zero-amount transfer and transferFrom with no allowance (pure no-ops). All behaved as specified.\n- **Unchecked blocks.** The unchecked balance credit and allowance decrement in the library are each preceded by the strict check that makes them safe, and conservation held under the existing 256-run invariant suite plus a fresh fuzz.\n- **Dependency integrity.** All five vendored OpenZeppelin files are byte-identical to the pinned upstream commit, so the library behavior relied on above is the audited one.\n- **Static analysis lead.** Aderyn's large-numeric-literal note is a style observation with no failing input, so it was not reported.\n\nCoverage rows were written for all three listed entry points plus five invariant rows. Nothing in the assigned area was left unreached. The existing suite of 29 tests passes unchanged.","treeHash":null,"usage":{"cachedInputTokens":843550,"inputTokens":354,"model":"claude-fable-5-1","outputTokens":12581,"runtime":"claude","turns":27,"wallClockMs":189202}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"468e82a89b9bfe18","findings":[],"hash":"fff070a3e2f029f528d9deee5e11f3761b0bf4b29f181bfd4b9cfbea8cf39d17","nodeId":"bdc71d52-e977-4129-96d9-a78cc872d2d0","outcome":"completed","summary":"The review is complete with no defects found. The findings file is written and validated, and no source or test files were changed.\n\n**Result:** `.imd-findings.json` holds an empty findings list plus seven coverage rows, one for each of the three listed entry points, the constructor, two invariants and the trust assumptions.\n\n**What I checked, in my area:**\n- **Access control.** The token has no roles, modifiers, initializer, owner or minter. The constructor mints the whole supply once to the caller, and no privileged power survives deployment. A contract deployer through CREATE2, as the factory does, receives all tokens.\n- **Asymmetry.** The three entry points are the unmodified OpenZeppelin v5.1.0 implementation with no `_update` or `_transfer` override, so `transfer` and `transferFrom` move exactly the requested amount for every caller class with no fee, burn or exemption path. Infinite allowance stays, finite allowance decrements, and reverts roll back atomically.\n- **Trust gap.** With no privileged actor and no economic formula there is no access and economics seam to exploit. The only trust assumption is that the deployment caller holds 100 percent of the supply, which is the intended factory flow.\n\n**Evidence gathered:**\n- Vendored OpenZeppelin files match upstream v5.1.0 line for line, with the only differences against the local mirror being version drift.\n- Compiled ABI exposes only standard ERC-20 functions plus the supply constant. Runtime bytecode contains no DELEGATECALL, CALLCODE, SELFDESTRUCT or CREATE, and there is no receive or fallback.\n- The project suite passed offline: 28 unit tests and one invariant run at 256 runs by 64 depth. A scratch suite of six additional tests, including a 512-run fuzz of transfer versus transferFrom symmetry, passed and was removed.\n- The protected floor's requirements, exact flows, manifest supply, 18 decimals and no admin calls, are all satisfied by this design.\n\n**Static analysis leads:** Slither reported nothing. The aderyn large-numeric-literal note on line 10 is a readable compile-time constant equal to 1e27, matching the brief, so it is not a defect.","treeHash":null,"usage":{"cachedInputTokens":819629,"inputTokens":450,"model":"claude-fable-5-1","outputTokens":10227,"runtime":"claude","turns":15,"wallClockMs":203983}}],"verification":[{"checks":[{"durationMs":969,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 881.08ms\nCompiler run successful!\n","passed":true},{"durationMs":1219,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 28 tests for test/IMDOG.t.sol:IMDOGTest\n[PASS] testFuzz_DelegatedTransfersPreserveAccounting(uint256,uint256) (runs: 256, μ: 156108, ~: 157963)\nLogs:\n  Bound result 94609142079998483263687771\n  Bound result 60656138341738215831585866\n\n[PASS] testFuzz_OverdrawReverts(uint256) (runs: 256, μ: 65077, ~: 65379)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039458584007913129639935\n\n[PASS] testFuzz_TransfersConserveSupply(address,uint256) (runs: 256, μ: 93252, ~: 93491)\nLogs:\n  Bound result 175530048489342889527\n\n[PASS] test_ApprovalIsSpecificToSpender() (gas: 98345)\n[PASS] test_ApproveEmitsEventAndCanBeReplacedAndRevoked() (gas: 178382)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 37925)\n[PASS] test_CommonMintAndAdministrativeCallsAreUnavailable() (gas: 1734937)\n[PASS] test_ConstructorEmitsMintTransfer() (gas: 5936)\n[PASS] test_Create2MintsToFactoryRatherThanItsCaller() (gas: 212976)\n[PASS] test_DeployerCannotSpendHolderBalanceWithoutApproval() (gas: 140690)\n[PASS] test_FullSupplyCanMoveAndReturn() (gas: 140444)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 132411)\n[PASS] test_LaunchDistributionAndClaimTransferExactAmounts() (gas: 277604)\n[PASS] test_MetadataAndInitialAllocation() (gas: 103294)\n[PASS] test_RuntimeContainsNoForbiddenOpcodes() (gas: 786676)\n[PASS] test_SelfTransferPreservesBalanceAndSupply() (gas: 51635)\n[PASS] test_TransferFromInsufficientAllowanceRevertsWithoutMutation() (gas: 108748)\n[PASS] test_TransferFromInsufficientBalanceRollsBackAllowance() (gas: 124653)\n[PASS] test_TransferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 228159)\n[PASS] test_TransferFromToSelfSpendsAllowanceWithoutChangingBalance() (gas: 104851)\n[PASS] test_TransferFromWithoutApprovalReverts() (gas: 50858)\n[PASS] test_TransferFromZeroReceiverRollsBackAllowance() (gas: 111712)\n[PASS] test_TransferFromZeroSenderRevertsEvenForZeroAmount() (gas: 33424)\n[PASS] test_TransferReturnsTrueAndEmitsExactAmount() (gas: 89292)\n[PASS] test_TransferToZeroReverts() (gas: 47926)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 56194)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 67490)\n[PASS] test_ZeroTransferToZeroStillReverts() (gas: 30807)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 7.08ms (26.45ms CPU time)\n\nRan 1 test for test/IMDOG.invariant.t.sol:IMDOGInvariantTest\n[PASS] invariant_SupplyAndAggregateBalancesStayFixed() (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------+--------------+-------+---------+----------╮\n| Contract     | Selector     | Calls | Reverts | Discards |\n+==========================================================+\n| IMDOGHandler | approve      | 5367  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| IMDOGHandler | transfer     | 5477  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| IMDOGHandler | transferFrom | 5540  | 0       | 0        |\n╰--------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 5275\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 85\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 4725\n  Bound result 15\n  Bound result 0\n  Bound result 0\n  Bound result 141\n  Bound result 0\n  Bound result 0\n  Bound result 354\n  Bound result 88\n  Bound result 230\n  Bound result 3927\n  Bound result 242\n  Bound result 8\n  Bound result 31\n  Bound result 29\n  Bound result 36\n  Bound result 15\n  Bound result 18\n  Bound result 101\n  Bound result 6\n  Bound result 1541\n  Bound result 2\n  Bound result 297\n  Bound result 4476\n  Bound result 4594637\n  Bound result 2\n  Bound result 326\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.15s (1.15s CPU time)\n\nRan 2 test suites in 1.15s (1.16s CPU time): 29 tests passed, 0 failed, 0 skipped (29 total tests)\n","passed":true},{"durationMs":33,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"IMDOG.approve(address,uint256)\",\"IMDOG.transfer(address,uint256)\",\"IMDOG.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"DEPENDENCIES.md\":13,\"README.md\":108,\"foundry.toml\":21,\"remappings.txt\":2,\"src/IMDOG.sol\":15,\"test/IMDOG.invariant.t.sol\":75,\"test/IMDOG.t.sol\":368},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":383,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":183,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/IMDOG.sol:10: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"6023d2f6914da63ed8cb366d700e93fe543fd5e7676a9340e5b06bf496cce464","verifiedTreeHash":"30eb98cd039420d334fb8856776e72d09788ef72","verifierVersion":"0.1.0+f8d984f2"},{"checks":[{"durationMs":1320,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.21s\nCompiler run successful!\n","passed":true},{"durationMs":5315,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 40 tests for test/IMDOG.t.sol:IMDOGTest\n[PASS] testFuzz_ApprovalReplacementIsIdempotentAndIsolated(uint256,uint256) (runs: 1000, μ: 308741, ~: 308858)\n[PASS] testFuzz_BalanceFailurePreservesFiniteApprovalForRetry(uint256,uint256,uint256) (runs: 1000, μ: 342191, ~: 342817)\nLogs:\n  Bound result 9\n  Bound result 126\n  Bound result 621\n\n[PASS] testFuzz_DelegatedTransfersPreserveAccounting(uint256,uint256) (runs: 1000, μ: 155675, ~: 158030)\nLogs:\n  Bound result 999999999999999999999999999\n  Bound result 999999999999999999999999997\n\n[PASS] testFuzz_OverdrawReverts(uint256) (runs: 1000, μ: 65232, ~: 65556)\nLogs:\n  Bound result 1787739690213224171853885438642213815466722221746\n\n[PASS] testFuzz_SplitTransfersMatchSingleTransfer(uint256,uint256) (runs: 1000, μ: 247877, ~: 249132)\nLogs:\n  Bound result 999999999999999999999999999\n  Bound result 999999999999999999999999997\n\n[PASS] testFuzz_TransfersConserveSupply(address,uint256) (runs: 1000, μ: 93732, ~: 93929)\nLogs:\n  Bound result 208865670044577441109928448991561976043658110242\n  Bound result 1751\n\n[PASS] test_AlmostMaximumApprovalIsFinite() (gas: 151369)\n[PASS] test_ApprovalIsSpecificToOwner() (gas: 183029)\n[PASS] test_ApprovalIsSpecificToSpender() (gas: 98368)\n[PASS] test_ApproveEmitsEventAndCanBeReplacedAndRevoked() (gas: 178394)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 37991)\n[PASS] test_CommonMintAndAdministrativeCallsAreUnavailable() (gas: 1734915)\n[PASS] test_ConstructorEmitsMintTransfer() (gas: 5936)\n[PASS] test_Create2MintsToFactoryRatherThanItsCaller() (gas: 213042)\n[PASS] test_DeployerCannotSpendHolderBalanceWithoutApproval() (gas: 140668)\n[PASS] test_EmptyAccountApprovalSurvivesFailureAndWorksAfterFunding() (gas: 267789)\n[PASS] test_ExhaustedAllowanceCannotBeReusedAfterBalanceRestored() (gas: 204033)\n[PASS] test_FullSupplyCanMoveAndReturn() (gas: 140445)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 132367)\n[PASS] test_InfiniteApprovalCanBeReplacedAndRevoked() (gas: 298986)\n[PASS] test_LaunchDistributionAndClaimTransferExactAmounts() (gas: 277615)\n[PASS] test_MaximumTransferRevertsWithoutMutation() (gas: 61358)\n[PASS] test_MetadataAndInitialAllocation() (gas: 103294)\n[PASS] test_OneWeiCanBeTransferredAndReturned() (gas: 138425)\n[PASS] test_RuntimeContainsNoForbiddenOpcodes() (gas: 786611)\n[PASS] test_SelfTransferCannotBypassBalanceCheck() (gas: 139598)\n[PASS] test_SelfTransferPreservesBalanceAndSupply() (gas: 51580)\n[PASS] test_TransferFromInsufficientAllowanceRevertsWithoutMutation() (gas: 108748)\n[PASS] test_TransferFromInsufficientBalanceRollsBackAllowance() (gas: 124708)\n[PASS] test_TransferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 228137)\n[PASS] test_TransferFromToSelfSpendsAllowanceWithoutChangingBalance() (gas: 104929)\n[PASS] test_TransferFromWithoutApprovalReverts() (gas: 50880)\n[PASS] test_TransferFromZeroReceiverRollsBackAllowance() (gas: 111701)\n[PASS] test_TransferFromZeroSenderRevertsEvenForZeroAmount() (gas: 33425)\n[PASS] test_TransferOnePastSupplyReverts() (gas: 61193)\n[PASS] test_TransferReturnsTrueAndEmitsExactAmount() (gas: 89336)\n[PASS] test_TransferToZeroReverts() (gas: 47948)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 56129)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 67513)\n[PASS] test_ZeroTransferToZeroStillReverts() (gas: 30807)\nSuite result: ok. 40 passed; 0 failed; 0 skipped; finished in 61.60ms (371.22ms CPU time)\n\nRan 1 test for test/IMDOG.invariant.t.sol:IMDOGInvariantTest\n[PASS]\nIMDOGInvariantTest invariants:\n[PASS] invariant_EachBalanceAndAllowanceMatchesRequestedOperations\n[PASS] invariant_MetadataRemainsUnchanged\n[PASS] invariant_SupplyAndAggregateBalancesStayFixed\n IMDOGInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------+---------------------------+-------+---------+----------╮\n| Contract     | Selector                  | Calls | Reverts | Discards |\n+=======================================================================+\n| IMDOGHandler | approve                   | 1855  | 0       | 0        |\n|--------------+---------------------------+-------+---------+----------|\n| IMDOGHandler | approveBoundary           | 1865  | 0       | 0        |\n|--------------+---------------------------+-------+---------+----------|\n| IMDOGHandler | approveZeroSpender        | 1808  | 0       | 0        |\n|--------------+---------------------------+-------+---------+----------|\n| IMDOGHandler | transfer                  | 1811  | 0       | 0        |\n|--------------+---------------------------+-------+---------+----------|\n| IMDOGHandler | transferFrom              | 1752  | 0       | 0        |\n|--------------+---------------------------+-------+---------+----------|\n| IMDOGHandler | transferFromOverAllowance | 1834  | 0       | 0        |\n|--------------+---------------------------+-------+---------+----------|\n| IMDOGHandler | transferFromOverBalance   | 1796  | 0       | 0        |\n|--------------+---------------------------+-------+---------+----------|\n| IMDOGHandler | transferOverBalance       | 1837  | 0       | 0        |\n|--------------+---------------------------+-------+---------+----------|\n| IMDOGHandler | transferToZero            | 1826  | 0       | 0        |\n╰--------------+---------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129639976\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129645292\n  Bound result 0\n  Bound result 119\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639933\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129640061\n  Bound result 7634\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129642762\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129650702\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129641531\n  Bound result 249999999999999999999999885\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129645346\n  Bound result 0\n  Bound result 127\n  Bound result 18\n  Bound result 9867\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129649806\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129649311\n  Bound result 4098\n  Bound result 9097\n  Bound result 2829\n  Bound result 10000000000000000000\n  Bound result 250000000000000000000000001\n  Bound result 2420\n  Bound result 5\n  Bound result 115792089237316195423570985008687907853269984665640314039463584007913129630186\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129631782\n  Bound result 8929\n  Bound result 95\n  Bound result 3\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007916254482339\n  Bound result 217347356\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129639950\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129640684\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129639774\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129640641\n  Bound result 9641\n  Bound result 434\n  Bound result 4\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913130079786\n  Bound result 3477557712\n  Bound result 73507035674748006732734292\n  Bound result 115792089237316195423570985008687907853269984665640314071871045912548205449680\n  Bound result 435\n  Bound result 98526745670630106383035790\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.23s (5.23s CPU time)\n\nRan 2 test suites in 5.23s (5.29s CPU time): 41 tests passed, 0 failed, 0 skipped (41 total tests)\n","passed":true},{"durationMs":42,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"IMDOG.approve(address,uint256)\",\"IMDOG.transfer(address,uint256)\",\"IMDOG.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"DEPENDENCIES.md\":13,\"README.md\":108,\"foundry.toml\":21,\"remappings.txt\":2,\"src/IMDOG.sol\":15,\"test/IMDOG.invariant.t.sol\":201,\"test/IMDOG.t.sol\":584},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"78e0cf068e206e413c141c24eeed73f753859c941dee836eb2cf077b9bda3d90","verifiedTreeHash":"8b94f056d8e8b3ce654cef1933148a6c8042b5ca","verifierVersion":"0.1.0+f8d984f2"},{"checks":[{"durationMs":1095,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 994.67ms\nCompiler run successful!\n","passed":true},{"durationMs":1347,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 28 tests for test/IMDOG.t.sol:IMDOGTest\n[PASS] testFuzz_DelegatedTransfersPreserveAccounting(uint256,uint256) (runs: 256, μ: 155458, ~: 157963)\nLogs:\n  Bound result 0\n  Bound result 0\n\n[PASS] testFuzz_OverdrawReverts(uint256) (runs: 256, μ: 65041, ~: 65379)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129639939\n\n[PASS] testFuzz_TransfersConserveSupply(address,uint256) (runs: 256, μ: 93269, ~: 93491)\nLogs:\n  Bound result 8121206131490837933\n\n[PASS] test_ApprovalIsSpecificToSpender() (gas: 98345)\n[PASS] test_ApproveEmitsEventAndCanBeReplacedAndRevoked() (gas: 178382)\n[PASS] test_ApproveZeroSpenderReverts() (gas: 37925)\n[PASS] test_CommonMintAndAdministrativeCallsAreUnavailable() (gas: 1734937)\n[PASS] test_ConstructorEmitsMintTransfer() (gas: 5936)\n[PASS] test_Create2MintsToFactoryRatherThanItsCaller() (gas: 212976)\n[PASS] test_DeployerCannotSpendHolderBalanceWithoutApproval() (gas: 140690)\n[PASS] test_FullSupplyCanMoveAndReturn() (gas: 140444)\n[PASS] test_InfiniteAllowanceIsNotDecremented() (gas: 132411)\n[PASS] test_LaunchDistributionAndClaimTransferExactAmounts() (gas: 277604)\n[PASS] test_MetadataAndInitialAllocation() (gas: 103294)\n[PASS] test_RuntimeContainsNoForbiddenOpcodes() (gas: 786676)\n[PASS] test_SelfTransferPreservesBalanceAndSupply() (gas: 51635)\n[PASS] test_TransferFromInsufficientAllowanceRevertsWithoutMutation() (gas: 108748)\n[PASS] test_TransferFromInsufficientBalanceRollsBackAllowance() (gas: 124653)\n[PASS] test_TransferFromSpendsFiniteAllowanceAndEmitsTransfer() (gas: 228159)\n[PASS] test_TransferFromToSelfSpendsAllowanceWithoutChangingBalance() (gas: 104851)\n[PASS] test_TransferFromWithoutApprovalReverts() (gas: 50858)\n[PASS] test_TransferFromZeroReceiverRollsBackAllowance() (gas: 111712)\n[PASS] test_TransferFromZeroSenderRevertsEvenForZeroAmount() (gas: 33424)\n[PASS] test_TransferReturnsTrueAndEmitsExactAmount() (gas: 89292)\n[PASS] test_TransferToZeroReverts() (gas: 47926)\n[PASS] test_ZeroTransferFromEmptyAccountEmitsEvent() (gas: 56194)\n[PASS] test_ZeroTransferFromNeedsNoAllowance() (gas: 67490)\n[PASS] test_ZeroTransferToZeroStillReverts() (gas: 30807)\nSuite result: ok. 28 passed; 0 failed; 0 skipped; finished in 7.86ms (33.07ms CPU time)\n\nRan 1 test for test/IMDOG.invariant.t.sol:IMDOGInvariantTest\n[PASS] invariant_SupplyAndAggregateBalancesStayFixed() (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------+--------------+-------+---------+----------╮\n| Contract     | Selector     | Calls | Reverts | Discards |\n+==========================================================+\n| IMDOGHandler | approve      | 5475  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| IMDOGHandler | transfer     | 5447  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| IMDOGHandler | transferFrom | 5462  | 0       | 0        |\n╰--------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 4704\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 4099\n  Bound result 0\n  Bound result 8\n  Bound result 536813586193329279\n  Bound result 4\n  Bound result 197\n  Bound result 215043301432142785\n  Bound result 0\n  Bound result 4\n  Bound result 0\n  Bound result 2296\n  Bound result 0\n  Bound result 0\n  Bound result 95\n  Bound result 25\n  Bound result 3\n  Bound result 95\n  Bound result 2532\n  Bound result 1133\n  Bound result 4\n  Bound result 10000000000000000000\n  Bound result 1000000000\n  Bound result 78\n  Bound result 591\n  Bound result 100\n  Bound result 109214173939877754\n  Bound result 6\n  Bound result 30248084274470405\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.26s (1.26s CPU time)\n\nRan 2 test suites in 1.27s (1.27s CPU time): 29 tests passed, 0 failed, 0 skipped (29 total tests)\n","passed":true},{"durationMs":33,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"IMDOG.approve(address,uint256)\",\"IMDOG.transfer(address,uint256)\",\"IMDOG.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"DEPENDENCIES.md\":13,\"README.md\":108,\"foundry.toml\":21,\"launch.json\":20,\"remappings.txt\":2,\"src/IMDOG.sol\":15,\"test/IMDOG.invariant.t.sol\":75,\"test/IMDOG.t.sol\":368},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"d066f6dbc21b991c0c4d2fd38c53c4d71f445b0025c980c05389da73ad97da18","verifiedTreeHash":"d281886b38385adf3c177bed540a345f032d0e1e","verifierVersion":"0.1.0+f8d984f2"}]}