{"assessments":[],"deployments":[{"attestationHash":"80fee56a3b05b32c74b7186a252194f76ae68b2a2d0f2df92ba621e795eb93b9","chainId":1,"contracts":[{"address":"0x42418ad73e20cf0c8bc8a29fe1bc26b5de312a1f","blockNumber":26151739,"name":"PrismRiot","role":"token","txHash":"0x21d6b1570bb2f120ee2fed0c8b77c4ea2c5e737886f61c9d9bdd66e9a490da68"},{"address":"0x784ff9a3ac5d88a30bfff6f7f2a270161fbe6000","blockNumber":26151739,"name":"PoolInitializationGuard","role":"hook","txHash":"0x21d6b1570bb2f120ee2fed0c8b77c4ea2c5e737886f61c9d9bdd66e9a490da68"},{"address":"0x91c46a09139747ca39c8b0468df4649bca313735","blockNumber":26151739,"name":"MerkleDistributor","role":"distributor","txHash":"0x21d6b1570bb2f120ee2fed0c8b77c4ea2c5e737886f61c9d9bdd66e9a490da68"}],"id":"3a2605f8-e71a-4093-bddf-625c2fea1471","manifestHash":"15647fb5357f39a5eec29e403fd15ad0bd7cbf25aa849646f5d46c3fff4e89a9","status":"live"}],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"926e2a33-50ad-4388-8507-029e2ac93aeb","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"b2b91a9e04a82e7e0a7520baf318ce91e73bbda39ca691d069bfa7518fc42fd2","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":"f883cf4693e1477f3f8d2117f19d81813a628a3afebe1e0713f2bfba88999f30","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":"70ae633c29f278044202f6a91b44652ec425d4f74281edb83cc9e5d21b86bce6","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":"fc1f660352c0a03b48bf71337cf6ca795a2ac62a6eaa7639fd245e0bfc4f27d9","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":"09a1e1331b8b3391b41e41aa4ec40a7018373e7f4633f6947529f958903fe3a9","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":"e910abe620ecd1e90a315dc7ec4eb3ae07519ca5c955df95e02ed2b34b2dbbea","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"587567a5ef71546b5973ceaf6ef1dbbd590f49503b5ac9a6973ed86b89584857","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"587567a5ef71546b5973ceaf6ef1dbbd590f49503b5ac9a6973ed86b89584857","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"9f43f984cd3f6e8c07f854947226c19134de1d03140f7f0eec689cf183b091c5","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"059073aa6d285d177565a06bcad9b3a21f2f764061df53baf9ab7132af77c057","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: PrismRiot (PRIO).\nToken name: PrismRiot\nToken symbol: PRIO\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"848fa43e5e68502f976b42fca2dbdb83e5141af03aa5feaae6ee2dd8d577bc2b","previousHash":"2618a63d2b7a9e4bf7c7203ab7b881db50b51580a0b75223bd4eca5a0f8bbd3e","projectId":"926e2a33-50ad-4388-8507-029e2ac93aeb","publication":{"commit":"8264f2ad838123c30b87714161a4b0669202b528","deliveredAt":"2026-10-09T02:03:11.463Z","repoUrl":"https://github.com/identity-md-launches/launch-1126-prismriot"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51882","feedbackHash":"1037721b2f5523beb30e1a5e0554054bbe0ac73c53b1e16ec5ee884b9aa2fd4f","nodeKey":"audit_judge","submissionHash":"70ae633c29f278044202f6a91b44652ec425d4f74281edb83cc9e5d21b86bce6","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52144","feedbackHash":"5bd39c86f17539105225c6c82c613b1f251cb35cdb81eaec7c818d6c239a2891","nodeKey":"manifest","submissionHash":"9f43f984cd3f6e8c07f854947226c19134de1d03140f7f0eec689cf183b091c5","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"30d0f64c51e0056b0832b901d5aeaf9a011796de8a6e7f06a0ad92482853af49","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"88813c81ef3d40c79a207d04257dfed0dcc95ac2d11e911f9e60f10016a318d4","device":"264c3bd81028b74a","findings":[],"hash":"059073aa6d285d177565a06bcad9b3a21f2f764061df53baf9ab7132af77c057","nodeId":"9e743521-656c-4c1a-914e-1fe6732e27b8","outcome":"completed","summary":"Added 15 tests and expanded invariants to cover failed transfers, allowance rollback, approval isolation, and numeric boundaries.\n\n`forge build` and `forge test` pass: 43 tests, including 32,768 random handler calls. No defects found. Only files under `test/` changed.","treeHash":"c9da0bcf10a41de9b8db381a25b006dcd6ee58a1","usage":{"cachedInputTokens":687616,"inputTokens":69734,"model":"gpt-6-astra","outputTokens":9659,"runtime":"codex","turns":5,"wallClockMs":258982}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"99fdbd4812d28337","findings":[],"hash":"09a1e1331b8b3391b41e41aa4ec40a7018373e7f4633f6947529f958903fe3a9","nodeId":"ceb58661-1526-49f6-9798-e476fbd5335b","outcome":"completed","summary":"Saved [`.imd-findings.json`](/root/.identitymd/work/926e2a33-50ad-4388-8507-029e2ac93aeb/ceb58661-1526-49f6-9798-e476fbd5335b/.imd-findings.json).\n\nNo substantiated findings; all three entry points covered. All 28 local Foundry tests passed.\n\nProtected launch integration remains unverified because platform dependencies and launch inputs are absent.","treeHash":null,"usage":{"cachedInputTokens":385408,"inputTokens":79626,"model":"gpt-6-astra","outputTokens":4190,"runtime":"codex","turns":4,"wallClockMs":122855}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"194b47a372650d59","findings":[],"hash":"146927a63e5c2eb07df4d2a637a78b23dbdf3b482cf4e752372234c1d24b8e75","nodeId":"caebb611-f641-46e5-b8f2-6fdbae319267","outcome":"completed","summary":"Wrote [.imd-findings.json](/home/imd-worker/.identitymd/work/926e2a33-50ad-4388-8507-029e2ac93aeb/caebb611-f641-46e5-b8f2-6fdbae319267/.imd-findings.json): no substantiated defects; all 3 entry points marked `holds`.\n\nFoundry passed 43 tests, including 32,768 invariant calls. Full platform launch integration and authorization of the manifest’s economics remain unverified because required inputs were absent.","treeHash":null,"usage":{"cachedInputTokens":535040,"inputTokens":110358,"model":"gpt-6-astra","outputTokens":5980,"runtime":"codex","turns":4,"wallClockMs":156688}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"5c1e4764d4e20ef5","findings":[{"citation":"resolved","description":"The manifest step changed pool.fee to 12500 (launch.json:14, `\"fee\": 12500,`), which per the operator instruction is the only tier the launch policy admits and is correct. The notes string on line 19 was not updated and still says the pool uses 'a 0.3% fee' (3000 in Uniswap pips). Notes are explanatory text and not deployment authority, so nothing deploys wrongly; but the manifest now contradicts itself and a reader or admission reviewer relying on the notes is told the wrong fee tier. The fee value itself is not a finding. Fix: change the notes text to describe the 1.25% (12500) fee, keeping the string under 4,000 characters.","line":19,"path":"launch.json","reproduction":"Read launch.json. Line 14 contains `\"fee\": 12500,` (1.25% in Uniswap v4 pips, 12500/1_000_000). Line 19 notes contain the phrase `a 0.3% fee`. Expected: notes describe the same tier as pool.fee (1.25%). Actual: notes say 0.3%, i.e. 3000 pips, a different tier than the one the schema field carries. Verified with `grep -n '0.3% fee' launch.json` (line 19) and `grep -n '\"fee\"' launch.json` (line 14).","severity":"low","snippet":"\"notes\": \"PrismRiot in src/PrismRiot.sol is an ERC-20 with no constructor arguments. Its constructor mints all 1,000,000,000 PRIO with 18 decimals to msg.sender once. It has no administrative role, subsequent minting, transfer tax, or initialization calls. No application contracts are deployed. The pool uses the specified paired ERC-20 currency, a 0.3% fee, and tick spacing 60.","title":"launch.json notes still describe the pool fee as 0.3% while pool.fee is 12500 (1.25%)"},{"citation":"resolved","description":"lib/dependencies.json pins forge-std at v1.9.7 commit 77041d2 and records per-file SHA-256 checksums. Seven vendored forge-std files (src/StdAssertions.sol, src/StdJson.sol, src/StdToml.sol, src/Vm.sol, src/console.sol, src/interfaces/IERC7540.sol, src/interfaces/IMulticall3.sol) hash differently from the recorded values, and the recorded values are the true hashes of upstream commit 77041d2 (fetched and compared). The local files therefore come from some other forge-std revision than the one documented. README.md:133 states 'All 36 vendored files matched their recorded SHA-256 checksums', which is false for these seven. All six vendored OpenZeppelin v5.0.2 files match both the recorded checksums and upstream commit dbb6104 byte for byte, so the production token's dependency provenance is intact. forge-std is test-only, is not in the token's creation or runtime bytecode, and the suite compiles and passes (43 tests) with the files as vendored. No funds or launch impact; provenance documentation only. Fix: either re-vendor forge-std from 77041d2 or re-record the checksums and the actual commit, and correct README.md:133.","line":39,"path":"lib/dependencies.json","reproduction":"Run from the repo root: python3 -c \"import json,hashlib,os; d=json.load(open('lib/dependencies.json')); [print(f) for e in d for f,h in e['files_sha256'].items() if hashlib.sha256(open(os.path.join('lib',e['directory'],f),'rb').read()).hexdigest()!=h]\". Expected (per README.md:133 and dependencies.json): no output. Actual: seven forge-std paths are printed; e.g. sha256 of lib/forge-std/src/Vm.sol starts a1b1c82924ae, while the recorded (and upstream 77041d2) hash is 9068805b59ac... No OpenZeppelin path is printed.","severity":"info","snippet":"      \"src/Vm.sol\": \"9068805b59ac1d0ea03a8fa1f15ae49c094e0c6c852a2500e0dd112f264b2cb1\",","title":"Vendored forge-std files do not match the SHA-256 checksums recorded in lib/dependencies.json; README's 'all 36 files matched' claim is stale"}],"hash":"70ae633c29f278044202f6a91b44652ec425d4f74281edb83cc9e5d21b86bce6","nodeId":"caebb611-f641-46e5-b8f2-6fdbae319267","outcome":"completed","summary":"Review complete. The findings file is written at `.imd-findings.json` with two findings and seven coverage rows, and no tracked file was changed.\n\n**Outcome:** the token holds. All three state-changing entry points behave as intended, and no specialist finding existed to reproduce or merge. The two items I report are manifest text and dependency provenance, not token defects.\n\n**What I verified against the code**\n\n- The vendored OpenZeppelin ERC20, Context and interface files are byte-identical to upstream v5.0.2 at the pinned commit. PrismRiot adds only a constructor that mints 1e27 to the caller once.\n- The compiled ABI exposes only approve, transfer and transferFrom as state-changing. Admin selector probes from the factory address revert, and supply cannot grow.\n- The runtime bytecode contains no DELEGATECALL, CALLCODE, SELFDESTRUCT, CALL, STATICCALL or CREATE opcodes, and bytecode_hash is none.\n- Factory-to-distributor, distributor-to-claimant and pool-manager in-and-out transfers deliver exact amounts. The project suite passed 43 tests including a 32,768-call invariant run with zero reverts, and my scratch test mirroring the protected harness flows passed before I removed it.\n- launch.json has only schema keys, lowercase addresses, empty constructorArgs matching the zero-parameter constructor, totalSupply equal to the minted amount, and an initialPrice that matches my own recomputation exactly. Per the operator, pool.fee 12500 is correct and I did not flag it.\n\n**Findings kept**\n\n- **Low, launch.json line 19.** The notes string still says the pool uses a 0.3% fee while pool.fee is 12500 (1.25%). The value is right; the explanatory text was not updated with it.\n- **Info, lib/dependencies.json line 39.** Seven vendored forge-std files do not match the recorded v1.9.7 checksums, which I confirmed are the true upstream hashes. README's claim that all 36 files matched is stale. Test-only, no production impact.\n\n**Coverage:** approve, transfer and transferFrom each marked holds with the trace stated. Two extra rows for the manifest and dependency provenance point at the findings above.","treeHash":null,"usage":{"cachedInputTokens":541314,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":14213,"runtime":"claude","turns":18,"wallClockMs":210426}},{"artifacts":[],"attempt":1,"bundleHash":"82b5586b0b669d180c632825b5f384e3325591fe36e9d508d1914077d6f2b733","device":"1c0fa8d0cf677236","findings":[],"hash":"9a88cdb42d906312d9f9ebbb6f0e3f43e3d47216d34db2b15906bafdb4668dcd","nodeId":"2d4fbb9c-a4bd-4eae-9c9e-631d2aa1c48b","outcome":"completed","summary":"Created `launch.json` matching PrismRiot’s constructor, exact supply, paired currency, and verbatim economics.\n\nSchema and ABI checks passed. `forge build` succeeded; `forge test` passed all 28 tests.\n\nOnly `launch.json` changed outside permitted scratch output.","treeHash":"caa1b00da75b875217cce929578cd609311766c1","usage":{"cachedInputTokens":258560,"inputTokens":36370,"model":"gpt-6-astra","outputTokens":3624,"runtime":"codex","turns":4,"wallClockMs":104495}},{"artifacts":[],"attempt":1,"bundleHash":"4f0a80e8e23875bcacc0aaab643cf9bc986d8f76ebdbadfd08587f398861ca18","device":"5f419f6fdfb42f37","findings":[],"hash":"9f43f984cd3f6e8c07f854947226c19134de1d03140f7f0eec689cf183b091c5","nodeId":"2d4fbb9c-a4bd-4eae-9c9e-631d2aa1c48b","outcome":"completed","summary":"Changed only `pool.fee` in `launch.json` from `3000` to `12500`. Every other byte is preserved.\n\nManifest checks and `forge build` passed. `forge test` passed all 28 tests. No other deliverable changed.","treeHash":"93a572b9615ff142c3ba6b417c428d6553760688","usage":{"cachedInputTokens":187904,"inputTokens":15239,"model":"gpt-6-astra","outputTokens":1618,"runtime":"codex","turns":2,"wallClockMs":78828}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"b6e7758e5e0349d3","findings":[],"hash":"b2b91a9e04a82e7e0a7520baf318ce91e73bbda39ca691d069bfa7518fc42fd2","nodeId":"84d57826-416a-478b-819c-eacf9a473b0c","outcome":"completed","summary":"Recorded no substantiated defects in [.imd-findings.json](/root/.identitymd/work/926e2a33-50ad-4388-8507-029e2ac93aeb/84d57826-416a-478b-819c-eacf9a473b0c/.imd-findings.json), with all three entry points covered.\n\nAll 28 Foundry tests passed, including 8,192 invariant calls. Full protected launch integration remains unverified because platform dependencies and launch inputs were unavailable. No source or configuration files changed.","treeHash":null,"usage":{"cachedInputTokens":488704,"inputTokens":82186,"model":"gpt-6-astra","outputTokens":4526,"runtime":"codex","turns":4,"wallClockMs":133348}},{"artifacts":[],"attempt":1,"bundleHash":"a4e9f1edcb4932c65f918834803c98c10433e4a919e44c7c2c6d1b478d9a554e","device":"165e283901cb9619","findings":[],"hash":"e910abe620ecd1e90a315dc7ec4eb3ae07519ca5c955df95e02ed2b34b2dbbea","nodeId":"046e3b6a-f70b-4e3a-88e6-2a2a14e2365e","outcome":"completed","summary":"Implemented PrismRiot (PRIO): 1 billion tokens, 18 decimals, minted once to the deployer. No later minting or administrative powers.\n\nIncluded offline dependencies, success/failure tests, fuzz and invariant coverage, and deployment documentation.\n\nVerified: `forge build`, `forge test` (28 passed), and `forge fmt --check` with Solidity 0.8.26.","treeHash":"1f0f7b82e3217fd99053bfdb6a6c7ccc07764cea","usage":{"cachedInputTokens":344064,"inputTokens":52598,"model":"gpt-6-astra","outputTokens":12686,"runtime":"codex","turns":5,"wallClockMs":300919}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"0b3b16f4e82a0732","findings":[],"hash":"f883cf4693e1477f3f8d2117f19d81813a628a3afebe1e0713f2bfba88999f30","nodeId":"124cbb2c-795b-4701-895b-b191b6d54f89","outcome":"completed","summary":"Wrote `.imd-findings.json`: no substantiated defects; all three entry points covered.\n\nOffline build, formatting, and 28 tests passed, including a second fuzz seed with 1,024 runs per fuzz test. Source files remain unchanged.\n\nFull platform launch integration remains unverified because required contracts and deployment fixtures are absent.","treeHash":null,"usage":{"cachedInputTokens":738560,"inputTokens":78002,"model":"gpt-6-astra","outputTokens":4792,"runtime":"codex","turns":4,"wallClockMs":159155}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"4576f670afa0131d","findings":[],"hash":"fc1f660352c0a03b48bf71337cf6ca795a2ac62a6eaa7639fd245e0bfc4f27d9","nodeId":"d9cca2b8-aea4-4ec1-afa6-c55bf9d0e7d6","outcome":"completed","summary":"Wrote [.imd-findings.json](/home/seat13/.identitymd/work/926e2a33-50ad-4388-8507-029e2ac93aeb/d9cca2b8-aea4-4ec1-afa6-c55bf9d0e7d6/.imd-findings.json) with **no substantiated defects** and coverage for all three entry points.\n\nOffline build, formatting check, all 28 tests, and second-seed fuzz testing passed.\n\nThe protected seed-and-swap test remains unverified because platform dependencies and launch inputs are absent.","treeHash":null,"usage":{"cachedInputTokens":388480,"inputTokens":73034,"model":"gpt-6-astra","outputTokens":4500,"runtime":"codex","turns":4,"wallClockMs":131347}}],"verification":[{"checks":[{"durationMs":1206,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.11s\nCompiler run successful!\n","passed":true},{"durationMs":6357,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 42 tests for test/PrismRiot.t.sol:PrismRiotTest\n[PASS] testFuzz_approvalsAreIdempotentAndIsolated(uint256,uint256) (runs: 1000, μ: 314932, ~: 315695)\n[PASS] testFuzz_cannotTransferAboveSupply(uint256) (runs: 1000, μ: 61715, ~: 62044)\nLogs:\n  Bound result 1389965878350381805779943514358097742927287666204149678698531703955082689\n\n[PASS] testFuzz_failedDelegatedTransferPreservesApproval(uint256,uint256) (runs: 1000, μ: 211221, ~: 211933)\nLogs:\n  Bound result 404011937\n  Bound result 137772686790900167261576111842264811949250443476\n\n[PASS] testFuzz_insufficientAllowancePreservesState(uint256,uint256) (runs: 1000, μ: 138270, ~: 138627)\nLogs:\n  Bound result 848\n  Bound result 999999999999999999999999237\n\n[PASS] testFuzz_transferFromConservesSupplyAndAllowance(uint256,uint256) (runs: 1000, μ: 168472, ~: 170094)\nLogs:\n  Bound result 363330345434717333735153383\n  Bound result 90157\n\n[PASS] testFuzz_transferToAnyNonzeroRecipientIsExact(uint160,uint256) (runs: 1000, μ: 100865, ~: 100932)\nLogs:\n  Bound result 45594\n  Bound result 5880131566127493587300084\n\n[PASS] testFuzz_transferToZeroAlwaysReverts(uint256) (runs: 1000, μ: 64409, ~: 64145)\nLogs:\n  Bound result 424206165730399839378176829\n\n[PASS] testFuzz_transfersConserveSupply(uint256,uint256) (runs: 1000, μ: 136620, ~: 137163)\nLogs:\n  Bound result 20207\n  Bound result 16199\n\n[PASS] test_approvalCannotBeUsedAgainstDifferentOwner() (gas: 190680)\n[PASS] test_approvalDoesNotAuthorizeAnotherSpender() (gas: 110059)\n[PASS] test_approveEmitsEventAndCanBeReplacedAndRevoked() (gas: 204989)\n[PASS] test_approveZeroSpenderReverts() (gas: 40208)\n[PASS] test_canTransferEntireSupply() (gas: 78370)\n[PASS] test_constructorEmitsMintTransfer() (gas: 14166)\n[PASS] test_deployerCannotSpendHolderTokensWithoutApproval() (gas: 98247)\n[PASS] test_emptyAccountCannotTransfer() (gas: 44887)\n[PASS] test_emptyHolderCanApproveThenSpendOnlyAfterReceivingTokens() (gas: 285845)\n[PASS] test_exhaustedApprovalCannotBeReplayed() (gas: 175135)\n[PASS] test_factoryGetsSupplyAndForwardsExactLaunchAmounts() (gas: 662492)\n[PASS] test_maxAllowanceIsNotDecremented() (gas: 144250)\n[PASS] test_maxMinusOneAllowanceIsFinite() (gas: 152337)\n[PASS] test_maxUintDelegatedTransferCannotBypassBalanceCheck() (gas: 133953)\n[PASS] test_maxUintTransferRevertsWithoutOverflowOrBalanceChanges() (gas: 68109)\n[PASS] test_metadataAndEntireSupplyBelongToDeployer() (gas: 109628)\n[PASS] test_nativeCurrencyIsRejected() (gas: 40106)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1160459)\n[PASS] test_oneWeiRoundTripIsExact() (gas: 151862)\n[PASS] test_ownerTransferFromStillRequiresSelfApproval() (gas: 200501)\n[PASS] test_replacingInfiniteApprovalRestoresFiniteLimit() (gas: 209824)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 1037986)\n[PASS] test_selfTransferCannotExceedBalance() (gas: 53467)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 54186)\n[PASS] test_transferAboveBalanceRevertsWithoutChanges() (gas: 68009)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 96196)\n[PASS] test_transferFromAboveAllowanceRevertsWithoutChanges() (gas: 120594)\n[PASS] test_transferFromAboveBalanceRollsBackAllowance() (gas: 126702)\n[PASS] test_transferFromConsumesAllowanceAndEmitsTransfer() (gas: 249239)\n[PASS] test_transferFromToSelfConsumesAllowanceWithoutChangingBalance() (gas: 108167)\n[PASS] test_transferFromZeroRecipientRollsBackAllowance() (gas: 129385)\n[PASS] test_zeroAmountDoesNotPermitZeroRecipientOrSpender() (gas: 154455)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 63025)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 78750)\nSuite result: ok. 42 passed; 0 failed; 0 skipped; finished in 62.81ms (488.72ms CPU time)\n\nRan 1 test for test/PrismRiot.invariant.t.sol:PrismRiotInvariantTest\n[PASS]\nPrismRiotInvariantTest invariants:\n[PASS] invariant_allowancesMatchIndependentModel\n[PASS] invariant_supplyAndBalancesMatchIndependentModel\n PrismRiotInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭--------------+--------------------------+-------+---------+----------╮\n| Contract     | Selector                 | Calls | Reverts | Discards |\n+======================================================================+\n| TokenHandler | approve                  | 3633  | 0       | 0        |\n|--------------+--------------------------+-------+---------+----------|\n| TokenHandler | approveZeroSpender       | 3631  | 0       | 0        |\n|--------------+--------------------------+-------+---------+----------|\n| TokenHandler | revokeAndReject          | 3672  | 0       | 0        |\n|--------------+--------------------------+-------+---------+----------|\n| TokenHandler | transfer                 | 3646  | 0       | 0        |\n|--------------+--------------------------+-------+---------+----------|\n| TokenHandler | transferAboveBalance     | 3670  | 0       | 0        |\n|--------------+--------------------------+-------+---------+----------|\n| TokenHandler | transferFrom             | 3587  | 0       | 0        |\n|--------------+--------------------------+-------+---------+----------|\n| TokenHandler | transferFromAboveBalance | 3716  | 0       | 0        |\n|--------------+--------------------------+-------+---------+----------|\n| TokenHandler | transferFromToZero       | 3562  | 0       | 0        |\n|--------------+--------------------------+-------+---------+----------|\n| TokenHandler | transferToZero           | 3651  | 0       | 0        |\n╰--------------+--------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 250000000000000000000000000\n  Bound result 250000000000000000000000000\n  Bound result 250000000000000000000000000\n  Bound result 4\n  Bound result 219192373550246231579741456\n  Bound result 0\n  Bound result 0\n  Bound result 244\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913379639935\n  Bound result 6182\n  Bound result 250000000000000000000000004\n  Bound result 957625571\n  Bound result 62877254005940\n  Bound result 10000000000000000000\n  Bound result 4906\n  Bound result 60000000000000000000\n  Bound result 1000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 40000000000000000000\n  Bound result 115792089237316195423570985008687907853269984665640314039407584007913129648880\n  Bound result 6358\n  Bound result 115792089237316195423570985008687907853269984665640314039517584007913129633585\n  Bound result 12\n  Bound result 250000050000000000000000002\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640314039517584007913129633582\n  Bound result 8800\n  Bound result 177362147\n  Bound result 115792089237316195423570985008687907853269984665640314039530584007913129639935\n  Bound result 115792089237316195423570985008687907853269984665640314039557584007913129633577\n  Bound result 878\n  Bound result 2430412327\n  Bound result 7773406862267473757212595604277591705757921800753838848358266631769091742511\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639933\n  Bound result 9721549184758903959552222947350412511475267154643939643066615\n  Bound result 3114\n  Bound result 115792089237316195423570985008687907853269984665640533231822134317021963398244\n  Bound result 24471969260124736425365213\n  Bound result 0\n  Bound result 558896593998549167513810917379\n  Bound result 115792089237316195423570985008687907853269984665640314039408584007913129639935\n  Bound result 115792089237316195423570985008687907853269984665640070375113773574067870527332\n  Bound result 206\n  Bound result 249999940000000000000006152\n  Bound result 125000000\n  Bound result 0\n  Bound result 24576\n  Bound result 0\n  Bound result 1000000000000000000\n  Bound result 0\n  Bound result 24576\n  Bound result 335\n  Bound result 6198\n  Bound result 115792089237316195423570985008687907853269984665640314039407584007913129620687\n  Bound result 1000000000\n  Bound result 115792089237316195423570985008687907853269984665640314039407584007913129615492\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640314039530584007913129615359\n  Bound result 115792089237316195423570985008687907853269984665640314039517584007913129658698\n  Bound result 10\n  Bound result 1468\n  Bound result 651\n  Bound result 1000000000\n  Bound result 0\n  Bound result 4\n  Bound result 0\n  Bound result 100389287136786176327247604509743168900146139575972864366142685224231313322990\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640314039407584007913129621033\n  Bound result 115792089237316195423570985008687907853269984665640314039408584007913129616010\n  Bound result 115792089237316195423570985008687907853269984665640344847034033761681549874554\n  Bound result 3895\n  Bound result 115792089237316195423570985008687907853269984665640557703831394441759388757916\n  Bound result 100000000000000000000\n  Bound result 24471969260124736425365213\n  Bound result 244\n  Bound result 651\n  Bound result 1\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640314039407883870626380054041\n  Bound result 0\n  Bound result 0\n  Bound result 712\n  Bound result 115792089237316195423570985008687907853269984665640314039517584007912129658697\n  Bound result 115792089237316195423570985008687907853269984665640557703831394441759388758629\n  Bound result 1203\n  Bound result 0\n  Bound result 115792089237316195423570985008687907853269984665640070375113773574067870528052\n  Bound result 6932\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 6.28s (6.28s CPU time)\n\nRan 2 test suites in 6.28s (6.34s CPU time): 43 tests passed, 0 failed, 0 skipped (43 total tests)\n","passed":true},{"durationMs":42,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PrismRiot.approve(address,uint256)\",\"PrismRiot.transfer(address,uint256)\",\"PrismRiot.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":135,\"foundry.toml\":18,\"remappings.txt\":2,\"src/PrismRiot.sol\":16,\"test/PrismRiot.invariant.t.sol\":179,\"test/PrismRiot.t.sol\":602},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"059073aa6d285d177565a06bcad9b3a21f2f764061df53baf9ab7132af77c057","verifiedTreeHash":"c9da0bcf10a41de9b8db381a25b006dcd6ee58a1","verifierVersion":"0.1.0+c7a9afef"},{"checks":[{"durationMs":1071,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 965.86ms\nCompiler run successful!\n","passed":true},{"durationMs":1761,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 27 tests for test/PrismRiot.t.sol:PrismRiotTest\n[PASS] testFuzz_cannotTransferAboveSupply(uint256) (runs: 256, μ: 61566, ~: 61926)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129640179\n\n[PASS] testFuzz_transferFromConservesSupplyAndAllowance(uint256,uint256) (runs: 256, μ: 168075, ~: 170047)\nLogs:\n  Bound result 7\n  Bound result 4\n\n[PASS] testFuzz_transferToZeroAlwaysReverts(uint256) (runs: 256, μ: 64400, ~: 64122)\nLogs:\n  Bound result 8\n\n[PASS] testFuzz_transfersConserveSupply(uint256,uint256) (runs: 256, μ: 136380, ~: 137049)\nLogs:\n  Bound result 4202047189\n  Bound result 14230\n\n[PASS] test_approvalDoesNotAuthorizeAnotherSpender() (gas: 110036)\n[PASS] test_approveEmitsEventAndCanBeReplacedAndRevoked() (gas: 205053)\n[PASS] test_approveZeroSpenderReverts() (gas: 40230)\n[PASS] test_canTransferEntireSupply() (gas: 78347)\n[PASS] test_constructorEmitsMintTransfer() (gas: 14143)\n[PASS] test_deployerCannotSpendHolderTokensWithoutApproval() (gas: 98224)\n[PASS] test_emptyAccountCannotTransfer() (gas: 44887)\n[PASS] test_factoryGetsSupplyAndForwardsExactLaunchAmounts() (gas: 662470)\n[PASS] test_maxAllowanceIsNotDecremented() (gas: 144250)\n[PASS] test_metadataAndEntireSupplyBelongToDeployer() (gas: 109650)\n[PASS] test_nativeCurrencyIsRejected() (gas: 40061)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1160481)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 1037963)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 54163)\n[PASS] test_transferAboveBalanceRevertsWithoutChanges() (gas: 67944)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 96240)\n[PASS] test_transferFromAboveAllowanceRevertsWithoutChanges() (gas: 120594)\n[PASS] test_transferFromAboveBalanceRollsBackAllowance() (gas: 126682)\n[PASS] test_transferFromConsumesAllowanceAndEmitsTransfer() (gas: 249239)\n[PASS] test_transferFromToSelfConsumesAllowanceWithoutChangingBalance() (gas: 108144)\n[PASS] test_transferFromZeroRecipientRollsBackAllowance() (gas: 129407)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 63025)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 78727)\nSuite result: ok. 27 passed; 0 failed; 0 skipped; finished in 9.32ms (35.42ms CPU time)\n\nRan 1 test for test/PrismRiot.invariant.t.sol:PrismRiotInvariantTest\n[PASS]\nPrismRiotInvariantTest invariants:\n[PASS] invariant_allowancesMatchIndependentModel\n[PASS] invariant_supplyAndBalancesMatchIndependentModel\n PrismRiotInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+--------------+-------+---------+----------╮\n| Contract     | Selector     | Calls | Reverts | Discards |\n+==========================================================+\n| TokenHandler | approve      | 2752  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transfer     | 2705  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transferFrom | 2735  | 0       | 0        |\n╰--------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 6224\n  Bound result 0\n  Bound result 5632\n  Bound result 0\n  Bound result 0\n  Bound result 1\n  Bound result 393140329558425172260027734\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 127\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 5292\n  Bound result 0\n  Bound result 0\n  Bound result 40000000000000000000\n  Bound result 489345172110857672650195938\n  Bound result 180327390\n  Bound result 0\n  Bound result 5940\n  Bound result 0\n  Bound result 414563403145276208973533854\n  Bound result 1084484274\n  Bound result 2685\n  Bound result 11\n  Bound result 0\n  Bound result 65098580837091196958177726\n  Bound result 1\n  Bound result 4\n  Bound result 0\n  Bound result 40000000000000000000\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.69s (1.69s CPU time)\n\nRan 2 test suites in 1.69s (1.70s CPU time): 28 tests passed, 0 failed, 0 skipped (28 total tests)\n","passed":true},{"durationMs":34,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PrismRiot.approve(address,uint256)\",\"PrismRiot.transfer(address,uint256)\",\"PrismRiot.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":135,\"foundry.toml\":18,\"launch.json\":20,\"remappings.txt\":2,\"src/PrismRiot.sol\":16,\"test/PrismRiot.invariant.t.sol\":92,\"test/PrismRiot.t.sol\":380},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"9a88cdb42d906312d9f9ebbb6f0e3f43e3d47216d34db2b15906bafdb4668dcd","verifiedTreeHash":"caa1b00da75b875217cce929578cd609311766c1","verifierVersion":"0.1.0+d03e3429"},{"checks":[{"durationMs":1024,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 925.87ms\nCompiler run successful!\n","passed":true},{"durationMs":1760,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 27 tests for test/PrismRiot.t.sol:PrismRiotTest\n[PASS] testFuzz_cannotTransferAboveSupply(uint256) (runs: 256, μ: 61611, ~: 61926)\nLogs:\n  Bound result 6552794347722690347236949680822505992887\n\n[PASS] testFuzz_transferFromConservesSupplyAndAllowance(uint256,uint256) (runs: 256, μ: 168711, ~: 170089)\nLogs:\n  Bound result 962567420727136464392249380\n  Bound result 315397020744923040271344130\n\n[PASS] testFuzz_transferToZeroAlwaysReverts(uint256) (runs: 256, μ: 64361, ~: 64110)\nLogs:\n  Bound result 266518288104381084139667018\n\n[PASS] testFuzz_transfersConserveSupply(uint256,uint256) (runs: 256, μ: 136827, ~: 137097)\nLogs:\n  Bound result 9510\n  Bound result 700\n\n[PASS] test_approvalDoesNotAuthorizeAnotherSpender() (gas: 110036)\n[PASS] test_approveEmitsEventAndCanBeReplacedAndRevoked() (gas: 205053)\n[PASS] test_approveZeroSpenderReverts() (gas: 40230)\n[PASS] test_canTransferEntireSupply() (gas: 78347)\n[PASS] test_constructorEmitsMintTransfer() (gas: 14143)\n[PASS] test_deployerCannotSpendHolderTokensWithoutApproval() (gas: 98224)\n[PASS] test_emptyAccountCannotTransfer() (gas: 44887)\n[PASS] test_factoryGetsSupplyAndForwardsExactLaunchAmounts() (gas: 662470)\n[PASS] test_maxAllowanceIsNotDecremented() (gas: 144250)\n[PASS] test_metadataAndEntireSupplyBelongToDeployer() (gas: 109650)\n[PASS] test_nativeCurrencyIsRejected() (gas: 40061)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1160481)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 1037963)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 54163)\n[PASS] test_transferAboveBalanceRevertsWithoutChanges() (gas: 67944)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 96240)\n[PASS] test_transferFromAboveAllowanceRevertsWithoutChanges() (gas: 120594)\n[PASS] test_transferFromAboveBalanceRollsBackAllowance() (gas: 126682)\n[PASS] test_transferFromConsumesAllowanceAndEmitsTransfer() (gas: 249239)\n[PASS] test_transferFromToSelfConsumesAllowanceWithoutChangingBalance() (gas: 108144)\n[PASS] test_transferFromZeroRecipientRollsBackAllowance() (gas: 129407)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 63025)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 78727)\nSuite result: ok. 27 passed; 0 failed; 0 skipped; finished in 8.92ms (38.34ms CPU time)\n\nRan 1 test for test/PrismRiot.invariant.t.sol:PrismRiotInvariantTest\n[PASS]\nPrismRiotInvariantTest invariants:\n[PASS] invariant_allowancesMatchIndependentModel\n[PASS] invariant_supplyAndBalancesMatchIndependentModel\n PrismRiotInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+--------------+-------+---------+----------╮\n| Contract     | Selector     | Calls | Reverts | Discards |\n+==========================================================+\n| TokenHandler | approve      | 2759  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transfer     | 2746  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transferFrom | 2687  | 0       | 0        |\n╰--------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 37\n  Bound result 31\n  Bound result 2\n  Bound result 22\n  Bound result 10\n  Bound result 5106408117879078257389995\n  Bound result 0\n  Bound result 0\n  Bound result 8\n  Bound result 0\n  Bound result 3\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 12\n  Bound result 0\n  Bound result 5712\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 15\n  Bound result 0\n  Bound result 0\n  Bound result 3\n  Bound result 33993943466154142520100\n  Bound result 0\n  Bound result 16\n  Bound result 8\n  Bound result 4879\n  Bound result 8\n  Bound result 6\n  Bound result 1\n  Bound result 2\n  Bound result 3\n  Bound result 8\n  Bound result 7\n  Bound result 8\n  Bound result 127\n  Bound result 0\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.69s (1.68s CPU time)\n\nRan 2 test suites in 1.69s (1.69s CPU time): 28 tests passed, 0 failed, 0 skipped (28 total tests)\n","passed":true},{"durationMs":33,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PrismRiot.approve(address,uint256)\",\"PrismRiot.transfer(address,uint256)\",\"PrismRiot.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":135,\"foundry.toml\":18,\"launch.json\":20,\"remappings.txt\":2,\"src/PrismRiot.sol\":16,\"test/PrismRiot.invariant.t.sol\":92,\"test/PrismRiot.t.sol\":380},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"9f43f984cd3f6e8c07f854947226c19134de1d03140f7f0eec689cf183b091c5","verifiedTreeHash":"93a572b9615ff142c3ba6b417c428d6553760688","verifierVersion":"0.1.0+e18fba72"},{"checks":[{"durationMs":986,"exitCode":0,"name":"build","output":"Compiling 27 files with Solc 0.8.26\nSolc 0.8.26 finished in 892.60ms\nCompiler run successful!\n","passed":true},{"durationMs":1667,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 27 tests for test/PrismRiot.t.sol:PrismRiotTest\n[PASS] testFuzz_cannotTransferAboveSupply(uint256) (runs: 256, μ: 61558, ~: 61926)\nLogs:\n  Bound result 15140681398886303566213388493705832803717373542910685935641861821965772828083\n\n[PASS] testFuzz_transferFromConservesSupplyAndAllowance(uint256,uint256) (runs: 256, μ: 168101, ~: 170095)\nLogs:\n  Bound result 454749545634356722947524035\n  Bound result 237408800406568227507300758\n\n[PASS] testFuzz_transferToZeroAlwaysReverts(uint256) (runs: 256, μ: 64418, ~: 64146)\nLogs:\n  Bound result 665526469231824511138756864\n\n[PASS] testFuzz_transfersConserveSupply(uint256,uint256) (runs: 256, μ: 136599, ~: 137115)\nLogs:\n  Bound result 454749545634356722947524035\n  Bound result 237408800406568227507300758\n\n[PASS] test_approvalDoesNotAuthorizeAnotherSpender() (gas: 110036)\n[PASS] test_approveEmitsEventAndCanBeReplacedAndRevoked() (gas: 205053)\n[PASS] test_approveZeroSpenderReverts() (gas: 40230)\n[PASS] test_canTransferEntireSupply() (gas: 78347)\n[PASS] test_constructorEmitsMintTransfer() (gas: 14143)\n[PASS] test_deployerCannotSpendHolderTokensWithoutApproval() (gas: 98224)\n[PASS] test_emptyAccountCannotTransfer() (gas: 44887)\n[PASS] test_factoryGetsSupplyAndForwardsExactLaunchAmounts() (gas: 662470)\n[PASS] test_maxAllowanceIsNotDecremented() (gas: 144250)\n[PASS] test_metadataAndEntireSupplyBelongToDeployer() (gas: 109650)\n[PASS] test_nativeCurrencyIsRejected() (gas: 40061)\n[PASS] test_noMintBurnAdminOrUpgradeEntrypoints() (gas: 1160481)\n[PASS] test_runtimeHasNoForbiddenOpcodes() (gas: 1037963)\n[PASS] test_selfTransferDoesNotChangeBalance() (gas: 54163)\n[PASS] test_transferAboveBalanceRevertsWithoutChanges() (gas: 67944)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 96240)\n[PASS] test_transferFromAboveAllowanceRevertsWithoutChanges() (gas: 120594)\n[PASS] test_transferFromAboveBalanceRollsBackAllowance() (gas: 126682)\n[PASS] test_transferFromConsumesAllowanceAndEmitsTransfer() (gas: 249239)\n[PASS] test_transferFromToSelfConsumesAllowanceWithoutChangingBalance() (gas: 108144)\n[PASS] test_transferFromZeroRecipientRollsBackAllowance() (gas: 129407)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 63025)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 78727)\nSuite result: ok. 27 passed; 0 failed; 0 skipped; finished in 8.37ms (33.05ms CPU time)\n\nRan 1 test for test/PrismRiot.invariant.t.sol:PrismRiotInvariantTest\n[PASS]\nPrismRiotInvariantTest invariants:\n[PASS] invariant_allowancesMatchIndependentModel\n[PASS] invariant_supplyAndBalancesMatchIndependentModel\n PrismRiotInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭--------------+--------------+-------+---------+----------╮\n| Contract     | Selector     | Calls | Reverts | Discards |\n+==========================================================+\n| TokenHandler | approve      | 2668  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transfer     | 2769  | 0       | 0        |\n|--------------+--------------+-------+---------+----------|\n| TokenHandler | transferFrom | 2755  | 0       | 0        |\n╰--------------+--------------+-------+---------+----------╯\n\nLogs:\n  Bound result 40000000000000000000\n  Bound result 2655\n  Bound result 0\n  Bound result 0\n  Bound result 20442321521095281435\n  Bound result 307\n  Bound result 5759\n  Bound result 3013\n  Bound result 611\n  Bound result 10000000000000000000\n  Bound result 6\n  Bound result 0\n  Bound result 5083\n  Bound result 0\n  Bound result 140\n  Bound result 12\n  Bound result 24576\n  Bound result 413\n  Bound result 4193\n  Bound result 60000000000000000000\n  Bound result 242\n  Bound result 9557678478904724233\n  Bound result 11\n  Bound result 0\n  Bound result 0\n  Bound result 19557678478904721219\n  Bound result 251692636423034160104201082\n  Bound result 0\n  Bound result 270\n  Bound result 100000000000000000000\n  Bound result 0\n  Bound result 2884\n  Bound result 6445982154791753845\n  Bound result 7\n  Bound result 2544\n  Bound result 280\n  Bound result 6445982154791754086\n  Bound result 2379\n  Bound result 9\n  Bound result 68\n  Bound result 48590121051983536279\n  Bound result 331\n  Bound result 498\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.59s (1.59s CPU time)\n\nRan 2 test suites in 1.60s (1.60s CPU time): 28 tests passed, 0 failed, 0 skipped (28 total tests)\n","passed":true},{"durationMs":31,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PrismRiot.approve(address,uint256)\",\"PrismRiot.transfer(address,uint256)\",\"PrismRiot.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":135,\"foundry.toml\":18,\"remappings.txt\":2,\"src/PrismRiot.sol\":16,\"test/PrismRiot.invariant.t.sol\":92,\"test/PrismRiot.t.sol\":380},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":373,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":207,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/PrismRiot.sol:10: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"e910abe620ecd1e90a315dc7ec4eb3ae07519ca5c955df95e02ed2b34b2dbbea","verifiedTreeHash":"1f0f7b82e3217fd99053bfdb6a6c7ccc07764cea","verifierVersion":"0.1.0+d03e3429"}]}