{"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":"5b04f6ec-08c9-4faf-a6ff-28f1e6a3cd00","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"652059f9d70db64ece03f72fbfd6726b9a40140144b44cf8835e2d778ca71708","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":"bbf05879f2c30bfb9ea3f06750910dd0089b8b2f71085f35c8f6eebfd0188147","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":"f1558b3e5a0c9fe3f7081b37277adb349ad9da7a99826a5c70427ed4530ace2b","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":"f540992fa29d1705ed06c7f8ebf4be7092041422756eaee097c812b86fbdb476","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":"dbcdad5159e12ad3358a081def61098a5e31d56cb7f5d4358b6934e5c86495d1","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":"003c8127fd8f7ac1b8f9321bbbcfb3ec5847b947522a195b9b49ac79353b1693","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":"8d4182c3fb51013a140d44942a69fd1d5b0a4cef39a421b78431bf942990bae8","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"943a708f829d949e6d03613c47dd58a40071ef934e51e75f86e357b99e9efbcc","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: PredictFWA (PFWA).\nToken name: PredictFWA\nToken symbol: PFWA\nToken supply: 1,000,000,000 with 18 decimals, all minted once to the deployer in the constructor.","parentJobId":null,"planHash":"30a98606af8ec22bdd5c10e25d60ca8626c2c984d1e7a1a60726469cbab67d8f","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"5b04f6ec-08c9-4faf-a6ff-28f1e6a3cd00","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-1789-predictfwa"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52120","feedbackHash":"495d1c0b3ad1840bbdd593e4d0f1db9af1066cd3b8bc53f62965f896cf1be9ba","nodeKey":"audit_economics","submissionHash":"652059f9d70db64ece03f72fbfd6726b9a40140144b44cf8835e2d778ca71708","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52323","feedbackHash":"ba4503456a499ce9885b7754be1742d5aa8548e9b5f3beabdaac54ecc723bff0","nodeKey":"audit_flow","submissionHash":"bbf05879f2c30bfb9ea3f06750910dd0089b8b2f71085f35c8f6eebfd0188147","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51450","feedbackHash":"0dd0bb4be249c3a4e20db1542ea443a5b1171b07055527cf46d498f3dfe88123","nodeKey":"audit_judge","submissionHash":"f1558b3e5a0c9fe3f7081b37277adb349ad9da7a99826a5c70427ed4530ace2b","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"50985","feedbackHash":"3a51e0bb6096c5ebc4309d22f5d5c08ae50ad43f17d3897935847f690ee03e7d","nodeKey":"audit_math","submissionHash":"f540992fa29d1705ed06c7f8ebf4be7092041422756eaee097c812b86fbdb476","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52193","feedbackHash":"3ecb3f044ab0ec0010c0e8db6174e284529b2370723e33b0647708b82676d920","nodeKey":"audit_permissions","submissionHash":"dbcdad5159e12ad3358a081def61098a5e31d56cb7f5d4358b6934e5c86495d1","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52714","feedbackHash":"e2aff0d40f3cb4911629f195a9e79d94b6a75229fb5211430a8c662dd7a1b481","nodeKey":"build_contract_project","submissionHash":"003c8127fd8f7ac1b8f9321bbbcfb3ec5847b947522a195b9b49ac79353b1693","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52716","feedbackHash":"f48f89c340e78aa4d2f9e11aef4927094abda1718bb7ff847637dfa55d9185af","nodeKey":"manifest","submissionHash":"8d4182c3fb51013a140d44942a69fd1d5b0a4cef39a421b78431bf942990bae8","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52712","feedbackHash":"81f6d23007e1b2b0ce03e0d21a674f449467911f17caaf0894c89226f10120b5","nodeKey":"write_foundry_tests","submissionHash":"943a708f829d949e6d03613c47dd58a40071ef934e51e75f86e357b99e9efbcc","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"684e1b1643d78f8a0f3479a28e98df99d7c378b6d6c400aa328740ec93518da7","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"aad69c75c9678e236dd647ae753335080b33c2d09144c474332d973f861f006a","device":"74568cca2ef24e2f","findings":[],"hash":"003c8127fd8f7ac1b8f9321bbbcfb3ec5847b947522a195b9b49ac79353b1693","nodeId":"2fd98351-5dc9-40bf-a7ba-93c1e6a50ff1","outcome":"completed","summary":"Implemented [PredictFWA.sol](/home/imd/.identitymd-5/work/5b04f6ec-08c9-4faf-a6ff-28f1e6a3cd00/2fd98351-5dc9-40bf-a7ba-93c1e6a50ff1/src/PredictFWA.sol): 1 billion PFWA, 18 decimals, minted once to the deployer.\n\nDependencies are vendored. Assumptions, deployment parameters, and operational responsibilities are documented in [README.md](/home/imd/.identitymd-5/work/5b04f6ec-08c9-4faf-a6ff-28f1e6a3cd00/2fd98351-5dc9-40bf-a7ba-93c1e6a50ff1/README.md).\n\nValidation passed with Solidity 0.8.26: `forge build`, all 44 tests using the supplied fuzz seed, and `forge fmt --check`. A clean offline build and parallel tests also passed. Full protected launch checks require the external verifier’s harness.","treeHash":"bf6e002e8113f144973907da4cc565beb0e3bd97","usage":{"cachedInputTokens":613888,"inputTokens":63319,"model":"gpt-6-astra","outputTokens":19265,"runtime":"codex","turns":5,"wallClockMs":348220}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a5c5e95a2ed07117","findings":[],"hash":"652059f9d70db64ece03f72fbfd6726b9a40140144b44cf8835e2d778ca71708","nodeId":"77264077-ba8d-4850-8ff7-3b5f8eeeb25e","outcome":"completed","summary":"The review is complete. No reproducible defect was found in the economics, invariants or launch flows of PredictFWA, and `.imd-findings.json` holds an empty findings list with eight coverage rows answering all three entry points plus the invariants I checked.\n\n**What I verified**\n\n- **Code and dependencies.** The token is a plain OpenZeppelin v5.2.0 ERC-20 whose constructor mints the whole supply once to msg.sender. The five vendored OpenZeppelin files hash identically to the pinned upstream commit, so the inherited transfer, approve and transferFrom bodies are unmodified.\n- **Economic Security guide.** No external dependencies, oracles, callbacks or value-dependent formulas exist. The runtime bytecode contains no call, create, delegatecall, callcode, selfdestruct or transient-storage opcodes. There is no receive or fallback, so ETH is refused. Sentinel-address paths revert with ERC-6093 errors.\n- **Invariant guide.** The sum of balances equals totalSupply equals 10^27 and cannot change after construction. The only mint is in the constructor, the burn path is unreachable because transfers to the zero address revert, and the ABI exposes no mint, burn, owner, pause or upgrade entry. Fourteen common admin selectors revert when called from the deployer address. Boundary cases hold: full-supply transfer, one-wei transfer, zero amount, self-transfer, self-transferFrom under finite and unlimited allowance.\n- **Flow Gap guide.** A CREATE2 deployment from a factory contract leaves the entire supply on the factory and nothing on the transaction origin. The 10/80/10 split divides 10^27 with no remainder, balance deltas equal transferred amounts so PoolManager settle sees exactly what was sent, and nothing is taxed so no exemption list is needed. Constructor arguments are empty, so no launch address can be misbound.\n- **Static-analysis lead.** The aderyn large-numeric-literal note is a lint. The literal is a compile-time constant equal to the manifest supply.\n\n**Checks run**\n\n```\nforge build                      ok\nforge test (project, seeded)     44 passed, 0 failed\nforge fmt --check (project)      clean\nscratch reviewer tests           4 passed, then removed\n```\n\n**Not a defect, noted as a trust property.** The standard ERC-20 approve-ordering race exists as in every OpenZeppelin token and is documented in the README. It is inherent to the ERC rather than a code defect, so it is not reported as a finding.\n\n**Outside my area, not covered.** I did not review the manifest step since no launch.json exists in this tree, and I did not run the protected suite, which needs the external launch harness and Uniswap v4 contracts.","treeHash":null,"usage":{"cachedInputTokens":560233,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":13035,"runtime":"claude","turns":27,"wallClockMs":230696}},{"artifacts":[],"attempt":1,"bundleHash":"d5f7aeda2cbb60426c765afebef935d08a5c49c5984e291d7fb3ebff668dbce8","device":"83e7e92833e57c52","findings":[],"hash":"8d4182c3fb51013a140d44942a69fd1d5b0a4cef39a421b78431bf942990bae8","nodeId":"4c48f303-f604-42aa-bbeb-17cc7c155896","outcome":"completed","summary":"Created [launch.json](/home/imd/.identitymd-7/work/5b04f6ec-08c9-4faf-a6ff-28f1e6a3cd00/4c48f303-f604-42aa-bbeb-17cc7c155896/launch.json) matching PredictFWA’s constructor, supply, and exact pool/economics values.\n\nManifest and ABI checks passed. `forge build` succeeded; `forge test` passed all 44 tests with the supplied fuzz seed.\n\nOnly `launch.json` is changed for submission.","treeHash":"39a305027d09bb34730aab211b52531a3a0c8b8e","usage":{"cachedInputTokens":190208,"inputTokens":27095,"model":"gpt-6-astra","outputTokens":3929,"runtime":"codex","turns":3,"wallClockMs":86019}},{"artifacts":[],"attempt":1,"bundleHash":"54dd4575f8a957a0a38bc583d5b7fdb08b5f054449753a0798a1400e15e94eff","device":"b5656f252a09fc5d","findings":[],"hash":"943a708f829d949e6d03613c47dd58a40071ef934e51e75f86e357b99e9efbcc","nodeId":"66926a25-d180-4086-9e78-7237adb47db6","outcome":"completed","summary":"Added 20 tests covering failure paths, allowance boundaries, caller isolation, and recovery after failed transfers. Expanded invariants to 11 actions across 32,768 randomized calls.\n\n`forge build` and `forge test` pass offline with the supplied seed: **64 passed, 0 failed**.\n\nOnly `test/` changed. No implementation defects identified.","treeHash":"d76545f70cf4c52d4da1816ca4678c3ad9332ba4","usage":{"cachedInputTokens":1194624,"inputTokens":94100,"model":"gpt-6-astra","outputTokens":17551,"runtime":"codex","turns":6,"wallClockMs":364768}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"3a720671678111bc","findings":[],"hash":"bbf05879f2c30bfb9ea3f06750910dd0089b8b2f71085f35c8f6eebfd0188147","nodeId":"e68beb11-25eb-409d-b735-fb54ab99d3c2","outcome":"completed","summary":"The review is complete and found no defects. The findings file is written with an empty findings list and a full coverage record, and no repository file was changed.\n\n**What was reviewed**\n\nThe token in `src/PredictFWA.sol` is sixteen lines: an unmodified OpenZeppelin v5.2.0 ERC-20 whose constructor mints the whole supply to the caller. I checked it against the Senior Auditor's Mindset and the Execution Trace, Periphery and First Principles guides, plus the x-ray deployment-phase checklist and the Trail of Bits entry-point inventory.\n\n**Results by area**\n\n- **Execution Trace.** Each of the three entry points was traced from call to final state. Transfers debit and credit exactly the requested value, zero addresses revert, finite allowances decrement exactly and the unlimited sentinel is left alone, and every revert path rolls back allowance and balances together. There are no external calls, so no stale reads or reentrancy windows exist.\n- **Periphery.** All five vendored OpenZeppelin files hash byte for byte equal to upstream commit acd4ff74, so no library code was altered.\n- **First Principles.** The only implicit assumption is that the constructor's caller is the factory. Under CREATE2 from the factory that holds, and a scratch test confirmed the transaction origin receives nothing. Supply, name, symbol and decimals match the brief exactly.\n- **Launch floor.** A scratch opcode scan found no CALL, STATICCALL, CREATE, DELEGATECALL, CALLCODE, SELFDESTRUCT or transient-storage opcodes in the runtime. A pool-manager-style settle and take probe credited exactly the claimed amounts in both trading directions.\n- **Static analysis leads.** Slither reported nothing. The aderyn large-literal note is the readable supply expression and is not a defect.\n\n**Verification run**\n\nThe existing suite of 44 tests passed under the README's fuzz seed, and `forge fmt --check` was clean. Five scratch tests backing the coverage claims also passed and were then removed.\n\n**Not reached**\n\nThe protected Token suite needs v4-core and LaunchLiquidity, which are not in the tree. That row is marked unreached in the coverage record. The standard ERC-20 approve race was reproduced but is inherent to the standard and already documented in the README, so it is recorded in coverage rather than as a finding.","treeHash":null,"usage":{"cachedInputTokens":886779,"inputTokens":450,"model":"claude-fable-5-1","outputTokens":13164,"runtime":"claude","turns":20,"wallClockMs":207856}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"5d667e4b0751bcb5","findings":[],"hash":"dbcdad5159e12ad3358a081def61098a5e31d56cb7f5d4358b6934e5c86495d1","nodeId":"3063f174-f4c0-4908-9c9a-17d04b713a89","outcome":"completed","summary":"The review is complete and the findings file is in place.\n\n**Result: no defects found in the assigned area.** The file `.imd-findings.json` holds an empty findings list and twelve coverage rows, all three listed entry points marked `holds`.\n\n**What was checked**\n\n- **Access control.** The token is a 16-line subclass of OpenZeppelin ERC20 whose constructor mints the whole supply to its deployer. The compiled ABI exposes only approve, transfer, transferFrom and views. Every common privileged selector reverts from the deployer and from a stranger, storage beyond the five declared slots is empty, and the runtime contains no DELEGATECALL, CALLCODE or SELFDESTRUCT.\n- **Trust gap.** The five vendored OpenZeppelin files are byte-identical to upstream at the pinned v5.2.0 commit, so there is no hidden forwarder or backdoor in the inherited code. The token has no setter, fee recipient, oracle or price, so none of the access-by-economics-by-asymmetry seams exist.\n- **Asymmetry.** The transfer and transferFrom paths share the same internal update and checks. The only difference is the allowance spend, which is standard and documented in the README. There is no mint-burn pair to mirror.\n- **Checks run.** The project's 44 unit, fuzz and invariant tests pass with the README seed. A scratch test of mine reproducing the privileged-call, opcode and storage checks also passed and was removed afterwards.\n\n**Not reached.** The protected pool test needs v4-core and launch environment inputs absent from this tree. Its token-side behaviour was reproduced locally instead and is recorded as `unreached` in coverage.\n\nThe known ERC-20 approve replacement race is noted in coverage as a design-level trust assumption, not reported as a defect, since the brief asks for standard ERC-20 semantics and the README documents the mitigation.","treeHash":null,"usage":{"cachedInputTokens":567136,"inputTokens":258,"model":"claude-fable-5-1","outputTokens":9967,"runtime":"claude","turns":21,"wallClockMs":158124}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"f2101c240e0b52a9","findings":[],"hash":"f1558b3e5a0c9fe3f7081b37277adb349ad9da7a99826a5c70427ed4530ace2b","nodeId":"02fb7f2f-349b-488b-bbf7-c4c974e98577","outcome":"completed","summary":"The review is complete and the findings file is written with no defects.\n\n**Result:** PredictFWA is a plain, unmodified OpenZeppelin v5.2.0 ERC-20 with a single constructor mint and no extra entry points. Nothing the five specialists reported needed merging, since none reported a finding, and my own pass found nothing to add.\n\n**What I verified**\n- The constructor mints exactly 10^27 units to msg.sender with no arguments, matching the manifest's supply, decimals and empty constructorArgs.\n- A CREATE2 probe deploy lands the whole supply on the deployer. The factory-to-distributor and distributor-to-claimant transfers arrive whole, and approve plus transferFrom behave per the standard.\n- The runtime contains no DELEGATECALL, CALLCODE or SELFDESTRUCT, and creation and runtime sizes are far under the protocol limits.\n- The ABI exposes only the ERC-20 surface and the supply constant, so no caller can grow the supply or freeze or move a holder's balance.\n- All five vendored OpenZeppelin files hash identical to the upstream v5.2.0 commit. The project's 64 existing tests pass.\n- The one aderyn lead at line 11 is a style note about the numeric literal and is not a defect.\n\n**Output:** `.imd-findings.json` holds an empty findings list and eight coverage rows, one for each of the three listed entry points plus the invariants above, all marked holds. The scratch test was removed and the working tree is clean.","treeHash":null,"usage":{"cachedInputTokens":430989,"inputTokens":290,"model":"claude-fable-5-1","outputTokens":5712,"runtime":"claude","turns":10,"wallClockMs":124714}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"410247426ec5a6df","findings":[],"hash":"f540992fa29d1705ed06c7f8ebf4be7092041422756eaee097c812b86fbdb476","nodeId":"df221419-530a-40e3-b216-780c3d6b79fd","outcome":"completed","summary":"The review is complete. The findings file holds an empty list and eight coverage rows, the scratch tests are removed, and the tree is unchanged apart from the findings file.\n\n**Outcome: no defects found in the math, boundary or numerical-gap area.** PredictFWA is a 16-line wrapper over OpenZeppelin v5.2.0 ERC20 whose only arithmetic is the compile-time constant for the supply. The findings file `.imd-findings.json` records zero findings and full coverage for all three listed entry points plus five invariants.\n\nWhat I verified:\n- **Supply constant.** The literal evaluates to exactly 10^27, well below the uint256 ceiling, and the constructor mints it once to the deployer. Aderyn's large-literal line is style only.\n- **Transfer arithmetic.** OpenZeppelin's `_update` checks balance before its unchecked subtraction, and the unchecked addition is bounded by total supply. A max-uint value reverts with the insufficient-balance error rather than wrapping. Self-transfers re-read storage and preserve the balance.\n- **Allowance arithmetic.** The allowance check precedes the unchecked subtraction. Max is infinite, max minus one is finite and decrements exactly. A reverted transfer rolls the allowance back.\n- **Launch shares.** Ten and eighty percent of 10^27 divide with zero remainder, so the protected floor's swarm and pool transfers move whole amounts.\n- **Boundaries.** The token makes no external calls, has no payable path, decodes no bytes, and its only sentinel branches are the zero-address reverts.\n- **Dependency integrity.** All five vendored OpenZeppelin files are byte-identical to upstream at the pinned v5.2.0 commit, and the ABI exposes exactly the three listed state-changing functions.\n\nChecks run: the project's 44 tests pass with the pinned fuzz seed, and a scratch suite of seven edge tests I wrote passed and was then deleted. Nothing outside the assigned area was left unreached for this contract, since there is no other code in the project.","treeHash":null,"usage":{"cachedInputTokens":582624,"inputTokens":226,"model":"claude-fable-5-1","outputTokens":10308,"runtime":"claude","turns":20,"wallClockMs":164995}}],"verification":[{"checks":[{"durationMs":1703,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.62s\nCompiler run successful!\n","passed":true},{"durationMs":2874,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 3 tests for test/PredictFWA.launch.t.sol:PredictFWALaunchTest\n[PASS] testFuzz_create2MintsWholeSupplyToImmediateDeployer(bytes32) (runs: 1024, μ: 89727, ~: 89840)\nLogs:\n  computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\n\n[PASS] test_launchAllocationsClaimsAndTradingTransfersAreExact() (gas: 508245)\n[PASS] test_runtimeIsDeployableAndContainsNoDestructiveOrDelegateOpcodes() (gas: 2284610)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 52.47ms (60.01ms CPU time)\n\nRan 40 tests for test/PredictFWA.t.sol:PredictFWATest\n[PASS] testFuzz_approveReplacesAllowance(address,uint256,uint256) (runs: 1024, μ: 117574, ~: 117805)\n[PASS] testFuzz_overspendReverts(uint256) (runs: 1024, μ: 61669, ~: 61984)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129653875\n\n[PASS] testFuzz_selfTransferDoesNotCreateTokens(uint256) (runs: 1024, μ: 57799, ~: 57544)\nLogs:\n  Bound result 18\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 1024, μ: 127134, ~: 127490)\nLogs:\n  Bound result 142685543285782719888234220\n\n[PASS] testFuzz_transferFromExceedingAllowanceCannotMoveTokens(uint256,uint256) (runs: 1024, μ: 127856, ~: 128301)\nLogs:\n  Bound result 123456\n  Bound result 999999999999999999999876594\n\n[PASS] testFuzz_transferFromUsesOnlyApprovedAmount(uint256,uint256) (runs: 1024, μ: 167697, ~: 169691)\nLogs:\n  Bound result 20\n  Bound result 1\n\n[PASS] testFuzz_transferFromWithAllowanceBeyondBalanceRollsBack(uint256,uint256) (runs: 1024, μ: 198555, ~: 199092)\nLogs:\n  Bound result 1\n  Bound result 846654310645391994894\n\n[PASS] test_allowanceIsSpecificToApprovedSpender() (gas: 109955)\n[PASS] test_approvalCanExceedCurrentBalance() (gas: 78659)\n[PASS] test_approvalReplacesPreviousAllowance() (gas: 95538)\n[PASS] test_approveEmitsEventAndDoesNotMoveTokens() (gas: 93530)\n[PASS] test_approveFromZeroCallerReverts() (gas: 33121)\n[PASS] test_approveZeroSpenderReverts() (gas: 40164)\n[PASS] test_constructorEmitsExactlyOneMint() (gas: 12251)\n[PASS] test_deployerCannotSpendAnotherHoldersBalanceWithoutApproval() (gas: 155057)\n[PASS] test_directEtherPaymentIsRejected() (gas: 45299)\n[PASS] test_emptyAccountCannotTransferPositiveAmount() (gas: 44885)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 187790)\n[PASS] test_insufficientBalanceRestoresAllowanceOnRevert() (gas: 126121)\n[PASS] test_metadataAndEntireInitialSupply() (gas: 111875)\n[PASS] test_noAdminCanSeizeFreezeOrUpgrade() (gas: 782318)\n[PASS] test_noMintBurnOrInitializationEntrypoints() (gas: 694281)\n[PASS] test_revokedAllowanceCannotBeSpent() (gas: 148009)\n[PASS] test_selfTransferPreservesBalance() (gas: 54132)\n[PASS] test_spendingExactAllowanceThenSpendingAgainReverts() (gas: 179148)\n[PASS] test_transferBeyondBalanceRevertsAtomically() (gas: 67984)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 96288)\n[PASS] test_transferEntireSupply() (gas: 88667)\n[PASS] test_transferFromByHolderStillRequiresAllowance() (gas: 45417)\n[PASS] test_transferFromEmitsTransferAndConsumesFiniteAllowance() (gas: 177484)\n[PASS] test_transferFromExceedingAllowanceRevertsAtomically() (gas: 120540)\n[PASS] test_transferFromToSameHolderStillConsumesAllowance() (gas: 112402)\n[PASS] test_transferFromToZeroRestoresAllowanceOnRevert() (gas: 118886)\n[PASS] test_transferFromWithoutAllowanceReverts() (gas: 58103)\n[PASS] test_transferFromZeroCallerReverts() (gas: 33123)\n[PASS] test_transferToContractDoesNotInvokeRecipient() (gas: 193607)\n[PASS] test_transferToZeroRevertsWithoutBurning() (gas: 60656)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73388)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 81438)\n[PASS] test_zeroTransferToZeroStillReverts() (gas: 32953)\nSuite result: ok. 40 passed; 0 failed; 0 skipped; finished in 52.61ms (358.46ms CPU time)\n\nRan 1 test for test/PredictFWA.invariant.t.sol:PredictFWAInvariantTest\n[PASS]\nPredictFWAInvariantTest invariants:\n[PASS] invariant_balancesAndAllowancesMatchIndependentLedger\n[PASS] invariant_totalSupplyAndAggregateBalancesStayFixed\n PredictFWAInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭-------------+-----------------------+-------+---------+----------╮\n| Contract    | Selector              | Calls | Reverts | Discards |\n+==================================================================+\n| PFWAHandler | approve               | 1656  | 0       | 0        |\n|-------------+-----------------------+-------+---------+----------|\n| PFWAHandler | rejectOverspend       | 1673  | 0       | 0        |\n|-------------+-----------------------+-------+---------+----------|\n| PFWAHandler | rejectUnapprovedSpend | 1653  | 0       | 0        |\n|-------------+-----------------------+-------+---------+----------|\n| PFWAHandler | transfer              | 1565  | 0       | 0        |\n|-------------+-----------------------+-------+---------+----------|\n| PFWAHandler | transferFrom          | 1645  | 0       | 0        |\n╰-------------+-----------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 244\n  Bound result 6057\n  Bound result 242\n  Bound result 0\n  Bound result 1\n  Bound result 5572\n  Bound result 1322\n  Bound result 0\n  Bound result 0\n  Bound result 1143\n  Bound result 370765651\n  Bound result 7453\n  Bound result 0\n  Bound result 0\n  Bound result 4\n  Bound result 40\n  Bound result 0\n  Bound result 375\n  Bound result 5762020\n  Bound result 4288775752\n  Bound result 7\n  Bound result 127\n  Bound result 95\n  Bound result 3463\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.78s (2.78s CPU time)\n\nRan 3 test suites in 2.78s (2.89s CPU time): 44 tests passed, 0 failed, 0 skipped (44 total tests)\n","passed":true},{"durationMs":51,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PredictFWA.approve(address,uint256)\",\"PredictFWA.transfer(address,uint256)\",\"PredictFWA.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":111,\"foundry.toml\":18,\"remappings.txt\":2,\"src/PredictFWA.sol\":16,\"test/PredictFWA.invariant.t.sol\":122,\"test/PredictFWA.launch.t.sol\":101,\"test/PredictFWA.t.sol\":474},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":634,"exitCode":0,"name":"slither","output":"slither: no results at low impact or above","passed":true},{"durationMs":315,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/PredictFWA.sol:11: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"003c8127fd8f7ac1b8f9321bbbcfb3ec5847b947522a195b9b49ac79353b1693","verifiedTreeHash":"bf6e002e8113f144973907da4cc565beb0e3bd97","verifierVersion":"0.1.0+aca6c688"},{"checks":[{"durationMs":1478,"exitCode":0,"name":"build","output":"Compiling 28 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.40s\nCompiler run successful!\n","passed":true},{"durationMs":2373,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 3 tests for test/PredictFWA.launch.t.sol:PredictFWALaunchTest\n[PASS] testFuzz_create2MintsWholeSupplyToImmediateDeployer(bytes32) (runs: 1024, μ: 89727, ~: 89840)\nLogs:\n  computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\n\n[PASS] test_launchAllocationsClaimsAndTradingTransfersAreExact() (gas: 508245)\n[PASS] test_runtimeIsDeployableAndContainsNoDestructiveOrDelegateOpcodes() (gas: 2284610)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 49.65ms (60.06ms CPU time)\n\nRan 40 tests for test/PredictFWA.t.sol:PredictFWATest\n[PASS] testFuzz_approveReplacesAllowance(address,uint256,uint256) (runs: 1024, μ: 117574, ~: 117805)\n[PASS] testFuzz_overspendReverts(uint256) (runs: 1024, μ: 61669, ~: 61984)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639614526865818272422854407719\n\n[PASS] testFuzz_selfTransferDoesNotCreateTokens(uint256) (runs: 1024, μ: 57799, ~: 57544)\nLogs:\n  Bound result 229646630055995344560911453\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 1024, μ: 127134, ~: 127490)\nLogs:\n  Bound result 1281615203\n\n[PASS] testFuzz_transferFromExceedingAllowanceCannotMoveTokens(uint256,uint256) (runs: 1024, μ: 127856, ~: 128301)\nLogs:\n  Bound result 109534\n  Bound result 9072426225827946704723650\n\n[PASS] testFuzz_transferFromUsesOnlyApprovedAmount(uint256,uint256) (runs: 1024, μ: 167697, ~: 169691)\nLogs:\n  Bound result 81008941\n  Bound result 23610\n\n[PASS] testFuzz_transferFromWithAllowanceBeyondBalanceRollsBack(uint256,uint256) (runs: 1024, μ: 198555, ~: 199092)\nLogs:\n  Bound result 123456\n  Bound result 999999999999999999999876594\n\n[PASS] test_allowanceIsSpecificToApprovedSpender() (gas: 109955)\n[PASS] test_approvalCanExceedCurrentBalance() (gas: 78659)\n[PASS] test_approvalReplacesPreviousAllowance() (gas: 95538)\n[PASS] test_approveEmitsEventAndDoesNotMoveTokens() (gas: 93530)\n[PASS] test_approveFromZeroCallerReverts() (gas: 33121)\n[PASS] test_approveZeroSpenderReverts() (gas: 40164)\n[PASS] test_constructorEmitsExactlyOneMint() (gas: 12251)\n[PASS] test_deployerCannotSpendAnotherHoldersBalanceWithoutApproval() (gas: 155057)\n[PASS] test_directEtherPaymentIsRejected() (gas: 45299)\n[PASS] test_emptyAccountCannotTransferPositiveAmount() (gas: 44885)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 187790)\n[PASS] test_insufficientBalanceRestoresAllowanceOnRevert() (gas: 126121)\n[PASS] test_metadataAndEntireInitialSupply() (gas: 111875)\n[PASS] test_noAdminCanSeizeFreezeOrUpgrade() (gas: 782318)\n[PASS] test_noMintBurnOrInitializationEntrypoints() (gas: 694281)\n[PASS] test_revokedAllowanceCannotBeSpent() (gas: 148009)\n[PASS] test_selfTransferPreservesBalance() (gas: 54132)\n[PASS] test_spendingExactAllowanceThenSpendingAgainReverts() (gas: 179148)\n[PASS] test_transferBeyondBalanceRevertsAtomically() (gas: 67984)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 96288)\n[PASS] test_transferEntireSupply() (gas: 88667)\n[PASS] test_transferFromByHolderStillRequiresAllowance() (gas: 45417)\n[PASS] test_transferFromEmitsTransferAndConsumesFiniteAllowance() (gas: 177484)\n[PASS] test_transferFromExceedingAllowanceRevertsAtomically() (gas: 120540)\n[PASS] test_transferFromToSameHolderStillConsumesAllowance() (gas: 112402)\n[PASS] test_transferFromToZeroRestoresAllowanceOnRevert() (gas: 118886)\n[PASS] test_transferFromWithoutAllowanceReverts() (gas: 58103)\n[PASS] test_transferFromZeroCallerReverts() (gas: 33123)\n[PASS] test_transferToContractDoesNotInvokeRecipient() (gas: 193607)\n[PASS] test_transferToZeroRevertsWithoutBurning() (gas: 60656)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73388)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 81438)\n[PASS] test_zeroTransferToZeroStillReverts() (gas: 32953)\nSuite result: ok. 40 passed; 0 failed; 0 skipped; finished in 49.73ms (339.60ms CPU time)\n\nRan 1 test for test/PredictFWA.invariant.t.sol:PredictFWAInvariantTest\n[PASS]\nPredictFWAInvariantTest invariants:\n[PASS] invariant_balancesAndAllowancesMatchIndependentLedger\n[PASS] invariant_totalSupplyAndAggregateBalancesStayFixed\n PredictFWAInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭-------------+-----------------------+-------+---------+----------╮\n| Contract    | Selector              | Calls | Reverts | Discards |\n+==================================================================+\n| PFWAHandler | approve               | 1656  | 0       | 0        |\n|-------------+-----------------------+-------+---------+----------|\n| PFWAHandler | rejectOverspend       | 1673  | 0       | 0        |\n|-------------+-----------------------+-------+---------+----------|\n| PFWAHandler | rejectUnapprovedSpend | 1653  | 0       | 0        |\n|-------------+-----------------------+-------+---------+----------|\n| PFWAHandler | transfer              | 1565  | 0       | 0        |\n|-------------+-----------------------+-------+---------+----------|\n| PFWAHandler | transferFrom          | 1645  | 0       | 0        |\n╰-------------+-----------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 244\n  Bound result 6057\n  Bound result 242\n  Bound result 0\n  Bound result 1\n  Bound result 5572\n  Bound result 1322\n  Bound result 0\n  Bound result 0\n  Bound result 1143\n  Bound result 370765651\n  Bound result 7453\n  Bound result 0\n  Bound result 0\n  Bound result 4\n  Bound result 40\n  Bound result 0\n  Bound result 375\n  Bound result 5762020\n  Bound result 4288775752\n  Bound result 7\n  Bound result 127\n  Bound result 95\n  Bound result 3463\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.30s (2.30s CPU time)\n\nRan 3 test suites in 2.30s (2.40s CPU time): 44 tests passed, 0 failed, 0 skipped (44 total tests)\n","passed":true},{"durationMs":42,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PredictFWA.approve(address,uint256)\",\"PredictFWA.transfer(address,uint256)\",\"PredictFWA.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":111,\"foundry.toml\":18,\"launch.json\":24,\"remappings.txt\":2,\"src/PredictFWA.sol\":16,\"test/PredictFWA.invariant.t.sol\":122,\"test/PredictFWA.launch.t.sol\":101,\"test/PredictFWA.t.sol\":474},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"8d4182c3fb51013a140d44942a69fd1d5b0a4cef39a421b78431bf942990bae8","verifiedTreeHash":"39a305027d09bb34730aab211b52531a3a0c8b8e","verifierVersion":"0.1.0+aca6c688"},{"checks":[{"durationMs":4529,"exitCode":0,"name":"build","output":"Compiling 29 files with Solc 0.8.26\nSolc 0.8.26 finished in 4.36s\nCompiler run successful!\n","passed":true},{"durationMs":19713,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 3 tests for test/PredictFWA.launch.t.sol:PredictFWALaunchTest\n[PASS] testFuzz_create2MintsWholeSupplyToImmediateDeployer(bytes32) (runs: 1024, μ: 89727, ~: 89840)\nLogs:\n  computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\n\n[PASS] test_launchAllocationsClaimsAndTradingTransfersAreExact() (gas: 508245)\n[PASS] test_runtimeIsDeployableAndContainsNoDestructiveOrDelegateOpcodes() (gas: 2284610)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 191.41ms (202.88ms CPU time)\n\nRan 40 tests for test/PredictFWA.t.sol:PredictFWATest\n[PASS] testFuzz_approveReplacesAllowance(address,uint256,uint256) (runs: 1024, μ: 117560, ~: 117805)\n[PASS] testFuzz_overspendReverts(uint256) (runs: 1024, μ: 61668, ~: 61984)\nLogs:\n  Bound result 115792089237316195423570985008687907853269984665639564039457600254514763543224\n\n[PASS] testFuzz_selfTransferDoesNotCreateTokens(uint256) (runs: 1024, μ: 57801, ~: 57544)\nLogs:\n  Bound result 16246601633903289\n\n[PASS] testFuzz_transferConservesSupply(address,uint256) (runs: 1024, μ: 127166, ~: 127490)\nLogs:\n  Bound result 1281615203\n\n[PASS] testFuzz_transferFromExceedingAllowanceCannotMoveTokens(uint256,uint256) (runs: 1024, μ: 127828, ~: 128315)\nLogs:\n  Bound result 81008941\n  Bound result 999999999999999999919014669\n\n[PASS] testFuzz_transferFromUsesOnlyApprovedAmount(uint256,uint256) (runs: 1024, μ: 167355, ~: 169691)\nLogs:\n  Bound result 60\n  Bound result 41\n\n[PASS] testFuzz_transferFromWithAllowanceBeyondBalanceRollsBack(uint256,uint256) (runs: 1024, μ: 198522, ~: 199103)\nLogs:\n  Bound result 9\n  Bound result 100\n\n[PASS] test_allowanceIsSpecificToApprovedSpender() (gas: 109955)\n[PASS] test_approvalCanExceedCurrentBalance() (gas: 78659)\n[PASS] test_approvalReplacesPreviousAllowance() (gas: 95538)\n[PASS] test_approveEmitsEventAndDoesNotMoveTokens() (gas: 93530)\n[PASS] test_approveFromZeroCallerReverts() (gas: 33121)\n[PASS] test_approveZeroSpenderReverts() (gas: 40164)\n[PASS] test_constructorEmitsExactlyOneMint() (gas: 12251)\n[PASS] test_deployerCannotSpendAnotherHoldersBalanceWithoutApproval() (gas: 155057)\n[PASS] test_directEtherPaymentIsRejected() (gas: 45299)\n[PASS] test_emptyAccountCannotTransferPositiveAmount() (gas: 44885)\n[PASS] test_infiniteAllowanceIsNotDecremented() (gas: 187790)\n[PASS] test_insufficientBalanceRestoresAllowanceOnRevert() (gas: 126121)\n[PASS] test_metadataAndEntireInitialSupply() (gas: 111875)\n[PASS] test_noAdminCanSeizeFreezeOrUpgrade() (gas: 782318)\n[PASS] test_noMintBurnOrInitializationEntrypoints() (gas: 694281)\n[PASS] test_revokedAllowanceCannotBeSpent() (gas: 148009)\n[PASS] test_selfTransferPreservesBalance() (gas: 54132)\n[PASS] test_spendingExactAllowanceThenSpendingAgainReverts() (gas: 179148)\n[PASS] test_transferBeyondBalanceRevertsAtomically() (gas: 67984)\n[PASS] test_transferDeliversExactAmountAndEmitsEvent() (gas: 96288)\n[PASS] test_transferEntireSupply() (gas: 88667)\n[PASS] test_transferFromByHolderStillRequiresAllowance() (gas: 45417)\n[PASS] test_transferFromEmitsTransferAndConsumesFiniteAllowance() (gas: 177484)\n[PASS] test_transferFromExceedingAllowanceRevertsAtomically() (gas: 120540)\n[PASS] test_transferFromToSameHolderStillConsumesAllowance() (gas: 112402)\n[PASS] test_transferFromToZeroRestoresAllowanceOnRevert() (gas: 118886)\n[PASS] test_transferFromWithoutAllowanceReverts() (gas: 58103)\n[PASS] test_transferFromZeroCallerReverts() (gas: 33123)\n[PASS] test_transferToContractDoesNotInvokeRecipient() (gas: 193607)\n[PASS] test_transferToZeroRevertsWithoutBurning() (gas: 60656)\n[PASS] test_zeroTransferFromEmptyAccountEmitsEvent() (gas: 73388)\n[PASS] test_zeroTransferFromNeedsNoAllowance() (gas: 81438)\n[PASS] test_zeroTransferToZeroStillReverts() (gas: 32953)\nSuite result: ok. 40 passed; 0 failed; 0 skipped; finished in 192.67ms (1.21s CPU time)\n\nRan 18 tests for test/PredictFWA.properties.t.sol:PredictFWAPropertiesTest\n[PASS] testFuzz_failedSpendCanBeRetriedAfterFundingWithoutReapproval(uint256,uint256) (runs: 1024, μ: 342645, ~: 343010)\nLogs:\n  Bound result 4663\n  Bound result 24197\n\n[PASS] testFuzz_returnedTokensDoNotRestoreSpentAllowance(uint256,uint256) (runs: 1024, μ: 314499, ~: 315981)\nLogs:\n  Bound result 999999999999999999999999998\n  Bound result 75397848189166569099\n\n[PASS] testFuzz_selfTransfersCannotBypassBalanceChecks(uint256,uint256,bool) (runs: 1024, μ: 238217, ~: 238447)\nLogs:\n  Bound result 783662123172331481315260588\n  Bound result 783662123172331481315260590\n\n[PASS] testFuzz_splitDelegatedSpendingEqualsSingleSpending(uint256,uint256,uint256) (runs: 1024, μ: 389347, ~: 395469)\nLogs:\n  Bound result 14\n  Bound result 6\n\n[PASS] testFuzz_transferCycleRestoresBalancesAndPreservesApproval(uint256,uint256) (runs: 1024, μ: 307712, ~: 308613)\nLogs:\n  Bound result 60\n\n[PASS] test_forwardedApprovalBelongsToForwarder() (gas: 370156)\n[PASS] test_forwarderCannotSpendTransactionOriginsAllowance() (gas: 521120)\n[PASS] test_forwarderCannotSpendTransactionOriginsBalance() (gas: 301908)\n[PASS] test_infiniteApprovalCanBeReducedToOneBaseUnit() (gas: 223731)\n[PASS] test_infiniteApprovalCanBeRevokedAfterUse() (gas: 213919)\n[PASS] test_infiniteApprovalCannotOverdrawAndRemainsUsableAfterFailure() (gas: 228043)\n[PASS] test_maxMinusOneAllowanceIsFinite() (gas: 152830)\n[PASS] test_maxUintTransferRevertsWithBalanceError() (gas: 68114)\n[PASS] test_oneBaseUnitCanBeTransferredAndReturned() (gas: 151871)\n[PASS] test_selfApprovalAllowsDelegatedSelfTransferButConsumesAllowance() (gas: 157349)\n[PASS] test_sendingTokensToTokenContractDoesNotBurnThem() (gas: 96897)\n[PASS] test_zeroApprovalToZeroSpenderStillReverts() (gas: 52813)\n[PASS] test_zeroDelegatedTransferToZeroRejectsFiniteAndInfiniteApprovals() (gas: 339813)\nSuite result: ok. 18 passed; 0 failed; 0 skipped; finished in 192.74ms (955.38ms CPU time)\n\nRan 3 tests for test/PredictFWA.invariant.t.sol:PredictFWAInvariantTest\n[PASS]\nPredictFWAInvariantTest invariants:\n[PASS] invariant_balancesAndAllowancesMatchIndependentLedger\n[PASS] invariant_totalSupplyAndAggregateBalancesStayFixed\n PredictFWAInvariantTest invariants (runs: 256, calls: 32768, reverts: 0)\n\n╭-------------+------------------------+-------+---------+----------╮\n| Contract    | Selector               | Calls | Reverts | Discards |\n+===================================================================+\n| PFWAHandler | approve                | 2876  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | approveAtBoundary      | 3002  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | rejectApprovedOverdraw | 3035  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | rejectInvalidRecipient | 2986  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | rejectOverspend        | 2985  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | rejectUnapprovedSpend  | 3009  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | rejectZeroSpender      | 2996  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | spendExactAllowance    | 3039  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | transfer               | 2978  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | transferEntireBalance  | 2950  | 0       | 0        |\n|-------------+------------------------+-------+---------+----------|\n| PFWAHandler | transferFrom           | 2912  | 0       | 0        |\n╰-------------+------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 0\n  Bound result 250000000000000000000000000\n  Bound result 0\n  Bound result 2\n  Bound result 115792089237316195423570985008687907853269984665640314039457584007913129646401\n  Bound result 5228396014069423590894111244306135547805803391\n  Bound result 250000000000000000000000000\n  Bound result 1674\n  Bound result 115792089237316195423570985008687907853269984665640064039457584013069367757936\n  Bound result 250000000000000000000001674\n  Bound result 149770045538221185102639\n  Bound result 500000000000000000000001674\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 24576\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 3519\n  Bound result 0\n  Bound result 18\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913129646037\n  Bound result 0\n  Bound result 0\n  Bound result 4714\n  Bound result 1000000000000000000000000002\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 872637713704541709403526055\n  Bound result 872637713704541709403526055\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 601\n  Bound result 508960805\n  Bound result 93658656800887923106495494\n  Bound result 0\n  Bound result 872637713704541708894565250\n  Bound result 115792089237316195423570985008687907853269984665639564039457584007913638637485\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007912620682029\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 20\n  Bound result 1719639409\n  Bound result 0\n  Bound result 999999999999999999491039195\n  Bound result 999999999999999999491039197\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 0\n  Bound result 2\n  Bound result 2\n  Bound result 1\n  Bound result 123456\n  Bound result 123456\n  Bound result 123457\n  Bound result 509084260\n  Bound result 1000000000000000000000000000\n\n[PASS] test_boundaryApprovalsAndRejectedOperationsSequence() (gas: 6622823)\nLogs:\n  Bound result 0\n  Bound result 1\n  Bound result 0\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1\n  Bound result 1000000000000000000000000000\n  Bound result 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\n[PASS] test_fullBalanceTransfersAndAllowanceExhaustionSequence() (gas: 1964983)\nLogs:\n  Bound result 250000000000000000000000000\n  Bound result 500000000000000000000000000\n  Bound result 500000000000000000000000000\n  Bound result 0\n  Bound result 0\n  Bound result 250000000000000000000000000\n  Bound result 1000000000000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 19.40s (19.41s CPU time)\n\nRan 4 test suites in 19.41s (19.98s CPU time): 64 tests passed, 0 failed, 0 skipped (64 total tests)\n","passed":true},{"durationMs":89,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"PredictFWA.approve(address,uint256)\",\"PredictFWA.transfer(address,uint256)\",\"PredictFWA.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":111,\"foundry.toml\":18,\"remappings.txt\":2,\"src/PredictFWA.sol\":16,\"test/PredictFWA.invariant.t.sol\":274,\"test/PredictFWA.launch.t.sol\":101,\"test/PredictFWA.properties.t.sol\":346,\"test/PredictFWA.t.sol\":474},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"943a708f829d949e6d03613c47dd58a40071ef934e51e75f86e357b99e9efbcc","verifiedTreeHash":"d76545f70cf4c52d4da1816ca4678c3ad9332ba4","verifierVersion":"0.1.0+aca6c688"}]}