{"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":"967462a2-bb6b-4e72-a488-625be0661159","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"ba31e3a912c2aa98703db04511c3dde482d0d8dd3b44284f145151c40b20cbfc","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":"68fb623df61c5609e990079539ba15ac9e10d00e76fc7390f931cb7addc57931","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":"c27dfdf91848b1088ac18fdf9d5c65ea7931a92cc2bffdcc64505c7150e81226","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":"83559fe02a51927e20eaae1d66bbdf4c3a5b80f3bcf4602049532541f5c5e28e","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":"a4909b81d2649930ddee0faa687caa5c61b90902486851d1ab1d5d195f5853f1","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":"8482d86d51e322b6d384f957fdc2472f6352e5332bd41024353558c4d915c0f9","dependsOn":[],"execution":{"mustProduce":["src/LaunchToken.sol"],"network":false,"profile":"foundry","requires":[],"skillHash":"b6503de65ad02f845827887c23da4c3b56ccc5df7a459db263bae6e549d92f7f","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"b6503de65ad02f845827887c23da4c3b56ccc5df7a459db263bae6e549d92f7f","skillId":"build-contract-project","state":"accepted"},{"acceptedSubmissionHash":"db712e8daf495b3344ac6c00c593b1a8070b8b66231c802bbc4bf50d8c26b430","dependsOn":["build_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"2402060ce9cdf6164f4ff7661330f8c19e7dfb6275bbc7cabbaf0c301903c9b1","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 fixed-supply launch token plus a Guestbook contract: anyone can sign the guestbook once with a short message (max 140 bytes); entries are stored on chain and readable by index and by signer; the owner can pause new signatures but can never edit or delete entries. Keep it small and well tested.","parentJobId":null,"planHash":"56bc040c181123101ff54ac13145b6c34a4fdc06019a9549666c5a16ddee9d91","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"967462a2-bb6b-4e72-a488-625be0661159","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-710-fixed-supply-launch-token-plus"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51033","feedbackHash":"5704a6b71c929a8b44b4cbd44ad64fa630c949cae0d82326bedcbe185469631d","nodeKey":"audit_economics","submissionHash":"ba31e3a912c2aa98703db04511c3dde482d0d8dd3b44284f145151c40b20cbfc","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51983","feedbackHash":"78eeb5758478ec90867774d3df4cfc1a3622eff104edfeae7fbd2dc4116268d5","nodeKey":"audit_flow","submissionHash":"68fb623df61c5609e990079539ba15ac9e10d00e76fc7390f931cb7addc57931","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51247","feedbackHash":"5f828a9114bc846254569e62b6f9862b5fd508a67f25a20e26d0dcd6e181d115","nodeKey":"audit_judge","submissionHash":"c27dfdf91848b1088ac18fdf9d5c65ea7931a92cc2bffdcc64505c7150e81226","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52113","feedbackHash":"370688ddb12404797eb43a155c111380625da09e7d204685c3be7d9fa3211bd3","nodeKey":"audit_math","submissionHash":"83559fe02a51927e20eaae1d66bbdf4c3a5b80f3bcf4602049532541f5c5e28e","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52095","feedbackHash":"07ea30b4ba0d5e3246181a5dec7637ca80ee478a2b4fda764d7d8b4fdecb8472","nodeKey":"audit_permissions","submissionHash":"a4909b81d2649930ddee0faa687caa5c61b90902486851d1ab1d5d195f5853f1","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"52091","feedbackHash":"b31d80238940767a20c7780219551530f88e511c8b3f606df244733feafa4a39","nodeKey":"build_contract_project","submissionHash":"8482d86d51e322b6d384f957fdc2472f6352e5332bd41024353558c4d915c0f9","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"52085","feedbackHash":"6e1475879a3c9ccf0c5b641a2565af159e254a64e00e62bdc16a5215d220faee","nodeKey":"manifest","submissionHash":"db712e8daf495b3344ac6c00c593b1a8070b8b66231c802bbc4bf50d8c26b430","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51357","feedbackHash":"0ec48cd6d203dd65f6851a1f578a515fc7f6c2286914b3a9dc3edfdf9fc1a54a","nodeKey":"write_foundry_tests","submissionHash":"2402060ce9cdf6164f4ff7661330f8c19e7dfb6275bbc7cabbaf0c301903c9b1","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"c6e4e18745c8cb0db02e97a05b53026250ff5c0ad58cfa77a6994b7ce267725d","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"aad0f93e8a8761601396c3bd8f19dc8e49611c92068224fd787d9ced3f28e621","device":"7eb57f222fe63696","findings":[],"hash":"2402060ce9cdf6164f4ff7661330f8c19e7dfb6275bbc7cabbaf0c301903c9b1","nodeId":"475196e3-b493-4f05-98d1-b81f6efbab30","outcome":"completed","summary":"Added failure-path and boundary tests plus stateful invariants for token balances, allowances, guestbook permanence, and pause authority.\n\n`forge build` and `forge test` pass: **50 passed, 0 failed, 0 skipped**. Each invariant suite ran 256 sequences of 64 calls.\n\nOnly `test/` changed. No reportable contract defects found.","treeHash":"3cdccc0796059d42052e605ae6235b700ae7778c","usage":{"cachedInputTokens":736128,"inputTokens":149654,"model":"gpt-6-astra","outputTokens":12505,"runtime":"codex","turns":6,"wallClockMs":462284}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"90675b3128fe9096","findings":[],"hash":"68fb623df61c5609e990079539ba15ac9e10d00e76fc7390f931cb7addc57931","nodeId":"79a5cbac-ef5d-40d7-9a41-e4e2a6632bb3","outcome":"completed","summary":"Completed the Execution Trace, Periphery, and First Principles review. No substantiated defects found.\n\n- All 5 required entry points covered.\n- 36 project tests and 9 protected tests passed.\n- Source and configuration unchanged.\n\nResults: [.imd-findings.json](/home/imd/.identitymd/work/967462a2-bb6b-4e72-a488-625be0661159/79a5cbac-ef5d-40d7-9a41-e4e2a6632bb3/.imd-findings.json).","treeHash":null,"usage":{"cachedInputTokens":748672,"inputTokens":77511,"model":"gpt-6-astra","outputTokens":6267,"runtime":"codex","turns":4,"wallClockMs":240369}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"92352b60f8e93ddd","findings":[],"hash":"83559fe02a51927e20eaae1d66bbdf4c3a5b80f3bcf4602049532541f5c5e28e","nodeId":"22cd0d10-cd9b-4fad-8bca-f16f6f85eebc","outcome":"completed","summary":"Recorded [`.imd-findings.json`](/home/imd-worker-33/.identitymd/work/967462a2-bb6b-4e72-a488-625be0661159/22cd0d10-cd9b-4fad-8bca-f16f6f85eebc/.imd-findings.json) with no substantiated defects in the assigned scope and coverage for all five entry points.\n\nValidation passed: 36 project tests, 9 protected tests, and 19 guestbook tests rerun at timestamp zero. No source or configuration files changed.","treeHash":null,"usage":{"cachedInputTokens":483200,"inputTokens":66528,"model":"gpt-6-astra","outputTokens":6254,"runtime":"codex","turns":4,"wallClockMs":215055}},{"artifacts":[],"attempt":2,"bundleHash":"8090b36cbde593c9d86728a83603ca87f761e9d736b9686e93ecefbd0fd10d61","device":"79606c6a6e3585fb","findings":[],"hash":"8482d86d51e322b6d384f957fdc2472f6352e5332bd41024353558c4d915c0f9","nodeId":"ae7be5f3-650e-4f58-811c-b01494b465e1","outcome":"completed","summary":"Implemented the fixed-supply LaunchToken and Guestbook with permanent entries, one signature per address, a 140-byte limit, and owner-only pause/resume.\n\nAdded offline dependencies, deployment scripts, tests, and documentation.\n\nValidation passed:\n- `forge build --offline`\n- 36 project tests\n- 1,024 cases per fuzz test\n- All 9 supplied protected checks\n- `forge fmt --check`\n- Both local deployment simulations","treeHash":"4b6fd70e1e3cddf56d958bc9d34ed6a5904bb8d2","usage":{"cachedInputTokens":618880,"inputTokens":56438,"model":"gpt-6-astra","outputTokens":18387,"runtime":"codex","turns":6,"wallClockMs":611967}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"8310b806f0fcfbea","findings":[],"hash":"a4909b81d2649930ddee0faa687caa5c61b90902486851d1ab1d5d195f5853f1","nodeId":"97f31b5d-9234-4238-8327-b5c86cc41454","outcome":"completed","summary":"No substantiated defects found in Access Control, Trust Gap, or Asymmetry.\n\nSaved [.imd-findings.json](/home/imd14/.identitymd/work/967462a2-bb6b-4e72-a488-625be0661159/97f31b5d-9234-4238-8327-b5c86cc41454/.imd-findings.json) with an empty findings list and coverage for all five entry points.\n\nAll 36 Foundry tests passed. Source files remain unchanged. Final deployment owner selection could not be verified because no manifest was present.","treeHash":null,"usage":{"cachedInputTokens":403968,"inputTokens":81184,"model":"gpt-6-astra","outputTokens":3906,"runtime":"codex","turns":4,"wallClockMs":101267}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"1369de7c9398881a","findings":[],"hash":"b1147e7760dc323a3a455e756a6de9d59ee1849cc8661699bcc780fb2d0b4475","nodeId":"ae7be5f3-650e-4f58-811c-b01494b465e1","outcome":"failed","summary":"required outputs are missing or invalid:\nsrc/LaunchToken.sol: missing — this skill promises it in the delivered tree\n\nthe agent stopped (completed, 6 turns); its last message:\nThe environment blocked the repair: every shell command fails with `bwrap: setting up uid map: Permission denied`, and file editing also failed.\n\nNo deliverable files changed. I couldn’t inspect the pinned checks or run `forge build`, `forge test`, or formatting checks. The runner’s filesystem and sandbox access need fixing before this task can be completed.","treeHash":null,"usage":{"cachedInputTokens":130304,"inputTokens":16262,"model":"gpt-6-astra","outputTokens":2584,"runtime":"codex","turns":6,"wallClockMs":104695}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"8576036969b9332c","findings":[],"hash":"ba31e3a912c2aa98703db04511c3dde482d0d8dd3b44284f145151c40b20cbfc","nodeId":"efa83a19-2098-4f5a-bf6b-8999ed94671d","outcome":"completed","summary":"Saved [.imd-findings.json](/home/imd/.identitymd-2/work/967462a2-bb6b-4e72-a488-625be0661159/efa83a19-2098-4f5a-bf6b-8999ed94671d/.imd-findings.json) with no substantiated defects, covering all five entry points and seven invariants.\n\nPassed 36 project tests and nine protected checks using explicit test deployment inputs. Final deployment ownership remains unverified because no launch manifest is present. Source and configuration files are unchanged.","treeHash":null,"usage":{"cachedInputTokens":476416,"inputTokens":71724,"model":"gpt-6-astra","outputTokens":6579,"runtime":"codex","turns":4,"wallClockMs":230617}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"93652ca7a1cbb0e8","findings":[],"hash":"c27dfdf91848b1088ac18fdf9d5c65ea7931a92cc2bffdcc64505c7150e81226","nodeId":"6f8e8bf8-fa9c-477b-adf6-437e8a79a357","outcome":"completed","summary":"No reproducible defects found. Saved [.imd-findings.json](/root/.identitymd/work/967462a2-bb6b-4e72-a488-625be0661159/6f8e8bf8-fa9c-477b-adf6-437e8a79a357/.imd-findings.json) with all five entry points marked `holds`.\n\nValidation passed: 50 project tests and 9 protected tests, with no failures or skips.","treeHash":null,"usage":{"cachedInputTokens":903552,"inputTokens":106561,"model":"gpt-6-astra","outputTokens":5972,"runtime":"codex","turns":5,"wallClockMs":222549}},{"artifacts":[],"attempt":1,"bundleHash":"945f16431a4ecf6662fb0b7355e4bc2b820dd8ad7c44ffc55f20f5956a8ff78b","device":"7ffab1989aa9150f","findings":[],"hash":"db712e8daf495b3344ac6c00c593b1a8070b8b66231c802bbc4bf50d8c26b430","nodeId":"682db002-bde5-4058-89ec-a14de1ea2ba0","outcome":"completed","summary":"Created [launch.json](/home/imd13/.identitymd/work/967462a2-bb6b-4e72-a488-625be0661159/682db002-bde5-4058-89ec-a14de1ea2ba0/launch.json) matching `LaunchToken` and `Guestbook($owner)`.\n\nSchema and constructor ABI checks passed. `forge build` succeeded; all 45 tests passed, including the pinned checks. Only the manifest is delivered.","treeHash":"e4901f6eeaccef5492ca6033e517fbf9f202a02f","usage":{"cachedInputTokens":159616,"inputTokens":52473,"model":"gpt-6-astra","outputTokens":4181,"runtime":"codex","turns":4,"wallClockMs":159481}}],"verification":[{"checks":[{"durationMs":2029,"exitCode":0,"name":"build","output":"Compiling 33 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.90s\nCompiler run successful!\n","passed":true},{"durationMs":6527,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/Project.t.sol:ProjectTest\n[PASS] test_factoryGetsSupplyButExplicitOwnerGetsPauseAuthority() (gas: 362631)\n[PASS] test_guestbookPauseHasNoEffectOnTokenTransfers() (gas: 109642)\n[PASS] test_runtimeSizesAndForbiddenOpcodes() (gas: 1288932)\n[PASS] test_scriptChainValidationWithExplicitInputs() (gas: 1575381)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 160.64ms (7.52ms CPU time)\n\nRan 19 tests for test/LaunchToken.t.sol:LaunchTokenTest\n[PASS] testFuzz_transferFromConservesSupplyAndAllowance(uint256,uint256) (runs: 1000, μ: 138210, ~: 139806)\n[PASS] testFuzz_transfersConserveSupply(uint256,uint256) (runs: 1000, μ: 159831, ~: 161408)\n[PASS] test_approvalAndTransferFromConsumeAllowance() (gas: 140919)\n[PASS] test_cannotTransferMoreThanBalance() (gas: 52653)\n[PASS] test_cannotTransferOrApproveZeroAddress() (gas: 66550)\n[PASS] test_failedTransferFromDoesNotConsumeAllowance() (gas: 98490)\n[PASS] test_failedTransferFromToZeroRollsBackAllowance() (gas: 110712)\n[PASS] test_infiniteAllowanceUsesStandardSemantics() (gas: 127875)\n[PASS] test_maximumAmountCannotOverflowBalanceOrSpendAllowance() (gas: 215598)\n[PASS] test_metadataAndWholeSupplyToDeployer() (gas: 52573)\n[PASS] test_noMintBurnOrAdministrationEvenForDeployer() (gas: 385796)\n[PASS] test_oneWeiAndEntireSupplyCanMoveAndReturn() (gas: 178338)\n[PASS] test_replacingInfiniteApprovalWithFiniteApprovalLimitsSpending() (gas: 186469)\n[PASS] test_revokedAllowancePreventsSpending() (gas: 109605)\n[PASS] test_selfTransferFromConsumesAllowanceButPreservesBalance() (gas: 102156)\n[PASS] test_transferFromWithoutEnoughAllowanceReverts() (gas: 100347)\n[PASS] test_transferMovesExactAmountAndEmits() (gas: 79868)\n[PASS] test_zeroAndSelfTransfersPreserveBalances() (gas: 119456)\n[PASS] test_zeroTransferFromNeedsNoAllowanceButStillRejectsZeroAddresses() (gas: 121622)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 162.56ms (203.20ms CPU time)\n\nRan 23 tests for test/Guestbook.t.sol:GuestbookTest\n[PASS] testFuzz_appendAndPauseSequencePreservesEveryEntry(bytes32,uint8) (runs: 1000, μ: 2552132, ~: 2215636)\n[PASS] testFuzz_invalidLookupsCannotAliasExistingEntries(uint256,uint160) (runs: 1000, μ: 386500, ~: 386328)\n[PASS] testFuzz_messageLengthAndExactRoundTrip(address,bytes) (runs: 1000, μ: 306006, ~: 291648)\n[PASS] testFuzz_onlyOwnerCanChangePause(address,bool) (runs: 1000, μ: 33788, ~: 33794)\n[PASS] test_141BytesRevertWithoutConsumingSignature() (gas: 219091)\n[PASS] test_contractAddressCanSign() (gas: 163260)\n[PASS] test_directEtherAndPayableSigningRejected() (gas: 76616)\n[PASS] test_distinctSignersCanUseTheSameMessage() (gas: 354002)\n[PASS] test_emptyMessageStillConsumesOnlySignature() (gas: 237342)\n[PASS] test_exactly140BytesAllowed() (gas: 220739)\n[PASS] test_forwardedCallsUseCallingContractIdentity() (gas: 998599)\n[PASS] test_initialState() (gas: 33560)\n[PASS] test_limitCountsUtf8BytesNotCharacters() (gas: 352023)\n[PASS] test_missingSignerAndInvalidIndexRevert() (gas: 216969)\n[PASS] test_nonOwnerCannotPauseOrResume() (gas: 111525)\n[PASS] test_nonzeroMessagesRoundTripAcrossStorageWordBoundaries() (gas: 2146816)\n[PASS] test_ownerCannotEditDeleteResetOrUpgrade() (gas: 341269)\n[PASS] test_ownerHasNoSigningExemption() (gas: 272109)\n[PASS] test_ownerOriginDoesNotAuthorizeForwardingContract() (gas: 259987)\n[PASS] test_pauseResumePreservesEntriesAndRejectedSignerCanRetry() (gas: 557798)\n[PASS] test_repeatedPauseStateIsAllowed() (gas: 114179)\n[PASS] test_signEmitsAndBothLookupsReturnTheEntry() (gas: 201901)\n[PASS] test_zeroOwnerRejected() (gas: 3874)\nSuite result: ok. 23 passed; 0 failed; 0 skipped; finished in 162.69ms (653.17ms CPU time)\n\nRan 2 tests for test/LaunchTokenInvariant.t.sol:LaunchTokenInvariantTest\n[PASS]\nLaunchTokenInvariantTest invariants:\n[PASS] invariant_allowancesMatchApprovalsAndSuccessfulSpending\n[PASS] invariant_fixedSupplyAndExactBalances\n LaunchTokenInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭--------------------+---------------------+-------+---------+----------╮\n| Contract           | Selector            | Calls | Reverts | Discards |\n+=======================================================================+\n| LaunchTokenHandler | approve             | 3309  | 0       | 0        |\n|--------------------+---------------------+-------+---------+----------|\n| LaunchTokenHandler | transfer            | 3348  | 0       | 0        |\n|--------------------+---------------------+-------+---------+----------|\n| LaunchTokenHandler | transferFrom        | 3210  | 0       | 0        |\n|--------------------+---------------------+-------+---------+----------|\n| LaunchTokenHandler | transferFromTooMuch | 3271  | 0       | 0        |\n|--------------------+---------------------+-------+---------+----------|\n| LaunchTokenHandler | transferTooMuch     | 3246  | 0       | 0        |\n╰--------------------+---------------------+-------+---------+----------╯\n\n[PASS] test_handlerExercisesNonzeroSpendingRevocationAndFailures() (gas: 879680)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 3.97s (3.96s CPU time)\n\nRan 2 tests for test/GuestbookInvariant.t.sol:GuestbookInvariantTest\n[PASS]\nGuestbookInvariantTest invariants:\n[PASS] invariant_entriesArePermanentAndBothLookupsAgree\n[PASS] invariant_onlyOwnerControlsPause\n GuestbookInvariantTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭------------------+-------------------+-------+---------+----------╮\n| Contract         | Selector          | Calls | Reverts | Discards |\n+===================================================================+\n| GuestbookHandler | attemptRewrite    | 4129  | 0       | 0        |\n|------------------+-------------------+-------+---------+----------|\n| GuestbookHandler | setPaused         | 4102  | 0       | 0        |\n|------------------+-------------------+-------+---------+----------|\n| GuestbookHandler | sign              | 4088  | 0       | 0        |\n|------------------+-------------------+-------+---------+----------|\n| GuestbookHandler | unauthorizedPause | 4065  | 0       | 0        |\n╰------------------+-------------------+-------+---------+----------╯\n\n[PASS] test_handlerExercisesRejectionRetryAndPermanentEntries() (gas: 1085891)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 6.42s (6.41s CPU time)\n\nRan 5 test suites in 6.42s (10.87s CPU time): 50 tests passed, 0 failed, 0 skipped (50 total tests)\n","passed":true},{"durationMs":70,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Guestbook.setPaused(bool)\",\"Guestbook.sign(string)\",\"LaunchToken.approve(address,uint256)\",\"LaunchToken.transfer(address,uint256)\",\"LaunchToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":69,\"REVIEW.md\":35,\"docs/DEPENDENCIES.md\":51,\"foundry.toml\":18,\"remappings.txt\":2,\"script/Deploy.s.sol\":37,\"src/Guestbook.sol\":76,\"src/LaunchToken.sol\":11,\"test/Guestbook.t.sol\":385,\"test/GuestbookInvariant.t.sol\":140,\"test/LaunchToken.t.sol\":251,\"test/LaunchTokenInvariant.t.sol\":154,\"test/Project.t.sol\":86},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"2402060ce9cdf6164f4ff7661330f8c19e7dfb6275bbc7cabbaf0c301903c9b1","verifiedTreeHash":"3cdccc0796059d42052e605ae6235b700ae7778c","verifierVersion":"0.1.0+41305fb5"},{"checks":[{"durationMs":1257,"exitCode":0,"name":"build","output":"Compiling 31 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.15s\nCompiler run successful!\n","passed":true},{"durationMs":159,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/Project.t.sol:ProjectTest\n[PASS] test_factoryGetsSupplyButExplicitOwnerGetsPauseAuthority() (gas: 362631)\n[PASS] test_guestbookPauseHasNoEffectOnTokenTransfers() (gas: 109642)\n[PASS] test_runtimeSizesAndForbiddenOpcodes() (gas: 1288932)\n[PASS] test_scriptChainValidationWithExplicitInputs() (gas: 1575381)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.67ms (4.09ms CPU time)\n\nRan 13 tests for test/LaunchToken.t.sol:LaunchTokenTest\n[PASS] testFuzz_transferFromConservesSupplyAndAllowance(uint256,uint256) (runs: 256, μ: 137022, ~: 139730)\n[PASS] testFuzz_transfersConserveSupply(uint256,uint256) (runs: 256, μ: 158862, ~: 161430)\n[PASS] test_approvalAndTransferFromConsumeAllowance() (gas: 140831)\n[PASS] test_cannotTransferMoreThanBalance() (gas: 52631)\n[PASS] test_cannotTransferOrApproveZeroAddress() (gas: 66505)\n[PASS] test_failedTransferFromDoesNotConsumeAllowance() (gas: 98435)\n[PASS] test_infiniteAllowanceUsesStandardSemantics() (gas: 127809)\n[PASS] test_metadataAndWholeSupplyToDeployer() (gas: 52573)\n[PASS] test_noMintBurnOrAdministrationEvenForDeployer() (gas: 385740)\n[PASS] test_revokedAllowancePreventsSpending() (gas: 109583)\n[PASS] test_transferFromWithoutEnoughAllowanceReverts() (gas: 100237)\n[PASS] test_transferMovesExactAmountAndEmits() (gas: 79868)\n[PASS] test_zeroAndSelfTransfersPreserveBalances() (gas: 119456)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 8.21ms (17.21ms CPU time)\n\nRan 19 tests for test/Guestbook.t.sol:GuestbookTest\n[PASS] testFuzz_appendAndPauseSequencePreservesEveryEntry(bytes32,uint8) (runs: 256, μ: 2573697, ~: 2252517)\n[PASS] testFuzz_messageLengthAndExactRoundTrip(address,bytes) (runs: 256, μ: 304567, ~: 291626)\n[PASS] testFuzz_onlyOwnerCanChangePause(address,bool) (runs: 256, μ: 33765, ~: 33760)\n[PASS] test_141BytesRevertWithoutConsumingSignature() (gas: 219069)\n[PASS] test_contractAddressCanSign() (gas: 163238)\n[PASS] test_directEtherAndPayableSigningRejected() (gas: 76616)\n[PASS] test_distinctSignersCanUseTheSameMessage() (gas: 354001)\n[PASS] test_emptyMessageStillConsumesOnlySignature() (gas: 237320)\n[PASS] test_exactly140BytesAllowed() (gas: 220695)\n[PASS] test_initialState() (gas: 33538)\n[PASS] test_limitCountsUtf8BytesNotCharacters() (gas: 352001)\n[PASS] test_missingSignerAndInvalidIndexRevert() (gas: 216947)\n[PASS] test_nonOwnerCannotPauseOrResume() (gas: 111525)\n[PASS] test_ownerCannotEditDeleteResetOrUpgrade() (gas: 341247)\n[PASS] test_ownerHasNoSigningExemption() (gas: 272087)\n[PASS] test_pauseResumePreservesEntriesAndRejectedSignerCanRetry() (gas: 557776)\n[PASS] test_repeatedPauseStateIsAllowed() (gas: 114157)\n[PASS] test_signEmitsAndBothLookupsReturnTheEntry() (gas: 201879)\n[PASS] test_zeroOwnerRejected() (gas: 3874)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 75.55ms (94.45ms CPU time)\n\nRan 3 test suites in 76.22ms (87.43ms CPU time): 36 tests passed, 0 failed, 0 skipped (36 total tests)\n","passed":true},{"durationMs":45,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Guestbook.setPaused(bool)\",\"Guestbook.sign(string)\",\"LaunchToken.approve(address,uint256)\",\"LaunchToken.transfer(address,uint256)\",\"LaunchToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":69,\"REVIEW.md\":35,\"docs/DEPENDENCIES.md\":51,\"foundry.toml\":18,\"remappings.txt\":2,\"script/Deploy.s.sol\":37,\"src/Guestbook.sol\":76,\"src/LaunchToken.sol\":11,\"test/Guestbook.t.sol\":306,\"test/LaunchToken.t.sol\":162,\"test/Project.t.sol\":86},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":484,"exitCode":0,"name":"slither","output":"[medium/high] incorrect-equality at src/Guestbook.sol:71: Guestbook.entryBySigner(address) (src/Guestbook.sol#71-75) uses a dangerous strict equality:\n[low/medium] timestamp at src/Guestbook.sol:39: Guestbook.sign(string) (src/Guestbook.sol#39-48) uses timestamp for comparisons\n[low/medium] timestamp at src/Guestbook.sol:62: Guestbook.hasSigned(address) (src/Guestbook.sol#62-64) uses timestamp for comparisons\n[low/medium] timestamp at src/Guestbook.sol:71: Guestbook.entryBySigner(address) (src/Guestbook.sol#71-75) uses timestamp for comparisons\n[low/medium] timestamp at src/Guestbook.sol:66: Guestbook.entryAt(uint256) (src/Guestbook.sol#66-69) uses timestamp for comparisons","passed":true},{"durationMs":216,"exitCode":0,"name":"aderyn","output":"[low] large-numeric-literal at src/LaunchToken.sol:9: Large Numeric Literal","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"8482d86d51e322b6d384f957fdc2472f6352e5332bd41024353558c4d915c0f9","verifiedTreeHash":"4b6fd70e1e3cddf56d958bc9d34ed6a5904bb8d2","verifierVersion":"0.1.0+41305fb5"},{"checks":[{"durationMs":1325,"exitCode":0,"name":"build","output":"Compiling 31 files with Solc 0.8.26\nSolc 0.8.26 finished in 1.23s\nCompiler run successful!\n","passed":true},{"durationMs":142,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 4 tests for test/Project.t.sol:ProjectTest\n[PASS] test_factoryGetsSupplyButExplicitOwnerGetsPauseAuthority() (gas: 362631)\n[PASS] test_guestbookPauseHasNoEffectOnTokenTransfers() (gas: 109642)\n[PASS] test_runtimeSizesAndForbiddenOpcodes() (gas: 1288932)\n[PASS] test_scriptChainValidationWithExplicitInputs() (gas: 1575381)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 5.70ms (3.75ms CPU time)\n\nRan 13 tests for test/LaunchToken.t.sol:LaunchTokenTest\n[PASS] testFuzz_transferFromConservesSupplyAndAllowance(uint256,uint256) (runs: 256, μ: 138123, ~: 139730)\n[PASS] testFuzz_transfersConserveSupply(uint256,uint256) (runs: 256, μ: 159924, ~: 161430)\n[PASS] test_approvalAndTransferFromConsumeAllowance() (gas: 140831)\n[PASS] test_cannotTransferMoreThanBalance() (gas: 52631)\n[PASS] test_cannotTransferOrApproveZeroAddress() (gas: 66505)\n[PASS] test_failedTransferFromDoesNotConsumeAllowance() (gas: 98435)\n[PASS] test_infiniteAllowanceUsesStandardSemantics() (gas: 127809)\n[PASS] test_metadataAndWholeSupplyToDeployer() (gas: 52573)\n[PASS] test_noMintBurnOrAdministrationEvenForDeployer() (gas: 385740)\n[PASS] test_revokedAllowancePreventsSpending() (gas: 109583)\n[PASS] test_transferFromWithoutEnoughAllowanceReverts() (gas: 100237)\n[PASS] test_transferMovesExactAmountAndEmits() (gas: 79868)\n[PASS] test_zeroAndSelfTransfersPreserveBalances() (gas: 119456)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 51.98ms (15.89ms CPU time)\n\nRan 19 tests for test/Guestbook.t.sol:GuestbookTest\n[PASS] testFuzz_appendAndPauseSequencePreservesEveryEntry(bytes32,uint8) (runs: 256, μ: 2412441, ~: 2082230)\n[PASS] testFuzz_messageLengthAndExactRoundTrip(address,bytes) (runs: 256, μ: 305483, ~: 291626)\n[PASS] testFuzz_onlyOwnerCanChangePause(address,bool) (runs: 256, μ: 33765, ~: 33760)\n[PASS] test_141BytesRevertWithoutConsumingSignature() (gas: 219069)\n[PASS] test_contractAddressCanSign() (gas: 163238)\n[PASS] test_directEtherAndPayableSigningRejected() (gas: 76616)\n[PASS] test_distinctSignersCanUseTheSameMessage() (gas: 354001)\n[PASS] test_emptyMessageStillConsumesOnlySignature() (gas: 237320)\n[PASS] test_exactly140BytesAllowed() (gas: 220695)\n[PASS] test_initialState() (gas: 33538)\n[PASS] test_limitCountsUtf8BytesNotCharacters() (gas: 352001)\n[PASS] test_missingSignerAndInvalidIndexRevert() (gas: 216947)\n[PASS] test_nonOwnerCannotPauseOrResume() (gas: 111525)\n[PASS] test_ownerCannotEditDeleteResetOrUpgrade() (gas: 341247)\n[PASS] test_ownerHasNoSigningExemption() (gas: 272087)\n[PASS] test_pauseResumePreservesEntriesAndRejectedSignerCanRetry() (gas: 557776)\n[PASS] test_repeatedPauseStateIsAllowed() (gas: 114157)\n[PASS] test_signEmitsAndBothLookupsReturnTheEntry() (gas: 201879)\n[PASS] test_zeroOwnerRejected() (gas: 3874)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 67.96ms (87.38ms CPU time)\n\nRan 3 test suites in 68.58ms (125.64ms CPU time): 36 tests passed, 0 failed, 0 skipped (36 total tests)\n","passed":true},{"durationMs":55,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Guestbook.setPaused(bool)\",\"Guestbook.sign(string)\",\"LaunchToken.approve(address,uint256)\",\"LaunchToken.transfer(address,uint256)\",\"LaunchToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":4,\"README.md\":69,\"REVIEW.md\":35,\"docs/DEPENDENCIES.md\":51,\"foundry.toml\":18,\"launch.json\":22,\"remappings.txt\":2,\"script/Deploy.s.sol\":37,\"src/Guestbook.sol\":76,\"src/LaunchToken.sol\":11,\"test/Guestbook.t.sol\":306,\"test/LaunchToken.t.sol\":162,\"test/Project.t.sol\":86},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"db712e8daf495b3344ac6c00c593b1a8070b8b66231c802bbc4bf50d8c26b430","verifiedTreeHash":"e4901f6eeaccef5492ca6033e517fbf9f202a02f","verifierVersion":"0.1.0+41305fb5"}]}