{"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":"9534fd9c-074c-440c-86a3-3e9b64943999","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"fdbc9c9ff67bef9de22e50942ee87f1d9bd4222174b1d36d3419a6674292b138","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":"7ee3d957438a269e6b8a5843a60fc32879098b19563c68758c23c2c80ffff6dd","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":"5ff84c1a4dbec056944e74884a8af9518ade4545d6c66b551556fd1c3443874f","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":"fe8a294193705dd1e713597923a43b3ff351d3a2948d3c6c8d2b676c95a1b7e9","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":"ae48ee761ffebb3d2f965123afa7ffdea15984847edb1aa6b37605909b3f3e14","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":"d05d35cfe497c59d49c08fe6f81dd5227597c32561086a7862ba9ec44270b617","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":"a7e8fe7b9ed75ca99e1a50ad3acedb142ee72b59ee18dabde34c205bdc6d8a63","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"2c7c4baa4768942d7bacb2edfaa277bfe1d4ea6d1069a8bd1a4b16726043138f","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","state":"accepted"}],"objective":"A custom token: PEGZEUS (PEGZ).\nToken name: PEGZEUS\nToken symbol: PEGZ\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.\nWhat it does: move value (BTC: a single lego) ⊂ run programs (ETH: legos that compose) ⊂ produce work (IMD?: legos that build legos)\n\neach contains the last and expands its surface area. transfer() and execute() already work. produce() is next","parentJobId":null,"planHash":"cfc32cf36dc68178d14af7c5cff0373fcc622f341f86f09bd58fa53f14695400","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"9534fd9c-074c-440c-86a3-3e9b64943999","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1689-pegzeus"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52584","feedbackHash":"ae3fdb70983fd68056ae03ede3449155951eff35ff692bfa7c21a9c49e8615fc","nodeKey":"audit_economics","submissionHash":"fdbc9c9ff67bef9de22e50942ee87f1d9bd4222174b1d36d3419a6674292b138","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52599","feedbackHash":"d68961ef821b0d2e38610344a455c786d24c1138463951cf9bda73cdbed0874c","nodeKey":"audit_flow","submissionHash":"7ee3d957438a269e6b8a5843a60fc32879098b19563c68758c23c2c80ffff6dd","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52190","feedbackHash":"e48beb197283e81af548972bc3281f6235226a201bb569413a8f2626c3796a44","nodeKey":"audit_judge","submissionHash":"5ff84c1a4dbec056944e74884a8af9518ade4545d6c66b551556fd1c3443874f","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51374","feedbackHash":"281cec39720f109d462d56d116fa7cfb6e02baf2b51c349440a5354a9ca4d12b","nodeKey":"audit_math","submissionHash":"fe8a294193705dd1e713597923a43b3ff351d3a2948d3c6c8d2b676c95a1b7e9","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52660","feedbackHash":"7f902e060fb6543c7b3723baa56d8d781f371429b6c8c507764777646964a249","nodeKey":"audit_permissions","submissionHash":"ae48ee761ffebb3d2f965123afa7ffdea15984847edb1aa6b37605909b3f3e14","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"53941","feedbackHash":"5f263f6318ba105ecb15f36c44feebfb7979c6ab779a1b7b7de6b51b804f69f8","nodeKey":"build_contract_project","submissionHash":"d05d35cfe497c59d49c08fe6f81dd5227597c32561086a7862ba9ec44270b617","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52552","feedbackHash":"97754853a94075e3a4ff722a507e91c24d66c13676b0e1e7270a2463560501d4","nodeKey":"manifest","submissionHash":"a7e8fe7b9ed75ca99e1a50ad3acedb142ee72b59ee18dabde34c205bdc6d8a63","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52086","feedbackHash":"456b362030ad88d2c05be10a5e4adcf7247a2f2f4405bd13f1ad075c93133019","nodeKey":"write_foundry_tests","submissionHash":"2c7c4baa4768942d7bacb2edfaa277bfe1d4ea6d1069a8bd1a4b16726043138f","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"5e19d784e97ed58eedc4017a3142ee2945291d43bb2411f3607343c593de3b28","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"4a92bf7e5b04fdcce167f1bcb1909b85577ca74d519a9cca74e20b906ba3beb9","device":"38c0c4e8e4438177","findings":[],"hash":"2c7c4baa4768942d7bacb2edfaa277bfe1d4ea6d1069a8bd1a4b16726043138f","nodeId":"d81ca8c1-a91a-4341-9b66-146daec272d4","outcome":"completed","summary":"Added 15 adversarial/fuzz tests and expanded invariants to 13 actions, covering authorization, allowance boundaries, failed-transfer rollback, and balance conservation.\n\nOffline `forge build` and `forge test` pass with the specified seed: **56 tests passed**, including **16,384 randomized invariant calls**.\n\nOnly `test/` changed. No contract defects found.","treeHash":"3b8f6d72dd1af1243a9eef747a7fc5764f8e0ca1","usage":{"cachedInputTokens":926208,"inputTokens":83344,"model":"gpt-6-astra","outputTokens":14818,"runtime":"codex","turns":6,"wallClockMs":394010}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"3beb94a990617d46","findings":[],"hash":"5ff84c1a4dbec056944e74884a8af9518ade4545d6c66b551556fd1c3443874f","nodeId":"24942820-7eea-4a4f-ab6c-ba62f99efbf6","outcome":"completed","summary":"Review complete. The findings file is written with an empty findings list and a full coverage record, and the working tree is otherwise clean.\n\n**Outcome: no defects found.** PEGZEUS is an unmodified OpenZeppelin v5.0.2 ERC-20 with a no-argument constructor that mints the manifest supply once to the deployer. All four specialists and the test writer reported nothing, and nothing reproduced for me either.\n\nWhat I verified:\n- **Entry points.** approve, transfer and transferFrom are the stock OZ implementations. I traced the zero-address, insufficient-balance and insufficient-allowance revert paths, and a scratch Foundry test confirmed allowance consumption, infinite-allowance handling and the revert cases.\n- **Supply and deployment.** The constant equals the manifest's totalSupply exactly. A scratch test deployed the creation code via CREATE2 from a contract with no arguments and that contract received the whole supply. Creation and runtime sizes are far below the protocol limits.\n- **Bytecode.** The runtime contains no DELEGATECALL, CALLCODE, SELFDESTRUCT, CALL or STATICCALL. The ABI exposes only ERC-20 views, approve, transfer, transferFrom and the supply constant. No owner, mint, burn, pause or blacklist path exists.\n- **Dependencies.** The five vendored OpenZeppelin files match the sha256 hashes pinned in the lock file for v5.0.2.\n- **Manifest.** launch.json uses only schema keys, lowercase addresses, correct types, an empty constructorArgs matching the no-argument constructor, and metadata matching the contract's name, symbol and decimals.\n- **Static analysis lead.** The aderyn large-numeric-literal note is benign. The literal is the manifest supply.\n\nThe project's own 56 tests pass. The scratch directory was removed after use, and the only file written is `.imd-findings.json` at the repository root.","treeHash":null,"usage":{"cachedInputTokens":311756,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":5624,"runtime":"claude","turns":7,"wallClockMs":97760}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a315ee4cb81c640c","findings":[],"hash":"7ee3d957438a269e6b8a5843a60fc32879098b19563c68758c23c2c80ffff6dd","nodeId":"a0743a07-eb64-44da-ba48-f45a1e77b5db","outcome":"completed","summary":"The review is complete. I found no defects in the PEGZEUS token, and the findings file holds an empty list with a full coverage record.\n\n**What I reviewed.** The token at `src/PEGZEUS.sol` is a seventeen-line contract: one constant and a constructor that mints the whole supply to the caller, on top of OpenZeppelin v5.0.2's ERC-20. I applied the Execution Trace, Periphery and First Principles guides, reading the Senior Auditor's Mindset first.\n\n**Execution trace.** Each of the three state-changing entry points was traced from call to final storage through the inherited base. Transfers reject the zero receiver, revert on insufficient balance before any write, and credit exactly the debited amount with no fee, hook or callback. Delegated transfers check a finite allowance before decrementing it, leave a maximum allowance untouched, and any revert restores both allowance and balances. The constructor makes no external reads or calls, so a CREATE2 deployment from the factory leaves the factory holding the full supply.\n\n**Periphery.** All six vendored OpenZeppelin files hash exactly to the lock file, so the base is unmodified. The context helper returns the plain caller with no trusted forwarder. No libraries or linked code are used.\n\n**First principles.** The compiled ABI exposes only approve, transfer, transferFrom and a non-payable constructor. There is no receive, fallback, mint, burn, owner, pause, blacklist, initializer or proxy, so the supply cannot change after construction and no privileged hand can move or freeze a holder. The runtime opcode scan finds no DELEGATECALL, CALLCODE or SELFDESTRUCT. The build, all 41 tests with the documented fuzz seed, and the formatter check all pass.\n\n**Leads I checked and dropped.** The standard allowance replacement race and leftover allowance after partial spending are ERC-20 semantics, documented in the README, with no mechanism specific to this code. The aderyn note on the large numeric literal is style only. The brief's mention of an execute and produce surface is treated by the author as project context rather than token functions, and the README states that choice. That is a scope decision for the requester, not a defect of the token.\n\n**Coverage.** All three listed entry points are marked holds, with rows added for the constructor, the fixed-supply invariant, the opcode invariant and the vendored dependencies. No tracked files were changed and nothing was written under the scratch test directory, since no finding reached the severity that needs a proof.","treeHash":null,"usage":{"cachedInputTokens":444040,"inputTokens":194,"model":"claude-fable-5-1","outputTokens":7588,"runtime":"claude","turns":24,"wallClockMs":126432}},{"artifacts":[],"attempt":1,"bundleHash":"06b4f09d53ca4194ab425aa2afc802b3ed431457393c7a0c5d069606d8cb295e","device":"809ae05b6282abad","findings":[],"hash":"a7e8fe7b9ed75ca99e1a50ad3acedb142ee72b59ee18dabde34c205bdc6d8a63","nodeId":"fa44bf50-8d2e-4beb-993a-c850dfce98b7","outcome":"completed","summary":"The work is complete and verified; no further items remain.\n\n`launch.json` is written at the repository root and describes the accepted implementation exactly: `src/PEGZEUS.sol` is a plain OpenZeppelin v5 ERC-20 whose zero-argument constructor mints the entire fixed supply to `msg.sender`. Because the accepted tree ships no application contracts (and the README's deployment table confirms \"Constructor arguments: None\", \"Application contracts: None\"), the manifest uses `constructorArgs: []` and an empty `contracts` array — naming anything else would contradict the accepted implementation.\n\nThe manifest contents:\n\n- **token**: contract `PEGZEUS`, name `PEGZEUS`, symbol `PEGZ`, decimals 18, `totalSupply` `\"1000000000000000000000000000\"` (10^27, the exact minor-unit amount minted once to the deployer).\n- **pool**: IMD pair `0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7`, fee 12500, tickSpacing 60, initialPrice `\"79228162514264337593543950336\"` (provenance only).\n- **economics**: the job's object copied verbatim: `poolBps` 8800, `initialMarketCapWei` `\"2500000000000000000000\"`, `remainderTo` `0xded42160d0642ba91c6c976c7ba8b6e24ea90590`.\n- **notes**: 1285 characters, describing only what exists: no admin/mint/burn/pause paths, exact-amount transfers, no DELEGATECALL/CALLCODE/SELFDESTRUCT, no auxiliary contracts.\n\nVerification results:\n\n- `forge build` compiles clean; the compiled constructor ABI has zero inputs, matching `constructorArgs: []`.\n- `forge test` with the pinned seed `0xc60eb4d6…`: 41 tests passed, 0 failed (including CREATE2 factory deployment holding the whole supply, exact launch allocations, and the stateful invariants at 256 runs × depth 64).\n- A checklist validation of `launch.json` passed: exact schema keys only (no `chainId`), string/number types per the rules, lowercase addresses, economics byte-identical to the job's object, notes under 4000 characters.\n- `git status` shows only the new `launch.json`; no tracked file is modified, and `forge fmt --check` is clean.","treeHash":"620459410c72a20d49c5073a5a1b7ebed1142253","usage":{"cachedInputTokens":209152,"inputTokens":67729,"model":"claude-fable-5-1","outputTokens":21864,"runtime":"claude","turns":17,"wallClockMs":241393}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"1ec9f666356a7ad7","findings":[],"hash":"ae48ee761ffebb3d2f965123afa7ffdea15984847edb1aa6b37605909b3f3e14","nodeId":"6be3c4aa-484c-436f-94d2-3ce0d1ed9324","outcome":"completed","summary":"The review is complete. The findings file holds an empty findings list and eight coverage rows, and the scratch directory is removed.\n\n**Result: no defects found.** The token is a 17-line wrapper over an unmodified OpenZeppelin v5.0.2 ERC-20 whose only custom code is a constructor minting the fixed supply to the deployer. I checked it against the Access Control, Trust Gap and Asymmetry guides, plus the deployment-phase and token-behaviour checklists, and found no failing input or state.\n\nWhat I verified, in `.imd-findings.json`:\n\n- **Access control.** The compiled ABI exposes exactly the ten standard ERC-20 methods plus the supply constant. There is no owner, role, initializer, pause, blacklist, mint, burn, receive or fallback. Every balance write goes through the inherited update function, reached only by the caller's own transfer or an allowance-gated delegated transfer. The sender is plain `msg.sender` with no meta-transaction forwarding.\n- **Asymmetry.** The transfer and delegated-transfer paths apply the same balance check, the same zero-receiver check and the same atomic rollback. Self-approval spending and the zero-sender case behave identically in outcome on both paths. Unlimited allowance is the documented OpenZeppelin convention.\n- **Trust gap.** The token carries no economics, so no seam between authorization and value exists. The one trust assumption is that the immediate deployer receives the whole supply. That is the launch design, since the factory deploys through CREATE2, and the resulting address is bound to the factory plus salt, so a stranger cannot front-run it.\n- **Dependency integrity.** All five vendored OpenZeppelin files and the licence are byte-identical to upstream v5.0.2 fetched during the review, and forge-std matches v1.9.7. The lock file hashes agree.\n- **Launch floor.** No constructor arguments, exact supply of 1e27 to the factory, 18 decimals, no fee, no opcode the floor refuses. The existing 41 tests and a five-case scratch probe all passed.\n\nCoverage rows: the three listed entry points, the constructor, the fixed-supply invariant, the no-privileged-freeze invariant, the trust-gap seams and dependency integrity, each marked holds. Nothing was left unreached.\n\nTwo notes that are not defects: the static analyser's large-literal warning refers to the readable `1_000_000_000 * 10 ** 18` constant, and `docs/SECURITY.md` counts 42 tests where Foundry reports 41.","treeHash":null,"usage":{"cachedInputTokens":889370,"inputTokens":354,"model":"claude-fable-5-1","outputTokens":14249,"runtime":"claude","turns":32,"wallClockMs":219008}},{"artifacts":[],"attempt":1,"bundleHash":"ba179e467ce17cc3b772138a5778b38aeac7c5d7fedc3d0d7f940a802e879913","device":"fea1c984a93ab45d","findings":[],"hash":"d05d35cfe497c59d49c08fe6f81dd5227597c32561086a7862ba9ec44270b617","nodeId":"67612521-e435-4fe3-9fdf-db84b8382648","outcome":"completed","summary":"Implemented PEGZEUS (PEGZ) with 18 decimals and exactly 1 billion tokens minted once to the deployer.\n\nIncluded vendored dependencies, success/failure tests, fuzz and invariant tests, and deployment documentation.\n\nVerified with Solidity 0.8.26:\n\n- `forge build` — passed\n- `forge test` — 41 passed using the required seed\n- `forge fmt --check` — passed\n\nTests also passed offline with an empty environment.","treeHash":"a4c26de1d38a238edbff8204ac0fd995d9795d4f","usage":{"cachedInputTokens":504832,"inputTokens":59069,"model":"gpt-6-astra","outputTokens":18228,"runtime":"codex","turns":5,"wallClockMs":460654}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"6f41bd9b44d3e708","findings":[],"hash":"fdbc9c9ff67bef9de22e50942ee87f1d9bd4222174b1d36d3419a6674292b138","nodeId":"ef63ab1b-2e77-44f2-a009-ebe474addccb","outcome":"completed","summary":"I found no defects in PEGZEUS. I wrote `.imd-findings.json` with an empty findings list and a coverage record for all 3 entry points.\n\n**What the code is:** `src/PEGZEUS.sol` is a plain OpenZeppelin v5.0.2 ERC-20. Its only custom code is the constructor, which mints 10^27 units (1,000,000,000 PEGZ at 18 decimals) to `msg.sender`. The vendored OpenZeppelin files match the hashes in `dependencies.lock.json`. `forge test` passed all 41 tests, including the invariant suite.\n\n**What I checked against the three guides:**\n- **Economic Security:** there is no fee, burn, rebase, pause, blacklist, owner, callback or external call. So the transfers to the distributor, the claims, the pool seed and swaps through the PoolManager all move exactly the amount requested. The split adds up: 10% to the swarm, 88% to the pool (`poolBps` 8800) and 2% to the remainder address make 100% of the supply. Nothing in the token can make a leg arrive short or revert.\n- **Invariant:** supply can't change after deployment, because the constructor is the only place tokens are minted and nothing can burn them. The sum of balances always equals the total supply. Allowances drop by exactly what is spent, except an unlimited allowance, which stays as it is.\n- **Flow Gap:** the token behaves the same way inside every launch flow, so I found no gap between what a step does and what the launch expects.\n\n**Coverage:** `approve`, `transfer` and `transferFrom` are all marked `holds`, with 4 extra rows for the invariants and economics I checked. The only static-analysis lead was aderyn's large-numeric-literal note on the supply constant. It is cosmetic and the value is correct, so I didn't report it. The known approve front-running race is standard ERC-20 behaviour, and the README already documents it, so it isn't reported either.\n\n`git status` now shows untracked files I did not create: `.bashrc`, `.profile`, `.zshrc`, `.claude/`, `.mcp.json`, `.vscode` and others. I left them alone. They look like machine or home-directory files, so check they don't end up in the submission.","treeHash":null,"usage":{"cachedInputTokens":246086,"inputTokens":12,"model":"claude-opus-5-5","outputTokens":3683,"runtime":"claude","turns":6,"wallClockMs":52298}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"13603a08ada71730","findings":[],"hash":"fe8a294193705dd1e713597923a43b3ff351d3a2948d3c6c8d2b676c95a1b7e9","nodeId":"fa07597d-cc30-4116-ab0b-044047c297de","outcome":"completed","summary":"I found no math defects, so `.imd-findings.json` has an empty findings list plus a coverage row for each entry point.\n\n**What I reviewed:** `src/PEGZEUS.sol` is a plain OpenZeppelin v5.0.0 ERC20. The only thing it adds is a constant `INITIAL_SUPPLY = 1_000_000_000 * 10 ** 18` (1e27), minted once to the deployer in the constructor. I read the vendored `_update` and `_spendAllowance` and they are the unmodified library code. `forge test` passes all 41 tests, including the invariant suite.\n\n**Math precision, boundary and numerical gap checks:**\n- **Supply:** 1e27 fits easily in a uint256 and matches the stated 1,000,000,000 tokens with 18 decimals. Nothing can mint or burn after the constructor, so the supply cannot grow.\n- **`unchecked` blocks:** The subtraction in `_update` only runs after a check that the balance is at least the amount. The addition can't overflow because no balance can exceed the total supply.\n- **Allowances:** `_spendAllowance` reverts when the allowance is too small, before it subtracts. An allowance of `type(uint256).max` is treated as unlimited and is not reduced, which is the intended behaviour.\n- **Boundary inputs:** Zero-value transfers and transfers to yourself leave balances correct.\n- **No division or casts:** There is nowhere for rounding or truncation to occur.\n- **No fee or burn on transfer:** The launch flows (factory to distributor and pool) move exactly the amounts they state.\n- **Static analysis lead:** aderyn's \"large numeric literal\" at `src/PEGZEUS.sol:12` is a style note about how the number is written; it isn't a defect.\n\n**Coverage:** `approve`, `transfer` and `transferFrom` all hold. I also recorded the fixed-supply and `decimals == 18` invariants as holding. All three listed entry points have a row, and none were left unreached.\n\nApart from `.imd-findings.json`, which the task asks for, I changed no files.","treeHash":null,"usage":{"cachedInputTokens":163732,"inputTokens":10,"model":"claude-opus-5-5","outputTokens":2178,"runtime":"claude","turns":5,"wallClockMs":41764}}],"verification":[{"checks":[{"durationMs":2820,"exitCode":0,"name":"build","output":"Compiling 29 files with Solc 0.8.26\nSolc 0.8.26 finished in 2.61s\nCompiler run successful!\n","passed":true},{"durationMs":7588,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/LaunchFlow.t.sol:LaunchFlowTest\n[PASS] testFuzz_anyImmediateDeployerReceivesEntireSupply(address) (runs: 1000, μ: 17964, ~: 17964)\n[PASS] test_factoryReceivesWholeSupplyWithoutInitialization() (gas: 67060)\n[PASS] test_launchAllocationsAndClaimArriveExactly() (gas: 335796)\n[PASS] test_poolTransfersInBothDirectionsHaveNoTaxOrRestrictions() (gas: 385668)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 295.01ms (276.52ms CPU time)\n\nRan 36 tests for test/PEGZEUS.t.sol:PEGZEUSTest\n[PASS] testFuzz_transferConservesBalances(address,uint256) (runs: 1000, μ: 92903, ~: 93184)\nLogs:\n  Bound result 211801474\n\n[PASS] testFuzz_transferFromRespectsAllowance(uint256,uint256) (runs: 1000, μ: 162167, ~: 164819)\nLogs:\n  Bound result 20375792102966032090528\n  Bound result 16193945231777458397249\n\n[PASS] testFuzz_transferOverAllowanceAlwaysReverts(uint256,uint256) (runs: 1000, μ: 122535, ~: 122850)\nLogs:\n  Bound result 303304140362403209345828554\n  Bound result 2286132439379071533326096744\n\n[PASS] testFuzz_transferOverBalanceAlwaysReverts(uint256,uint256) (runs: 1000, μ: 126716, ~: 127146)\nLogs:\n  Bound result 804448731\n  Bound result 1533\n\n[PASS] test_approvalDoesNotRequireBalance() (gas: 78627)\n[PASS] test_approvalEmitsEventWithoutMovingTokens() (gas: 103849)\n[PASS] test_approvalReplacesAllowanceAndCanBeRevoked() (gas: 163793)\n[PASS] test_approveZeroSpenderReverts() (gas: 37618)\n[PASS] test_constructorEmitsMintToDeployer() (gas: 11403)\n[PASS] test_deployerCannotSpendHolderTokensWithoutApproval() (gas: 157959)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 133673)\n[PASS] test_maximumTransferRevertsWithoutOverflow() (gas: 35707)\n[PASS] test_metadataAndInitialSupply() (gas: 96987)\n[PASS] test_nativeCurrencyPaymentReverts() (gas: 36789)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1538682)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 2259522)\n[PASS] test_selfTransferStillRequiresBalance() (gas: 35842)\n[PASS] test_transferEmitsEventAndDeliversExactAmount() (gas: 91540)\n[PASS] test_transferEntireBalance() (gas: 151435)\n[PASS] test_transferFromCannotUseAnotherSpendersAllowance() (gas: 92801)\n[PASS] test_transferFromDeliversExactAmountAndConsumesAllowance() (gas: 254582)\n[PASS] test_transferFromOverAllowanceRevertsAtomically() (gas: 115680)\n[PASS] test_transferFromOverBalanceRestoresAllowance() (gas: 126208)\n[PASS] test_transferFromRequiresApprovalEvenWhenCallerIsHolder() (gas: 35681)\n[PASS] test_transferFromSelfConsumesAllowanceWithoutMovingBalance() (gas: 107743)\n[PASS] test_transferFromToZeroRestoresAllowance() (gas: 114167)\n[PASS] test_transferFromWithoutApprovalReverts() (gas: 57800)\n[PASS] test_transferFromZeroNeedsNoAllowance() (gas: 68939)\n[PASS] test_transferFromZeroSenderRevertsEvenForZeroAmount() (gas: 35385)\n[PASS] test_transferOneMinorUnit() (gas: 78521)\n[PASS] test_transferOverBalanceRevertsAtomically() (gas: 54968)\n[PASS] test_transferToContractDoesNotCallRecipient() (gas: 171776)\n[PASS] test_transferToSelfPreservesBalanceAndEmitsEvent() (gas: 54014)\n[PASS] test_transferToZeroRevertsWithoutBurning() (gas: 47576)\n[PASS] test_transferZeroFromEmptyAccountEmitsEvent() (gas: 63145)\n[PASS] test_zeroTransferToZeroAlsoReverts() (gas: 30478)\nSuite result: ok. 36 passed; 0 failed; 0 skipped; finished in 299.89ms (1.02s CPU time)\n\nRan 15 tests for test/PEGZEUS.adversarial.t.sol:PEGZEUSAdversarialTest\n[PASS] testFuzz_approvalReplacementIsIdempotentAndIsolated(uint256,uint256) (runs: 1000, μ: 506653, ~: 506713)\n[PASS] testFuzz_failedDelegatedTransferRestoresFiniteAllowance(uint256,uint256,uint256) (runs: 1000, μ: 321399, ~: 322250)\nLogs:\n  Bound result 1033\n  Bound result 33140927139529918730570396028147109290852\n  Bound result 115792089237316195423570985008687907820129057526110645308887187979766020348054\n\n[PASS] testFuzz_failedTransferToZeroPreservesAuthorization(uint256,uint256) (runs: 1000, μ: 218445, ~: 219258)\nLogs:\n  Bound result 286132439379071533326096742\n  Bound result 3676529303304140362403209349505083\n\n[PASS] testFuzz_forwarderCannotUseTransactionOriginAuthority(uint256) (runs: 1000, μ: 628344, ~: 628149)\nLogs:\n  Bound result 165234273782\n\n[PASS] testFuzz_splitDelegatedSpendingMatchesSingleSpend(uint256,uint256,uint256,bool) (runs: 1000, μ: 398040, ~: 396607)\nLogs:\n  Bound result 1362602427\n  Bound result 2\n  Bound result 7906772043490128220\n\n[PASS] testFuzz_transferRoundTripRestoresPreexistingBalances(uint256,uint256) (runs: 1000, μ: 321066, ~: 322292)\nLogs:\n  Bound result 303304140362403209345828554\n  Bound result 163003456842249067905296859\n\n[PASS] testFuzz_unlimitedAllowanceCannotBypassBalance(uint256,uint256) (runs: 1000, μ: 203071, ~: 203507)\nLogs:\n  Bound result 42581330644366577378161274\n  Bound result 53494971932531435267651545789605991229899882903444963297076788631338517484\n\n[PASS] testFuzz_valueAttachedToTokenCallsRevertsAtomically(uint256) (runs: 1000, μ: 322012, ~: 322194)\nLogs:\n  Bound result 81368982433644344\n\n[PASS] test_allowanceStaysWithOwnerWhenTokensMoveAndIsUsableAfterRefill() (gas: 406933)\n[PASS] test_maximumDelegatedAmountCannotOverflowOrBypassBalance() (gas: 198979)\nLogs:\n  Bound result 1000000000000000000000000000\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129639935\n\n[PASS] test_maximumFiniteAllowanceIsConsumed() (gas: 210796)\n[PASS] test_selfDelegationNeedsAndConsumesItsOwnAllowance() (gas: 213481)\n[PASS] test_unlimitedApprovalCanBeDowngradedAndRevoked() (gas: 357133)\n[PASS] test_zeroApprovalToZeroSpenderIsStillInvalid() (gas: 48064)\n[PASS] test_zeroDelegatedTransferToZeroIsStillInvalid() (gas: 121704)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 299.95ms (2.20s CPU time)\n\nRan 1 test for test/PEGZEUS.invariant.t.sol:PEGZEUSInvariantTest\n[PASS]\nPEGZEUSInvariantTest invariants:\n[PASS] invariant_allowancesMatchModel\n[PASS] invariant_supplyAndEveryBalanceMatchModel\n PEGZEUSInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------------+-------------------------+-------+---------+----------╮\n| Contract       | Selector                | Calls | Reverts | Discards |\n+=======================================================================+\n| PEGZEUSHandler | approve                 | 1289  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | approveAndSpend         | 1244  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | approveBoundary         | 1245  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | approveZeroSpender      | 1267  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | revokeAndAttemptSpend   | 1329  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | transfer                | 1257  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | transferAll             | 1250  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | transferFrom            | 1203  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | transferFromOverBalance | 1248  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | transferFromToZero      | 1319  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | transferOverAllowance   | 1235  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | transferOverBalance     | 1247  | 0       | 0        |\n|----------------+-------------------------+-------+---------+----------|\n| PEGZEUSHandler | transferToZero          | 1251  | 0       | 0        |\n╰----------------+-------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 1000000000000000000000000000\n  Bound result 721\n  Bound result 16\n  Bound result 0\n  Bound result 1\n  Bound result 1\n  Bound result 11268\n  Bound result 0\n  Bound result 1000000000000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 9779\n  Bound result 16\n  Bound result 0\n  Bound result 16\n  Bound result 16\n  Bound result 0\n  Bound result 0\n  Bound result 999999999999999999999999984\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 6\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129639950\n  Bound result 0\n  Bound result 16\n  Bound result 11\n  Bound result 7\n  Bound result 16\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 1000000000000000000000000000\n  Bound result 0\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 7.43s (7.41s CPU time)\n\nRan 4 test suites in 7.45s (8.33s CPU time): 56 tests passed, 0 failed, 0 skipped (56 total tests)\n","passed":true},{"durationMs":64,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PEGZEUS.approve(address,uint256)\",\"PEGZEUS.transfer(address,uint256)\",\"PEGZEUS.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"LICENSE\":23,\"README.md\":131,\"dependencies.lock.json\":54,\"docs/SECURITY.md\":35,\"foundry.toml\":21,\"remappings.txt\":2,\"src/PEGZEUS.sol\":17,\"test/LaunchFlow.t.sol\":92,\"test/PEGZEUS.adversarial.t.sol\":336,\"test/PEGZEUS.invariant.t.sol\":236,\"test/PEGZEUS.t.sol\":394},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"2c7c4baa4768942d7bacb2edfaa277bfe1d4ea6d1069a8bd1a4b16726043138f","verifiedTreeHash":"3b8f6d72dd1af1243a9eef747a7fc5764f8e0ca1","verifierVersion":"0.1.0+67c588fa"},{"checks":[{"durationMs":1247,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.18s\nCompiler run successful!\n","passed":true},{"durationMs":4688,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/LaunchFlow.t.sol:LaunchFlowTest\n[PASS] testFuzz_anyImmediateDeployerReceivesEntireSupply(address) (runs: 1000, μ: 17964, ~: 17964)\n[PASS] test_factoryReceivesWholeSupplyWithoutInitialization() (gas: 67060)\n[PASS] test_launchAllocationsAndClaimArriveExactly() (gas: 335796)\n[PASS] test_poolTransfersInBothDirectionsHaveNoTaxOrRestrictions() (gas: 385668)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 30.05ms (28.66ms CPU time)\n\nRan 36 tests for test/PEGZEUS.t.sol:PEGZEUSTest\n[PASS] testFuzz_transferConservesBalances(address,uint256) (runs: 1000, μ: 92890, ~: 93172)\nLogs:\n  Bound result 321477243270788221868086547\n\n[PASS] testFuzz_transferFromRespectsAllowance(uint256,uint256) (runs: 1000, μ: 162294, ~: 164819)\nLogs:\n  Bound result 0\n  Bound result 0\n\n[PASS] testFuzz_transferOverAllowanceAlwaysReverts(uint256,uint256) (runs: 1000, μ: 122512, ~: 122838)\nLogs:\n  Bound result 3\n  Bound result 30\n\n[PASS] testFuzz_transferOverBalanceAlwaysReverts(uint256,uint256) (runs: 1000, μ: 126681, ~: 127140)\nLogs:\n  Bound result 28067479598\n  Bound result 648\n\n[PASS] test_approvalDoesNotRequireBalance() (gas: 78627)\n[PASS] test_approvalEmitsEventWithoutMovingTokens() (gas: 103849)\n[PASS] test_approvalReplacesAllowanceAndCanBeRevoked() (gas: 163793)\n[PASS] test_approveZeroSpenderReverts() (gas: 37618)\n[PASS] test_constructorEmitsMintToDeployer() (gas: 11403)\n[PASS] test_deployerCannotSpendHolderTokensWithoutApproval() (gas: 157959)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 133673)\n[PASS] test_maximumTransferRevertsWithoutOverflow() (gas: 35707)\n[PASS] test_metadataAndInitialSupply() (gas: 96987)\n[PASS] test_nativeCurrencyPaymentReverts() (gas: 36789)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1538682)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 2259522)\n[PASS] test_selfTransferStillRequiresBalance() (gas: 35842)\n[PASS] test_transferEmitsEventAndDeliversExactAmount() (gas: 91540)\n[PASS] test_transferEntireBalance() (gas: 151435)\n[PASS] test_transferFromCannotUseAnotherSpendersAllowance() (gas: 92801)\n[PASS] test_transferFromDeliversExactAmountAndConsumesAllowance() (gas: 254582)\n[PASS] test_transferFromOverAllowanceRevertsAtomically() (gas: 115680)\n[PASS] test_transferFromOverBalanceRestoresAllowance() (gas: 126208)\n[PASS] test_transferFromRequiresApprovalEvenWhenCallerIsHolder() (gas: 35681)\n[PASS] test_transferFromSelfConsumesAllowanceWithoutMovingBalance() (gas: 107743)\n[PASS] test_transferFromToZeroRestoresAllowance() (gas: 114167)\n[PASS] test_transferFromWithoutApprovalReverts() (gas: 57800)\n[PASS] test_transferFromZeroNeedsNoAllowance() (gas: 68939)\n[PASS] test_transferFromZeroSenderRevertsEvenForZeroAmount() (gas: 35385)\n[PASS] test_transferOneMinorUnit() (gas: 78521)\n[PASS] test_transferOverBalanceRevertsAtomically() (gas: 54968)\n[PASS] test_transferToContractDoesNotCallRecipient() (gas: 171776)\n[PASS] test_transferToSelfPreservesBalanceAndEmitsEvent() (gas: 54014)\n[PASS] test_transferToZeroRevertsWithoutBurning() (gas: 47576)\n[PASS] test_transferZeroFromEmptyAccountEmitsEvent() (gas: 63145)\n[PASS] test_zeroTransferToZeroAlsoReverts() (gas: 30478)\nSuite result: ok. 36 passed; 0 failed; 0 skipped; finished in 30.21ms (134.30ms CPU time)\n\nRan 1 test for test/PEGZEUS.invariant.t.sol:PEGZEUSInvariantTest\n[PASS]\nPEGZEUSInvariantTest invariants:\n[PASS] invariant_allowancesMatchModel\n[PASS] invariant_supplyAndEveryBalanceMatchModel\n PEGZEUSInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------------+-----------------------+-------+---------+----------╮\n| Contract       | Selector              | Calls | Reverts | Discards |\n+=====================================================================+\n| PEGZEUSHandler | approve               | 3264  | 0       | 0        |\n|----------------+-----------------------+-------+---------+----------|\n| PEGZEUSHandler | transfer              | 3321  | 0       | 0        |\n|----------------+-----------------------+-------+---------+----------|\n| PEGZEUSHandler | transferFrom          | 3274  | 0       | 0        |\n|----------------+-----------------------+-------+---------+----------|\n| PEGZEUSHandler | transferOverAllowance | 3354  | 0       | 0        |\n|----------------+-----------------------+-------+---------+----------|\n| PEGZEUSHandler | transferOverBalance   | 3171  | 0       | 0        |\n╰----------------+-----------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 7105\n  Bound result 3698\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3597\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 492\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 11\n  Bound result 0\n  Bound result 2615\n  Bound result 0\n  Bound result 13\n  Bound result 478\n  Bound result 0\n  Bound result 3032\n  Bound result 13\n  Bound result 0\n  Bound result 0\n  Bound result 5\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.60s (4.60s CPU time)\n\nRan 3 test suites in 4.60s (4.66s CPU time): 41 tests passed, 0 failed, 0 skipped (41 total tests)\n","passed":true},{"durationMs":43,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PEGZEUS.approve(address,uint256)\",\"PEGZEUS.transfer(address,uint256)\",\"PEGZEUS.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"LICENSE\":23,\"README.md\":131,\"dependencies.lock.json\":54,\"docs/SECURITY.md\":35,\"foundry.toml\":21,\"launch.json\":24,\"remappings.txt\":2,\"src/PEGZEUS.sol\":17,\"test/LaunchFlow.t.sol\":92,\"test/PEGZEUS.invariant.t.sol\":126,\"test/PEGZEUS.t.sol\":394},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"a7e8fe7b9ed75ca99e1a50ad3acedb142ee72b59ee18dabde34c205bdc6d8a63","verifiedTreeHash":"620459410c72a20d49c5073a5a1b7ebed1142253","verifierVersion":"0.1.0+67c588fa"},{"checks":[{"durationMs":2125,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.92s\nCompiler run successful!\n","passed":true},{"durationMs":6444,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/LaunchFlow.t.sol:LaunchFlowTest\n[PASS] testFuzz_anyImmediateDeployerReceivesEntireSupply(address) (runs: 1000, μ: 17964, ~: 17964)\n[PASS] test_factoryReceivesWholeSupplyWithoutInitialization() (gas: 67060)\n[PASS] test_launchAllocationsAndClaimArriveExactly() (gas: 335796)\n[PASS] test_poolTransfersInBothDirectionsHaveNoTaxOrRestrictions() (gas: 385668)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 83.71ms (62.17ms CPU time)\n\nRan 36 tests for test/PEGZEUS.t.sol:PEGZEUSTest\n[PASS] testFuzz_transferConservesBalances(address,uint256) (runs: 1000, μ: 92890, ~: 93172)\nLogs:\n  Bound result 363561783841166754526177254\n\n[PASS] testFuzz_transferFromRespectsAllowance(uint256,uint256) (runs: 1000, μ: 162294, ~: 164819)\nLogs:\n  Bound result 29951282512980\n  Bound result 1144727351736\n\n[PASS] testFuzz_transferOverAllowanceAlwaysReverts(uint256,uint256) (runs: 1000, μ: 122512, ~: 122838)\nLogs:\n  Bound result 303304140362403209345828554\n  Bound result 2286132439379071533326096744\n\n[PASS] testFuzz_transferOverBalanceAlwaysReverts(uint256,uint256) (runs: 1000, μ: 126681, ~: 127140)\nLogs:\n  Bound result 42581330644366577378161274\n  Bound result 53494971932531435267651545789605991229899882903444963297076788631338517484\n\n[PASS] test_approvalDoesNotRequireBalance() (gas: 78627)\n[PASS] test_approvalEmitsEventWithoutMovingTokens() (gas: 103849)\n[PASS] test_approvalReplacesAllowanceAndCanBeRevoked() (gas: 163793)\n[PASS] test_approveZeroSpenderReverts() (gas: 37618)\n[PASS] test_constructorEmitsMintToDeployer() (gas: 11403)\n[PASS] test_deployerCannotSpendHolderTokensWithoutApproval() (gas: 157959)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 133673)\n[PASS] test_maximumTransferRevertsWithoutOverflow() (gas: 35707)\n[PASS] test_metadataAndInitialSupply() (gas: 96987)\n[PASS] test_nativeCurrencyPaymentReverts() (gas: 36789)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1538682)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 2259522)\n[PASS] test_selfTransferStillRequiresBalance() (gas: 35842)\n[PASS] test_transferEmitsEventAndDeliversExactAmount() (gas: 91540)\n[PASS] test_transferEntireBalance() (gas: 151435)\n[PASS] test_transferFromCannotUseAnotherSpendersAllowance() (gas: 92801)\n[PASS] test_transferFromDeliversExactAmountAndConsumesAllowance() (gas: 254582)\n[PASS] test_transferFromOverAllowanceRevertsAtomically() (gas: 115680)\n[PASS] test_transferFromOverBalanceRestoresAllowance() (gas: 126208)\n[PASS] test_transferFromRequiresApprovalEvenWhenCallerIsHolder() (gas: 35681)\n[PASS] test_transferFromSelfConsumesAllowanceWithoutMovingBalance() (gas: 107743)\n[PASS] test_transferFromToZeroRestoresAllowance() (gas: 114167)\n[PASS] test_transferFromWithoutApprovalReverts() (gas: 57800)\n[PASS] test_transferFromZeroNeedsNoAllowance() (gas: 68939)\n[PASS] test_transferFromZeroSenderRevertsEvenForZeroAmount() (gas: 35385)\n[PASS] test_transferOneMinorUnit() (gas: 78521)\n[PASS] test_transferOverBalanceRevertsAtomically() (gas: 54968)\n[PASS] test_transferToContractDoesNotCallRecipient() (gas: 171776)\n[PASS] test_transferToSelfPreservesBalanceAndEmitsEvent() (gas: 54014)\n[PASS] test_transferToZeroRevertsWithoutBurning() (gas: 47576)\n[PASS] test_transferZeroFromEmptyAccountEmitsEvent() (gas: 63145)\n[PASS] test_zeroTransferToZeroAlsoReverts() (gas: 30478)\nSuite result: ok. 36 passed; 0 failed; 0 skipped; finished in 85.34ms (330.47ms CPU time)\n\nRan 1 test for test/PEGZEUS.invariant.t.sol:PEGZEUSInvariantTest\n[PASS]\nPEGZEUSInvariantTest invariants:\n[PASS] invariant_allowancesMatchModel\n[PASS] invariant_supplyAndEveryBalanceMatchModel\n PEGZEUSInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------------+-----------------------+-------+---------+----------╮\n| Contract       | Selector              | Calls | Reverts | Discards |\n+=====================================================================+\n| PEGZEUSHandler | approve               | 3264  | 0       | 0        |\n|----------------+-----------------------+-------+---------+----------|\n| PEGZEUSHandler | transfer              | 3321  | 0       | 0        |\n|----------------+-----------------------+-------+---------+----------|\n| PEGZEUSHandler | transferFrom          | 3274  | 0       | 0        |\n|----------------+-----------------------+-------+---------+----------|\n| PEGZEUSHandler | transferOverAllowance | 3354  | 0       | 0        |\n|----------------+-----------------------+-------+---------+----------|\n| PEGZEUSHandler | transferOverBalance   | 3171  | 0       | 0        |\n╰----------------+-----------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 7105\n  Bound result 3698\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3597\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 492\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 11\n  Bound result 0\n  Bound result 2615\n  Bound result 0\n  Bound result 13\n  Bound result 478\n  Bound result 0\n  Bound result 3032\n  Bound result 13\n  Bound result 0\n  Bound result 0\n  Bound result 5\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 6.31s (6.28s CPU time)\n\nRan 3 test suites in 6.32s (6.48s CPU time): 41 tests passed, 0 failed, 0 skipped (41 total tests)\n","passed":true},{"durationMs":52,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PEGZEUS.approve(address,uint256)\",\"PEGZEUS.transfer(address,uint256)\",\"PEGZEUS.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"LICENSE\":23,\"README.md\":131,\"dependencies.lock.json\":54,\"docs/SECURITY.md\":35,\"foundry.toml\":21,\"remappings.txt\":2,\"src/PEGZEUS.sol\":17,\"test/LaunchFlow.t.sol\":92,\"test/PEGZEUS.invariant.t.sol\":126,\"test/PEGZEUS.t.sol\":394},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":1407,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":1011,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/PEGZEUS.sol:12: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"d05d35cfe497c59d49c08fe6f81dd5227597c32561086a7862ba9ec44270b617","verifiedTreeHash":"a4c26de1d38a238edbff8204ac0fd995d9795d4f","verifierVersion":"0.1.0+67c588fa"}]}