{"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":"09034116-d45a-4bad-b453-042149ef93e8","kind":"skill:build-contract-project","nodes":[{"acceptedSubmissionHash":"4e5018e251a0ed77acadd388452db7b85856fe8bf5fc8c8156dd60a3fbc1bdcd","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"d59561da3b378461b7c749f6bd5084477d44993aa94972ddea90f542535751df","skillId":"build-contract-project","state":"accepted"}],"objective":"Continue cc847d8f35bc0b814d390eb76092eed6051c5ae3. Read audit: https://api.imdnotdead.fun/jobs/ca404dfe-00d1-4682-83cb-fa1b28f9826c/report.md\n\nConsolidated integration/fixes, not a rebuild. No deployment, paid Intake calls or signatures.\n\nFIRST resolve integration using official IMD docs, deployed interfaces and records. Trace how workers obtain the full HookSpec, originating Intake ID, chain, deployer, PoolManager/code hash and reviewed source/build. Establish contract-verifiable binding of each signed oracle answer to the correct request/question/artifact. Public API lookup alone is not authentication. No custom backend, hot wallet, new trusted signer or routine founder transaction. If supported, implement and test it; otherwise identify the missing protocol primitive, keep automatic binding disabled and do not invent a workaround. Still complete the fixes below.\n\nFix audit findings:\n- Guarded recovery after finalized-verdict epoch revocation in BOTH callback orders, allowing a fresh review of the same job. Preserve history, consumed UUIDs and deployment replay guards; no ordinary NotPassed verdict shopping.\n- Guarantee a usable deployment window after approval without bypassing staleness policy.\n- Accept legitimate JSON escapes/UTF-8 and irrelevant entries without changing resultHash bytes. Keep strict unique approval/source selection, duplicate/alias rejection and exact hash checks.\n- Bound worst-case parser gas, token counts and document size against target-chain/RPC limits; synchronize SDK limits.\nBind evidence to the exact accepted review and reviewed build; distinguish worker publication from oracle approval.\n\nDeliver runnable before/after regressions, full Foundry/SDK/site results, isolated 200k callback-gas checks and runtime sizes under 24,576 bytes. Preserve fees/recipients, admin policy, compiler and security tests. Update ABI/templates/docs and free-check exact request bodies. Separate local proof, live evidence and unresolved launch blockers.","parentJobId":"d0b06613-a5d7-45bb-af2d-dff73bb429da","planHash":"6e293d26e83ff994bfce9380d9567878f25c7a37627d04606b89b4d6cf764adb","previousHash":"f68e3d47117d4833d8c0a6fe962c050c57984fa0fa62d68f684d37b2ccbe1040","projectId":"28e81139-f2a5-4a5a-a239-b6c315b58e01","publication":{"commit":"9dd97150d292fee26912f9605e0686e4ddbb1645","deliveredAt":"2026-10-17T16:42:27.363Z","repoUrl":"https://github.com/identity-md-launches/launch-1811-build-technical-foundation-hooks"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[],"site":null,"snapshotHash":"80934e75f62d0fea08b8f07a00b11a3b28dffbf8472e904a5214e3c55e9d173e","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"0156cbfaae02d255d05ed8a599e0b142077b0340a5132cc31fd32c0a4b22e21d","device":"377843575071cdb1","findings":[],"hash":"4e5018e251a0ed77acadd388452db7b85856fe8bf5fc8c8156dd60a3fbc1bdcd","nodeId":"36ee4df4-7888-449f-b7a9-79d0779738dd","outcome":"completed","summary":"Implemented recovery, approval-window, JSON/parser limits, and exact review/build evidence fixes. Updated ABI, SDK, templates and docs.\n\nVerified:\n- Foundry: **536 tests pass with both seeds**\n- SDK: **54 pass**; site: **22 pass**\n- Build and formatting pass\n- Isolated 200k callback checks pass\n- Requester: **24,559 bytes**; deployer: **20,427 bytes**\n\nAutomatic binding remains disabled: the inspected protocol lacks authenticated Intake-to-question/artifact linkage. No deployment or paid calls occurred.\n\n[Full report, regressions, live evidence and launch blockers](docs/checks/consolidated/README.md)","treeHash":"f424ba8f4efb93e0ea83e37335f9c9e2bd447718","usage":{"cachedInputTokens":13212160,"inputTokens":561737,"model":"gpt-6-astra","outputTokens":94554,"runtime":"codex","turns":16,"wallClockMs":3442379}}],"verification":[{"checks":[{"durationMs":17911,"exitCode":0,"name":"build","output":"Compiling 144 files with Solc 0.8.26\nSolc 0.8.26 finished in 17.76s\nCompiler run successful with warnings:\nWarning (2018): Function state mutability can be restricted to pure\n  --> test/AcceptedArtifact.t.sol:39:5:\n   |\n39 |     function _file(bytes32 digest) internal view returns (bytes memory) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2018): Function state mutability can be restricted to pure\n   --> test/AcceptedArtifact.t.sol:114:5:\n    |\n114 |     function testCanonicalApprovalHasNoAmbiguousFieldsOrTrailingBytes() public view {\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2018): Function state mutability can be restricted to view\n   --> test/ConsolidatedSecurity.t.sol:248:5:\n    |\n248 |     function testEscapedControlBytesAreIrrelevantRatherThanHexAliases() public {\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","passed":true},{"durationMs":29617,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 1 test for test/LiveOracleVector.t.sol:LiveOracleVectorTest\n[PASS] testCapturedLiveV2SignatureAndDifferentIdNamespaces() (gas: 11552)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 528.20µs (363.34µs CPU time)\n\nRan 2 tests for test/ReviewBinding.t.sol:RequesterOwnershipTest\n[PASS] testMistypedHandoverCanBeCancelledOrReplacedAndOnlyNomineeAccepts() (gas: 430516)\n[PASS] testZeroAndSelfHandoversRefusedWithoutLosingControl() (gas: 103725)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 4.20ms (1.11ms CPU time)\n\nRan 4 tests for test/OracleConformance.t.sol:OracleConformanceTest\n[PASS] testProtocolSignatureVerifiesBeforeItsNonBoolAnswerIsRefused() (gas: 4468151)\n[PASS] test_acceptsAFreshSignatureFromTheVectorKeyAsDelivered() (gas: 4551477)\n[PASS] test_callbackSelectorsAreCanonical() (gas: 3965)\n[PASS] test_digestMatchesTheProtocol() (gas: 13912)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 4.32ms (1.85ms CPU time)\n\nRan 1 test for test/JobProtocolTuple.t.sol:JobProtocolGasTest\n[PASS] testColdTupleWithLongURIFits200kAndRuntimeLimit() (gas: 961386)\nLogs:\n  Cold job tuple with 4096-byte URI minimum forwarded gas: 67030\n  Requester deployed runtime bytes: 24559\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.24ms (967.28µs CPU time)\n\nRan 1 test for test/UriPilotGas.t.sol:UriPilotGasTest\n[PASS] testColdMeasuredUriBoundaryAndOneAttemptFeeLoss() (gas: 1017396)\nLogs:\n  Local cold URI bytes delivered under exact 200k: 20224\n  Local cold URI bytes exceeding exact 200k: 20256\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.92ms (689.23µs CPU time)\n\nRan 1 test for test/AuditReceiptConflictProof.t.sol:StuckReceiptProofTest\n[PASS] testOwnerCanCloseReceiptWhoseUuidWasConsumedElsewhere() (gas: 2549155)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 7.11ms (2.68ms CPU time)\n\nRan 7 tests for test/FeaturedAdversarial.t.sol:FeaturedAdversarialTest\n[PASS] testFalseRevertingMalformedAndNoMovementTokensCannotCreateCredit() (gas: 1201538)\n[PASS] testMissingTokenCodeAfterConfigurationCannotFakeTransfer() (gas: 68113)\n[PASS] testNoReturnTokenWorksForDepositsAndWithdrawals() (gas: 264270)\n[PASS] testProceedsWithdrawalAlsoGuardsReentrancy() (gas: 1621022)\n[PASS] testRecipientCannotBlockCancellationOrSettlementAndFailedClaimRollsBack() (gas: 2093568)\n[PASS] testTaxedOrFailedWithdrawalRollsBackAndRemainsRetryable() (gas: 1194337)\n[PASS] testTokenCallbacksCannotReenterAnyCustodyMutation() (gas: 3108803)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 7.09ms (5.21ms CPU time)\n\nRan 3 tests for test/DeployHookJobRequester.t.sol:DeployHookJobRequesterTest\n[PASS] testCheckRefusesAddressesWithoutCodeAndUnsoldActions() (gas: 136180)\n[PASS] testDeployThenConfigureGivesAWorkingRequesterOwnedByTheNamedOwner() (gas: 11373227)\n[PASS] testRunRefusesZeroBroadcaster() (gas: 137448)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 8.59ms (6.29ms CPU time)\n\nRan 6 tests for test/OracleSigner.t.sol:OracleSignerTest\n[PASS] testContractSignerUsesErc1271FallbackUnderTheStipend() (gas: 5164748)\n[PASS] testDelegatedSignerStillRejectsWrongKeyTamperingAndMalformedEcdsa() (gas: 5041963)\n[PASS] testEcdsaKeyRemainsValidEvenIfItsCodeRejectsErc1271() (gas: 4787067)\n[PASS] testEip7702DesignatorDoesNotDisableTheSignersEcdsaKey() (gas: 4801188)\n[PASS] testErc1271RevocationRevertAndShortReturnFailClosedAndDoNotConsume() (gas: 5585022)\n[PASS] testFutureAttestationIsRefusedWithoutConsumingIt() (gas: 4718071)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 14.91ms (11.58ms CPU time)\n\nRan 29 tests for test/HookJobRequester.t.sol:HookJobRequesterTest\n[PASS] testAnswerSignedForAnotherConsumerRefused() (gas: 4722040)\n[PASS] testBodyIsExactTemplateWithStepsSpecAndQuotedBrief() (gas: 2754088)\n[PASS] testBriefValidation() (gas: 3551483)\n[PASS] testCallbackWithUnexpectedAbiFailsSafeAndJobCanExpire() (gas: 2861503)\n[PASS] testCallbacksFitTheIntakeStipend() (gas: 5177037)\n[PASS] testConstructorRefusesZeroAddresses() (gas: 10483)\n[PASS] testForgedExpiredWeakOrMistypedAnswersRefused() (gas: 5575876)\n[PASS] testFuzzPrintableAsciiBriefAcceptedUnlessReserved(bytes32,uint8) (runs: 256, μ: 1402756, ~: 2527071)\nLogs:\n  Bound result 20\n\n[PASS] testJobFailureClosesJobOnceAndIsNotAVerdict() (gas: 4301015)\n[PASS] testJobIdCollidingWithPendingReviewAskRefused() (gas: 6051824)\n[PASS] testOpenJobPaysOncePullsExactPriceAndTracksRequestId() (gas: 3106678)\n[PASS] testOwnerSettersAreOwnerOnlyAndValidated() (gas: 673846)\n[PASS] testPriceCeilingProtectsStandingAllowance() (gas: 8235378)\n[PASS] testResultAcceptedOnceFromIntakeOnly() (gas: 2775319)\n[PASS] testReusedRequestIdRefused() (gas: 3209151)\n[PASS] testReviewExpiryRequestedByRequesterAndConfirmedByOwner() (gas: 4908491)\n[PASS] testReviewFailureLeavesNoVerdictAndAllowsRetry() (gas: 6835924)\n[PASS] testReviewNotPassedIsStoredNotReverted() (gas: 4813203)\n[PASS] testReviewOnlyForDeliveredOrExpiredJobsByRequester() (gas: 4942122)\n[PASS] testReviewPassedOnlyFromSignedOracleAnswer() (gas: 5094180)\n[PASS] testSameAttestationCannotSettleASecondAsk() (gas: 9313303)\n[PASS] testSignerRotationTakesEffect() (gas: 4899108)\n[PASS] testStaticSiteReadContract() (gas: 2678750)\n[PASS] testSweepRecoversStrayTokens() (gas: 137051)\n[PASS] testUnconfiguredRequesterRefusesUntilOwnerSetsTemplates() (gas: 4914793)\n[PASS] testUnknownRequestIdRefused() (gas: 142490)\n[PASS] testUnpricedActionAndVersion1IntakeRefusedWithoutPayment() (gas: 745609)\n[PASS] testVersion1IntakeWorksWithTheFailureHookOff() (gas: 7598159)\n[PASS] testWalletMustApproveAndPay() (gas: 645781)\nSuite result: ok. 29 passed; 0 failed; 0 skipped; finished in 76.34ms (72.75ms CPU time)\n\nRan 5 tests for test/FeaturedTransfer.t.sol:FeaturedTransferTest\n[PASS] testBuyerCanClearSellersAdAndBuyItsOwnWhileOnlySellerGetsRefund() (gas: 3188812)\n[PASS] testFuzzNewOwnerCancellationConservesAllCredits(uint256) (runs: 256, μ: 1712446, ~: 1713805)\nLogs:\n  Bound result 15161\n\n[PASS] testIntermediateOwnerLosesCancellationPowerButOriginalPayerKeepsIt() (gas: 1869005)\n[PASS] testNewOwnerCannotCancelAtExpiryAndCanRenewBeforeOldSettlement() (gas: 2169353)\n[PASS] testProposedOwnerCannotCancelUntilAcceptingAndAdminCannotCancel() (gas: 1838309)\nSuite result: ok. 5 passed; 0 failed; 0 skipped; finished in 91.91ms (90.87ms CPU time)\n\nRan 1 test for test/AuditExpiryProof.t.sol:ExpiryFrontRunShoppingTest\n[PASS] testRequesterFrontRunsLateNotPassedWithExpiryAndReasks() (gas: 1259223)\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.32ms (1.05ms CPU time)\n\nRan 21 tests for test/FeaturedPlacements.t.sol:FeaturedPlacementsTest\n[PASS] testAdminRotationIsTwoStepAndDoesNotControlCustody() (gas: 805868)\n[PASS] testBadTokenConfigurationAndConstructorArguments() (gas: 1022284)\n[PASS] testCancelledPlacementCannotSettleOrCancelTwice() (gas: 1586722)\n[PASS] testDepositWithdrawBelongsToDepositorAndCannotBeSwept() (gas: 693423)\n[PASS] testDirectTransfersAreNotCreditsAndCannotBeSwept() (gas: 496850)\n[PASS] testEditingInvalidatesStalePurchaseAndFeeDisclosuresAreSnapshotted() (gas: 1995083)\n[PASS] testExpirySettlementIsPermissionlessAndCannotBeRepeatedOrRefunded() (gas: 1830989)\n[PASS] testFeaturedOrderingPaginationAndLabelsSkipCancelledAndExpired() (gas: 3095145)\n[PASS] testFuzzCancellationConservesFundsAndRoundsInPayersFavor(uint256) (runs: 256, μ: 1590479, ~: 1591843)\nLogs:\n  Bound result 14099\n\n[PASS] testHalfDurationCancellationSplitsFeeAndProceedsArePullBased() (gas: 1742376)\n[PASS] testImmediateCancellationFullyRefundsThenOwnerCanWithdraw() (gas: 1648242)\n[PASS] testOnlyListingOwnerCanBuyAndUnrelatedAccountsCannotCancelIncludingAdmin() (gas: 1766171)\n[PASS] testPurchaseCostsExactlyPointOneImdAndHasSevenDayAdLabel() (gas: 1481632)\n[PASS] testRecipientRotationInvalidatesStalePurchaseBeforeFundsAreLocked() (gas: 1453614)\n[PASS] testRecipientsAreSnapshottedAndChangingThemCannotTakeOldFunds() (gas: 2414968)\n[PASS] testSingleLivePlacementButCanRenewUnsettledExpiredOrCancelledPlacement() (gas: 2497512)\n[PASS] testSnapshotSurvivesEditingArchivingTransferAndRefundStaysWithPayer() (gas: 2399315)\n[PASS] testStaleTermsInactiveListingInsufficientBalanceAndDeadlineFailBeforeDebit() (gas: 1405175)\n[PASS] testUnknownIdsAndInvalidPagesFail() (gas: 228111)\n[PASS] testUnsetConfigurationAndTokenCanOnlyBeChosenOnce() (gas: 703556)\n[PASS] testZeroAmountsInvalidRecipientsAndExcessWithdrawalsFail() (gas: 629582)\nSuite result: ok. 21 passed; 0 failed; 0 skipped; finished in 126.06ms (130.02ms CPU time)\n\nRan 11 tests for test/HookListingRegistry.t.sol:HookListingRegistryTest\n[PASS] testAuditUrlAndAuditLabelNeverConferVerification() (gas: 1866291)\n[PASS] testFreeCreateAndEditPersistAllFieldsAndHistory() (gas: 1618302)\n[PASS] testFuzzUnauthorizedCallerCannotModifyListing(address) (runs: 256, μ: 842681, ~: 842726)\n[PASS] testFuzzValidLabelsRemainSearchable(uint128) (runs: 256, μ: 747359, ~: 746840)\n[PASS] testInvalidIdentityUnknownRecordsAndPagesRevert() (gas: 931804)\n[PASS] testInvalidMetadataIsAtomicAndReferencesMayBeAbsent() (gas: 1106108)\n[PASS] testLabelValidationBoundsAndDuplicates() (gas: 965451)\n[PASS] testSameHookCanHaveIndependentOwnersButNoOwnerDuplicates() (gas: 2284749)\n[PASS] testSearchByLabelChainOwnerAndVisibilityUsesBoundedAscendingCursor() (gas: 2329424)\n[PASS] testTransferCanBeCancelledOrReplaced() (gas: 1022369)\n[PASS] testTwoStepListingTransferAndDuplicateProtection() (gas: 1824321)\nSuite result: ok. 11 passed; 0 failed; 0 skipped; finished in 211.96ms (129.95ms CPU time)\n\nRan 8 tests for test/ReviewReceiptGas.t.sol:ReviewReceiptGasTest\n[PASS] testAudit22ColdReadsNowRetainsOneShotReceiptAndBoundVerdict() (gas: 3610289)\nLogs:\n  Cold audit registry +22 reads receipt minimum forwarded gas: 187209\n  Cold audit registry +22 reads bound minimum forwarded gas: 157006\n\n[PASS] testColdEoaReceiptGasAndExactStipend() (gas: 1707977)\nLogs:\n  Cold EOA receipt minimum forwarded gas: 124962\n\n[PASS] testColdFiveOfSevenReceiptAfterExpiryRequestFitsStipend() (gas: 2897936)\nLogs:\n  Cold 5-of-7 receipt after expiry request minimum forwarded gas: 170055\n\n[PASS] testColdFiveOfSevenReceiptAndBoundCallbacksFitStipend() (gas: 4850809)\nLogs:\n  Cold 5-of-7 receipt minimum forwarded gas: 170055\n  Cold 5-of-7 bound minimum forwarded gas: 140113\n\n[PASS] testColdFiveOfSevenRetryReceiptBeforeReservationReleaseFitsStipend() (gas: 2999837)\nLogs:\n  Cold 5-of-7 reserved retry receipt minimum forwarded gas: 170055\n\n[PASS] testColdWrongPrebindingRetainsReceiptWithFiveOfSevenAndAuditSigner() (gas: 4636431)\nLogs:\n  Cold 5-of-7 mismatched pre-binding minimum forwarded gas: 175101\n  Cold audit +22 reads mismatched pre-binding minimum forwarded gas: 192264\n\n[PASS] testFuzzMultisignerRefusesWrongKeyDuplicateRevokedExpiredOrInsufficientSignatures(uint8) (runs: 256, μ: 443832, ~: 446707)\nLogs:\n  Bound result 4\n\n[PASS] testOverBudgetSignerStillFailsClosedAndLosesSingleAttemptWithoutPartialReceipt() (gas: 833901)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 242.46ms (222.84ms CPU time)\n\nRan 5 tests for test/ParserGas.t.sol:ParserWorstCaseTest\n[PASS] testLimitsRejectBeforeUnboundedWork() (gas: 2715866)\n[PASS] testMaximumEscapedDocument() (gas: 85106173)\nLogs:\n  max surrogate escapes parser gas: 6905962\n  tokens: 3\n\n[PASS] testMaximumNumberAndWhitespace() (gas: 13935765)\nLogs:\n  max number parser gas: 6611262\n  tokens: 3\n  max whitespace parser gas: 4099623\n  tokens: 1\n\n[PASS] testMaximumTokensAndBytes() (gas: 8964677)\nLogs:\n  max tokens+bytes parser gas: 7404560\n  tokens: 512\n\n[PASS] testWorstWidthPlusMaximumBytes() (gas: 9346230)\nLogs:\n  max width+bytes parser gas: 7531419\n  tokens: 397\n\nSuite result: ok. 5 passed; 0 failed; 0 skipped; finished in 94.88ms (94.68ms CPU time)\n\nRan 11 tests for test/JobProtocolTuple.t.sol:JobProtocolTupleTest\n[PASS] testDuplicateCannotReplaceHashOrURI() (gas: 2750916)\n[PASS] testEmptyURICanBeReportedWithoutReviewApproval() (gas: 2685618)\n[PASS] testFuzzLateTupleWorksBeforeOrAfterLocalExpiry(bool) (runs: 256, μ: 2763182, ~: 2763182)\n[PASS] testFuzzSuppliedHashAndURIBytesArePreserved(bytes32,uint16) (runs: 256, μ: 2780283, ~: 2748517)\nLogs:\n  Bound result 66\n\n[PASS] testLateTuplePreservesFinalizedNegativeReview() (gas: 5006057)\n[PASS] testMalformedTuplesLoseOnlyTheSingleIntakeAttempt() (gas: 17490781)\n[PASS] testObsoleteSelectorIsNotAnAlias() (gas: 2683843)\n[PASS] testProtocolTuple() (gas: 2655264)\n[PASS] testRegisteredSelectorAndResultEventsMatchProtocol() (gas: 2906729)\n[PASS] testUnauthorizedTupleLeavesJobAndLogsUntouched() (gas: 2776715)\n[PASS] testUnknownTupleCannotDeliverAnotherRequest() (gas: 2688017)\nSuite result: ok. 11 passed; 0 failed; 0 skipped; finished in 246.06ms (382.22ms CPU time)\n\nRan 3 tests for test/ReviewReceiptPacking.t.sol:ReviewReceiptPackingTest\n[PASS] testAllocatedMetadataIsNotAnAnswerAndReadAbiRemainsTenWords() (gas: 4228634)\n[PASS] testFuzzReceiptPreservesFullContextAndPackedFields(uint64,uint64,uint64,uint16,uint16,bool,uint256) (runs: 256, μ: 4810514, ~: 4810567)\nLogs:\n  Bound result 0\n  Bound result 5\n  Bound result 5\n\n[PASS] testReceiptPackingMaximumValuesDoNotLeakIntoAdjacentFields() (gas: 4800649)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 311.84ms (308.10ms CPU time)\n\nRan 25 tests for test/Deployment.t.sol:DeploymentTest\n[PASS] testAllNamedMainnetsAndUnknownChainsRejected() (gas: 4440)\n[PASS] testAnyoneMayDeployIdenticalPlanWithoutTakingOwnership() (gas: 3340102)\n[PASS] testChangedConstructorSettingsInvalidateCachedPlan() (gas: 2452880)\n[PASS] testChangingManagerChangesCommitments() (gas: 4456007)\n[PASS] testDuplicateDeploymentRejectedAndMinerSkipsOccupiedAddress() (gas: 3409894)\n[PASS] testFuzzOnlyExactPermissionMaskAccepted(uint160) (runs: 256, μ: 29868, ~: 30225)\n[PASS] testFuzzPredictionMatchesIndependentCreate2Formula(address,bytes32,bytes32) (runs: 256, μ: 3933, ~: 3933)\n[PASS] testFuzzSpecLimitCommitsToExactConstructor(uint128,bytes32) (runs: 256, μ: 44323, ~: 44323)\n[PASS] testInvalidSearchRanges() (gas: 100769)\n[PASS] testInvalidSpecFieldsRejected() (gas: 161488)\n[PASS] testManagerCodeChangeFailsClosed() (gas: 2410875)\n[PASS] testManagerMustHaveExpectedCode() (gas: 68520)\n[PASS] testPredictionDeploymentPermissionsSettingsAndBytecodeAgree() (gas: 3496937)\n[PASS] testPrefundedPredictedAddressStillDeploys() (gas: 3331370)\n[PASS] testScriptUsesSamePlanAndDeploymentAsStore() (gas: 7192658)\n[PASS] testScriptsRejectMissingBroadcaster() (gas: 7147621)\n[PASS] testSearchExhaustionAndResume() (gas: 6291072)\n[PASS] testStaleOrForgedScriptPlansRejected() (gas: 6271704)\n[PASS] testTestnetPolicyIdsOnlyLocalSimulation() (gas: 7542)\n[PASS] testVerificationDetectsCorruptedConstructorStorage() (gas: 3314813)\n[PASS] testVerificationDetectsCorruptedRuntime() (gas: 3308499)\n[PASS] testVerifyUndeployedOrWrongAddressRejected() (gas: 2430633)\n[PASS] testWrongChainRejected() (gas: 29640)\n[PASS] testWrongExpectedAddressAndHashRejected() (gas: 2458895)\n[PASS] testWrongSaltRejectedByFactoryAndConstructor() (gas: 98469)\nSuite result: ok. 25 passed; 0 failed; 0 skipped; finished in 366.99ms (161.19ms CPU time)\n\nRan 15 tests for test/HookIntegration.t.sol:HookIntegrationTest\n[PASS] testAllDirectionsAndExactModesAcceptLimit() (gas: 650218)\n[PASS] testDuplicatePoolInitializationFails() (gas: 41653)\n[PASS] testDynamicFeePoolRejectedAtomically() (gas: 97839)\n[PASS] testFuzzHookDataHasNoAuthority(bytes) (runs: 256, μ: 210237, ~: 210034)\n[PASS] testFuzzRealSwapsSettleAndConserve(uint128,bool,bool,bool) (runs: 256, μ: 280996, ~: 278533)\nLogs:\n  Bound result 4373\n\n[PASS] testFuzzSignedBoundaryAndNeutralReturn(int256,bytes) (runs: 256, μ: 30794, ~: 29816)\n[PASS] testFuzzUnauthorizedCallbacks(address) (runs: 256, μ: 95013, ~: 95102)\n[PASS] testIntMinIntMaxAndZeroFailClearly() (gas: 88270)\n[PASS] testLimitCapsOnlySpecifiedSideNotUnspecifiedSide() (gas: 427039)\n[PASS] testLiquidityWithdrawalRemainsAvailableAfterRejectedSwap() (gas: 184825)\n[PASS] testOverLimitRevertsThroughManagerInAllModes() (gas: 253819)\n[PASS] testSettlementFailureRollsBackCounterAndPoolState() (gas: 388376)\n[PASS] testTwoNewPoolsReuseOneDeployedHook() (gas: 624953)\n[PASS] testUnusedCallbacksAlwaysRevert() (gas: 209241)\n[PASS] testWrongHookAndUnknownPoolRejected() (gas: 124522)\nSuite result: ok. 15 passed; 0 failed; 0 skipped; finished in 151.12ms (142.50ms CPU time)\n\nRan 6 tests for test/RequesterMvpAudit.t.sol:RequesterMvpPaymentTest\n[PASS] testCallerLimitZeroFailsAndLowerQuoteChargesOnlyQuote() (gas: 2872415)\n[PASS] testExistingDonationsCannotHideUnderpaymentOrBecomeCallerFunds() (gas: 5129600)\n[PASS] testFuzzCallerLimitSurvivesOwnerCeilingIncreaseAndIntakePriceMove(bool,uint96) (runs: 256, μ: 3712192, ~: 4473098)\nLogs:\n  Bound result 1\n\n[PASS] testFuzzInexactIncomingTokensCannotSpendPreexistingDonations(uint8) (runs: 256, μ: 1345195, ~: 1346718)\nLogs:\n  Bound result 1\n\n[PASS] testFuzzUnderspendingIntakeRollsBackAllStateAndLeavesNothingSweepable(uint256,bool,bool) (runs: 256, μ: 5569980, ~: 5907577)\nLogs:\n  Bound result 25647596775635\n\n[PASS] testTokenCallbackCannotReenterSweepOrChangePaymentConfiguration() (gas: 9031788)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 413.07ms (408.67ms CPU time)\n\nRan 11 tests for test/ReviewRecovery.t.sol:ReviewRecoveryTest\n[PASS] testBoundOrTerminalAsksCannotBeDiscarded() (gas: 4905054)\n[PASS] testDiscardingDuplicateReceiptDoesNotClearGenuineConsumedUuid() (gas: 9195914)\n[PASS] testExpiredJobFalseVerdictRemainsTerminalEvenIfReviewLaterCompletes() (gas: 4851845)\n[PASS] testFuzzOwnerCannotDiscardReceiptWithMatchingContext(bool) (runs: 256, μ: 4784705, ~: 4784705)\n[PASS] testFuzzReleaseUnusedReservationAfterExpiryOrFailureThenFinalizeRetry(bool,bool) (runs: 256, μ: 11277809, ~: 11279507)\n[PASS] testFuzzSameUuidFieldMismatchCannotDiscardReceipt(uint8) (runs: 256, μ: 4706583, ~: 4706781)\nLogs:\n  Bound result 2\n\n[PASS] testLateNotPassedReceiptCannotBeFrontRunByRequesterExpiry() (gas: 4820651)\n[PASS] testRecoveryRequiresCurrentOwnerExactBodyValidContextAndReceipt() (gas: 4979326)\n[PASS] testReservationReleaseRejectsUnknownUnboundAndPendingHolderEvenPastDeadline() (gas: 8914781)\n[PASS] testSignerRotationPreservesRetainedVerificationButRejectsUndeliveredOldSignature() (gas: 9419633)\n[PASS] testSwappedReceiptOwnerClosesWrongAskWithoutStrandingGenuineUuid() (gas: 11840564)\nSuite result: ok. 11 passed; 0 failed; 0 skipped; finished in 885.84ms (1.25s CPU time)\n\nRan 9 tests for test/AcceptedArtifact.t.sol:AcceptedArtifactTest\n[PASS] testCanonicalApprovalHasNoAmbiguousFieldsOrTrailingBytes() (gas: 48269)\n[PASS] testCompletionFlagsAndApprovalMetadataCannotBeCoerced() (gas: 6088366)\n[PASS] testDuplicateKeysAnywhereAndEscapedAliasesFailClosed() (gas: 2945300)\n[PASS] testFuzzDifferentArtifactOrSourceCannotMatch(bytes32,bool) (runs: 256, μ: 1038032, ~: 1062182)\n[PASS] testMalformedJsonAndBoundsRefuseInsteadOfGuessing() (gas: 926694)\n[PASS] testOnlyUniqueTopLevelAcceptedFileAuthorizesArtifact() (gas: 2562793)\n[PASS] testRejectedOnlyAndDuplicateFileEntriesFailClosed() (gas: 1952999)\n[PASS] testSourceMustBeAcceptedAndUnambiguous() (gas: 3063192)\n[PASS] testWhitespaceAndReorderedMembersPreserveExactFileBinding() (gas: 1059927)\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 1.68s (1.71s CPU time)\n\nRan 7 tests for test/ReviewAuditRegression.t.sol:ReviewAuditRegressionTest\n[PASS] testExpiryNeedsDeadlineAndCurrentOwnerApprovalForExactAsk() (gas: 6912657)\n[PASS] testExpiryRequestAllowsBindingBeforeLateDelivery() (gas: 4984722)\n[PASS] testFuzzExactConflictRecoveryPreservesOtherAskAndReplayProtection(bool,bool,bool) (runs: 256, μ: 11654966, ~: 11654958)\n[PASS] testFuzzExpiryAndDeliveryBothOrdersPreserveVerdictAndBlockRetries(bool,bool,bool) (runs: 256, μ: 5171930, ~: 5207933)\n[PASS] testFuzzSameUuidTypoCannotDiscardGenuineNegativeEvenWithConflict(uint8,bool) (runs: 256, μ: 7134531, ~: 5049745)\nLogs:\n  Bound result 0\n\n[PASS] testFuzzUnavailableDifferentTrueUuidCannotDiscardGenuineNegative(uint8) (runs: 256, μ: 9535923, ~: 9531615)\nLogs:\n  Bound result 2\n\n[PASS] testIntakeFailureAfterExpiryRequestAllowsRetryAndInvalidatesOldApproval() (gas: 6484893)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.76s (3.06s CPU time)\n\nRan 52 tests for test/ApprovalBindingRegression.t.sol:ApprovalBindingRegressionTest\n[PASS] testApprovedADeploysFromSnapshotThatAlsoMentionsRejectedB() (gas: 8793760)\n[PASS] testArtifactFieldEditNotInReviewedResult() (gas: 7213930)\n[PASS] testAutomaticBindingRemainsDisabled() (gas: 8479)\n[PASS] testBoundedSwapHookDeploysThroughGateAndInitializesPool() (gas: 12437552)\n[PASS] testCheckViewMatchesDeploy() (gas: 7870199)\n[PASS] testConstructorRejectsZeroRequesterAndOwner() (gas: 6074)\n[PASS] testDisabledManagerRefused() (gas: 6938905)\n[PASS] testEmptyRuntimeRefused() (gas: 8552424)\n[PASS] testEnvironmentDependentRuntimeRefused() (gas: 20064107)\n[PASS] testEpochIsVerificationTimeNotAskTime() (gas: 8297463)\n[PASS] testExpectedHookMismatchRefused() (gas: 7918991)\n[PASS] testForgedResultDocumentRefused() (gas: 6945138)\n[PASS] testForgedSignatureNeverApproves() (gas: 6872418)\n[PASS] testFuzzAnyValidMaskDeploys(uint16) (runs: 256, μ: 11874610, ~: 10694274)\n[PASS] testFuzzBothOrdersKeepEpochAcrossOrdinaryRotation(bool,bool) (runs: 256, μ: 7737561, ~: 8254657)\n[PASS] testGeneratedHookDeploysAfterBindThenCallback() (gas: 8253360)\n[PASS] testGeneratedHookDeploysAfterCallbackThenBind() (gas: 8331097)\n[PASS] testInvalidMasksRefused() (gas: 42432)\n[PASS] testJobReplayRefused() (gas: 13004100)\n[PASS] testLyingManagerReadbackRefused() (gas: 10863852)\n[PASS] testLyingPermissionsReadbackRefused() (gas: 14949422)\n[PASS] testManagerCodeHashMismatchRefused() (gas: 6911622)\n[PASS] testMarkerFormat() (gas: 31849)\n[PASS] testMaxJobAgeBounds() (gas: 103304)\n[PASS] testMissingSignerProvenanceFailsClosed() (gas: 6938480)\n[PASS] testNoReviewRefused() (gas: 4766781)\n[PASS] testNotPassedRefused() (gas: 6931540)\n[PASS] testOccupiedAddressRefused() (gas: 7919470)\n[PASS] testOnlyJobRequesterMayDeploy() (gas: 6931297)\n[PASS] testOnlyOwnerSetsManager() (gas: 40150)\n[PASS] testOtherJobsApprovalCannotBeBorrowed() (gas: 13999441)\n[PASS] testPendingReviewRefused() (gas: 6670605)\n[PASS] testPinnedManagerRefusedWhenLiveCodeDiffers() (gas: 63586)\n[PASS] testProductionChainsAcceptOnlyPinnedManager() (gas: 297499)\n[PASS] testReenteringConstructorCannotReuseApproval() (gas: 21573530)\n[PASS] testRegressionBindFirstRevokedEpochCannotDeploy() (gas: 7102521)\n[PASS] testRegressionRejectedNestedArtifactCannotDeploy() (gas: 7026847)\n[PASS] testRejectedSignatureLeavesNoProvenance() (gas: 6819339)\n[PASS] testRetainedUnboundReceiptIsNotApproval() (gas: 6594743)\n[PASS] testRevertingConstructorLeavesApprovalUnused() (gas: 9540778)\n[PASS] testRevokedSignerEpochBlocksRetainedVerdict() (gas: 7171550)\n[PASS] testStaleApprovalRefused() (gas: 6973169)\n[PASS] testSubstitutedConstructorArgsRefused() (gas: 6910279)\n[PASS] testSubstitutedCreationCodeRefused() (gas: 6908324)\n[PASS] testUnansweredReviewRefused() (gas: 6722168)\n[PASS] testUndeliveredJobRefused() (gas: 2974048)\n[PASS] testUnminedSaltRefused() (gas: 7926151)\n[PASS] testUnsupportedChainRefused() (gas: 41009)\n[PASS] testWrongChainRefused() (gas: 6899332)\n[PASS] testWrongDeployerRefused() (gas: 6979887)\n[PASS] testWrongManagerRefused() (gas: 11287280)\n[PASS] testWrongMaskRefused() (gas: 7019313)\nSuite result: ok. 52 passed; 0 failed; 0 skipped; finished in 2.02s (3.62s CPU time)\n\nRan 46 tests for test/ParserGas.t.sol:ParserDeploymentGasTest\n[PASS] testArtifactFieldEditNotInReviewedResult() (gas: 7213992)\n[PASS] testBoundedSwapHookDeploysThroughGateAndInitializesPool() (gas: 12437598)\n[PASS] testCheckViewMatchesDeploy() (gas: 7870217)\n[PASS] testConstructorRejectsZeroRequesterAndOwner() (gas: 6119)\n[PASS] testDisabledManagerRefused() (gas: 6938922)\n[PASS] testEmptyRuntimeRefused() (gas: 8552464)\n[PASS] testEnvironmentDependentRuntimeRefused() (gas: 20064081)\n[PASS] testExpectedHookMismatchRefused() (gas: 7918964)\n[PASS] testForgedResultDocumentRefused() (gas: 6945156)\n[PASS] testForgedSignatureNeverApproves() (gas: 6872481)\n[PASS] testFuzzAnyValidMaskDeploys(uint16) (runs: 256, μ: 12016639, ~: 10694298)\n[PASS] testGeneratedHookDeploysAfterBindThenCallback() (gas: 8253357)\n[PASS] testGeneratedHookDeploysAfterCallbackThenBind() (gas: 8331114)\n[PASS] testInvalidMasksRefused() (gas: 42418)\n[PASS] testJobReplayRefused() (gas: 13004168)\n[PASS] testLyingManagerReadbackRefused() (gas: 10863826)\n[PASS] testLyingPermissionsReadbackRefused() (gas: 14949417)\n[PASS] testManagerCodeHashMismatchRefused() (gas: 6911573)\n[PASS] testMarkerFormat() (gas: 31871)\n[PASS] testMaxJobAgeBounds() (gas: 103282)\n[PASS] testMaximumDocumentAndRuntimeFitTransactionBudget() (gas: 53809882)\nLogs:\n  max document check gas: 8999236\n  max document + 24576 runtime deploy execution gas: 14298632\n\n[PASS] testMaximumSourceEntriesAndRuntimeFitTransactionBudget() (gas: 30325741)\nLogs:\n  max document check gas: 7670768\n  max document + 24576 runtime deploy execution gas: 12961145\n\n[PASS] testNoReviewRefused() (gas: 4766816)\n[PASS] testNotPassedRefused() (gas: 6931536)\n[PASS] testOccupiedAddressRefused() (gas: 7919444)\n[PASS] testOnlyJobRequesterMayDeploy() (gas: 6931292)\n[PASS] testOnlyOwnerSetsManager() (gas: 40172)\n[PASS] testOtherJobsApprovalCannotBeBorrowed() (gas: 13999471)\n[PASS] testPendingReviewRefused() (gas: 6670616)\n[PASS] testPinnedManagerRefusedWhenLiveCodeDiffers() (gas: 63564)\n[PASS] testProductionChainsAcceptOnlyPinnedManager() (gas: 297502)\n[PASS] testReenteringConstructorCannotReuseApproval() (gas: 21573620)\n[PASS] testRetainedUnboundReceiptIsNotApproval() (gas: 6594717)\n[PASS] testRevertingConstructorLeavesApprovalUnused() (gas: 9540846)\n[PASS] testRevokedSignerEpochBlocksRetainedVerdict() (gas: 7171568)\n[PASS] testStaleApprovalRefused() (gas: 6973209)\n[PASS] testSubstitutedConstructorArgsRefused() (gas: 6910319)\n[PASS] testSubstitutedCreationCodeRefused() (gas: 6908386)\n[PASS] testUnansweredReviewRefused() (gas: 6722219)\n[PASS] testUndeliveredJobRefused() (gas: 2974092)\n[PASS] testUnminedSaltRefused() (gas: 7926147)\n[PASS] testUnsupportedChainRefused() (gas: 41053)\n[PASS] testWrongChainRefused() (gas: 6899286)\n[PASS] testWrongDeployerRefused() (gas: 6979927)\n[PASS] testWrongManagerRefused() (gas: 11287342)\n[PASS] testWrongMaskRefused() (gas: 7019264)\nSuite result: ok. 46 passed; 0 failed; 0 skipped; finished in 2.02s (2.57s CPU time)\n\nRan 12 tests for test/AuditContextMismatchProof.t.sol:AuditContextMismatchProofTest\n[PASS] testAsynchronousRefusalAfterPaymentClosesWithoutRefund() (gas: 5783311)\n[PASS] testContextMismatchRecoveryCannotSetAsideAMatchingVerdictOrBeCalledByRequester() (gas: 5097216)\n[PASS] testContextMismatchRecoveryNeedsAnUnboundPendingAskWithAReceipt() (gas: 4953072)\n[PASS] testFuzzAcceptedTemplateNamesEveryStepInEveryAssembledBody(bytes32,uint16,uint8) (runs: 256, μ: 5036593, ~: 5197454)\nLogs:\n  Bound result 143\n\n[PASS] testFuzzBodyQuorumBelowConfiguredMinimumNoLongerBurnsAnAgreedAnswer(uint16,uint16,bool,bool) (runs: 256, μ: 4739699, ~: 4688247)\nLogs:\n  Bound result 7\n  Bound result 4\n\n[PASS] testFuzzPanelStrengthMinimumsStillRefuseWeakAnswersInOneShot(uint8) (runs: 256, μ: 4962826, ~: 4962822)\nLogs:\n  Bound result 1\n\n[PASS] testFuzzSameUuidOtherSignedContextWasStuckAndNowClosesHonestly(uint8,bool) (runs: 256, μ: 7227427, ~: 7227492)\nLogs:\n  Bound result 0\n\n[PASS] testFuzzStepMarkerSplitAcrossFragmentsIsRefused(uint8,uint8,uint8) (runs: 256, μ: 3045989, ~: 3062110)\nLogs:\n  Bound result 1\n  Bound result 1\n  Bound result 2\n\n[PASS] testFuzzSynchronousIntakeRefusalRevertsTheWholeAskWithoutDebit(bytes4,bool) (runs: 256, μ: 5087079, ~: 5119886)\n[PASS] testMarkersOnlyACreatorBriefCouldSupplyDoNotSatisfyTheTemplate() (gas: 1221894)\n[PASS] testReceiptAcknowledgmentCommitsToTheVerdict() (gas: 4603341)\n[PASS] testReproductionQuorumOneWithSixAgreedIsAValidAnswer() (gas: 4816318)\nSuite result: ok. 12 passed; 0 failed; 0 skipped; finished in 2.04s (6.08s CPU time)\n\nRan 16 tests for test/ConsolidatedSecurity.t.sol:JsonSecurityTest\n[PASS] testCanonicalApprovalHasNoAmbiguousFieldsOrTrailingBytes() (gas: 48292)\n[PASS] testCompletionFlagsAndApprovalMetadataCannotBeCoerced() (gas: 6088404)\n[PASS] testDecodedAliasesAreRejectedAtEveryDepth() (gas: 132835)\n[PASS] testDuplicateKeysAnywhereAndEscapedAliasesFailClosed() (gas: 2945426)\n[PASS] testEscapedControlBytesAreIrrelevantRatherThanHexAliases() (gas: 1283790)\n[PASS] testEscapedSelectorsAndHashesKeepExactSelection() (gas: 1073151)\n[PASS] testFuzzDifferentArtifactOrSourceCannotMatch(bytes32,bool) (runs: 256, μ: 1038070, ~: 1062220)\n[PASS] testFuzzSourceHashProbeAndCaseAliases(bytes32) (runs: 256, μ: 1925565, ~: 1974657)\n[PASS] testFuzzUnicodeScalarsRoundTrip(uint32) (runs: 256, μ: 30699, ~: 28953)\nLogs:\n  Bound result 13278\n\n[PASS] testMalformedJsonAndBoundsRefuseInsteadOfGuessing() (gas: 926672)\n[PASS] testMalformedUtf8AndEscapesRefuse() (gas: 241051)\n[PASS] testOnlyUniqueTopLevelAcceptedFileAuthorizesArtifact() (gas: 2562820)\n[PASS] testRejectedOnlyAndDuplicateFileEntriesFailClosed() (gas: 1953062)\n[PASS] testSourceIdentityAndEvidencePublisherMustMatch() (gas: 1991342)\n[PASS] testSourceMustBeAcceptedAndUnambiguous() (gas: 3063338)\n[PASS] testWhitespaceAndReorderedMembersPreserveExactFileBinding() (gas: 1059942)\nSuite result: ok. 16 passed; 0 failed; 0 skipped; finished in 2.11s (3.87s CPU time)\n\nRan 44 tests for test/GatedHookDeployer.t.sol:GatedHookDeployerTest\n[PASS] testArtifactFieldEditNotInReviewedResult() (gas: 7213990)\n[PASS] testBoundedSwapHookDeploysThroughGateAndInitializesPool() (gas: 12437596)\n[PASS] testCheckViewMatchesDeploy() (gas: 7870215)\n[PASS] testConstructorRejectsZeroRequesterAndOwner() (gas: 6141)\n[PASS] testDisabledManagerRefused() (gas: 6938898)\n[PASS] testEmptyRuntimeRefused() (gas: 8552462)\n[PASS] testEnvironmentDependentRuntimeRefused() (gas: 20064101)\n[PASS] testExpectedHookMismatchRefused() (gas: 7918962)\n[PASS] testForgedResultDocumentRefused() (gas: 6945089)\n[PASS] testForgedSignatureNeverApproves() (gas: 6872412)\n[PASS] testFuzzAnyValidMaskDeploys(uint16) (runs: 256, μ: 12022900, ~: 10663169)\n[PASS] testGeneratedHookDeploysAfterBindThenCallback() (gas: 8253333)\n[PASS] testGeneratedHookDeploysAfterCallbackThenBind() (gas: 8331157)\n[PASS] testInvalidMasksRefused() (gas: 42438)\n[PASS] testJobReplayRefused() (gas: 13004164)\n[PASS] testLyingManagerReadbackRefused() (gas: 10863890)\n[PASS] testLyingPermissionsReadbackRefused() (gas: 14949460)\n[PASS] testManagerCodeHashMismatchRefused() (gas: 6911571)\n[PASS] testMarkerFormat() (gas: 31893)\n[PASS] testMaxJobAgeBounds() (gas: 103304)\n[PASS] testNoReviewRefused() (gas: 4766769)\n[PASS] testNotPassedRefused() (gas: 6931534)\n[PASS] testOccupiedAddressRefused() (gas: 7919442)\n[PASS] testOnlyJobRequesterMayDeploy() (gas: 6931268)\n[PASS] testOnlyOwnerSetsManager() (gas: 40194)\n[PASS] testOtherJobsApprovalCannotBeBorrowed() (gas: 13999467)\n[PASS] testPendingReviewRefused() (gas: 6670592)\n[PASS] testPinnedManagerRefusedWhenLiveCodeDiffers() (gas: 63542)\n[PASS] testProductionChainsAcceptOnlyPinnedManager() (gas: 297480)\n[PASS] testReenteringConstructorCannotReuseApproval() (gas: 21573596)\n[PASS] testRetainedUnboundReceiptIsNotApproval() (gas: 6594737)\n[PASS] testRevertingConstructorLeavesApprovalUnused() (gas: 9540822)\n[PASS] testRevokedSignerEpochBlocksRetainedVerdict() (gas: 7171632)\n[PASS] testStaleApprovalRefused() (gas: 6973207)\n[PASS] testSubstitutedConstructorArgsRefused() (gas: 6910317)\n[PASS] testSubstitutedCreationCodeRefused() (gas: 6908384)\n[PASS] testUnansweredReviewRefused() (gas: 6722151)\n[PASS] testUndeliveredJobRefused() (gas: 2974114)\n[PASS] testUnminedSaltRefused() (gas: 7926145)\n[PASS] testUnsupportedChainRefused() (gas: 41031)\n[PASS] testWrongChainRefused() (gas: 6899284)\n[PASS] testWrongDeployerRefused() (gas: 6979925)\n[PASS] testWrongManagerRefused() (gas: 11287318)\n[PASS] testWrongMaskRefused() (gas: 7019284)\nSuite result: ok. 44 passed; 0 failed; 0 skipped; finished in 1.86s (2.11s CPU time)\n\nRan 13 tests for test/ReviewBinding.t.sol:ReviewBindingTest\n[PASS] testAnswerAtDeadlineAcceptedAndExcessiveBackwardSkewRefused() (gas: 4980933)\n[PASS] testBindingRequiresOwnerAndExactRecordedBodyAndCannotBeOverwritten() (gas: 4680431)\n[PASS] testExpiredAskAnswerCannotSettleRetryOfIdenticalQuestion() (gas: 7066165)\n[PASS] testFuzzIntakeIdCannotBeReusedAfterReviewCloses(uint8) (runs: 256, μ: 6505766, ~: 6542336)\nLogs:\n  Bound result 2\n\n[PASS] testFuzzOracleIdReservationSurvivesFailureExpiryAndSettlement(uint8) (runs: 256, μ: 9270398, ~: 9294887)\nLogs:\n  Bound result 2\n\n[PASS] testInvalidOrUnknownBindingsRefused() (gas: 4475825)\n[PASS] testLateValidAnswerAndLateBindingAllowedUntilExplicitExpiry() (gas: 9542188)\n[PASS] testOwnerRotationPowersApplyToAlreadyPendingRequestsAsDocumented() (gas: 7513859)\n[PASS] testSignedPanelQuorumAndCountsMustBeConsistent() (gas: 4773553)\n[PASS] testSignedWrongQuestionIdChainOrWindowCannotSettle() (gas: 6566201)\n[PASS] testSwappedHonestAnswersLeaveBothPendingThenSettleTheirOwnAsks() (gas: 10097892)\n[PASS] testTemplateAndTimeoutChangesDoNotChangePendingAskContext() (gas: 5280625)\n[PASS] testUnboundReceiptDoesNotTrustMatchingIntakeIdAndRawBodyHash() (gas: 4958934)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 2.21s (620.54ms CPU time)\n\nRan 24 tests for test/ReviewDelivery.t.sol:ReviewDeliveryTest\n[PASS] testAnswerAtExactSignatureExpiryCanBeRetainedAndConfirmedLater() (gas: 4822182)\n[PASS] testConfirmedReceiptCannotBeReplayedOrRebound() (gas: 4873156)\n[PASS] testEarlyEip7702KeyReceiptFitsColdStipend() (gas: 4822708)\n[PASS] testEarlyErc1271ReceiptFitsColdStipendAndSurvivesLaterRevocation() (gas: 5353528)\n[PASS] testFreshLateAnswerAcceptedIfRequesterRequestsExpiryFirst() (gas: 4907393)\n[PASS] testFuzzBindingMustMatchEveryRetainedFieldAndFailedBindingCanBeCorrected(uint8) (runs: 256, μ: 5130160, ~: 5130374)\nLogs:\n  Bound result 4\n\n[PASS] testFuzzClockSkewToleranceIsSymmetricAtAskTime(int16,bool) (runs: 256, μ: 4813410, ~: 4829990)\nLogs:\n  Bound result -126\n\n[PASS] testFuzzEarlyOneAttemptCallbackRetainedThenConfirmedWithoutAnotherFee(bool) (runs: 256, μ: 5391684, ~: 5391684)\n[PASS] testFuzzFreshLateAnswerAcceptedUntilExplicitExpiry(bool,uint32) (runs: 256, μ: 4924639, ~: 4937425)\nLogs:\n  Bound result 1\n\n[PASS] testFuzzInvalidEarlyAnswerNeverCreatesReceiptOrVerdict(uint8) (runs: 256, μ: 4432713, ~: 4435611)\nLogs:\n  Bound result 8\n\n[PASS] testFuzzRequesterCannotDiscardRetainedAnswerOrBuyAnotherReview(bool) (runs: 256, μ: 5089408, ~: 5089408)\n[PASS] testIntakeFailureBeforeReceiptIsTerminalAndBindingCannotInventAnAnswer() (gas: 4462013)\n[PASS] testInvalidOneAttemptCallbackLosesFeeAndCannotRetryOrCreateReceipt() (gas: 6922305)\n[PASS] testMalformedOneShotCallbackCannotCreateReceipt() (gas: 4236036)\n[PASS] testOneSecondBackwardSkewAndExactFiveMinuteBoundaryAccepted() (gas: 9558928)\n[PASS] testOnlyCurrentIntakeMayRetainAndOnlyOwnerMayConfirm() (gas: 5021513)\n[PASS] testReceiptBindingStillRequiresExactBodyFingerprint() (gas: 4827234)\n[PASS] testReceiptCanBeConfirmedAfterSignatureExpiryTimeoutAndAuthorityRotation() (gas: 5253644)\n[PASS] testReceiptCannotBeOverwrittenOrClearedBySecondIntakeCallback() (gas: 5122462)\n[PASS] testReservedUuidRetainedWithoutVerdictButConsumedUuidRefused() (gas: 13362267)\n[PASS] testSignatureExpiryStillControlsArrivalEvenAfterAskDeadline() (gas: 4430388)\n[PASS] testSwappedEarlyYesAndNoAnswersCannotBecomeVerdicts() (gas: 9177469)\n[PASS] testTimestampExtremesDoNotOverflowSkewCheck() (gas: 4881240)\n[PASS] testUnconfirmedDuplicateCannotReserveOrConsumeTheActualAsksUuid() (gas: 9189836)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 2.21s (2.09s CPU time)\n\nRan 11 tests for test/ConsolidatedRegression.t.sol:ConsolidatedParserRegressionTest\n[PASS] testCanonicalApprovalHasNoAmbiguousFieldsOrTrailingBytes() (gas: 48269)\n[PASS] testCompletionFlagsAndApprovalMetadataCannotBeCoerced() (gas: 6088366)\n[PASS] testDuplicateKeysAnywhereAndEscapedAliasesFailClosed() (gas: 2945300)\n[PASS] testFuzzDifferentArtifactOrSourceCannotMatch(bytes32,bool) (runs: 256, μ: 1038032, ~: 1062182)\n[PASS] testMalformedJsonAndBoundsRefuseInsteadOfGuessing() (gas: 926716)\n[PASS] testOnlyUniqueTopLevelAcceptedFileAuthorizesArtifact() (gas: 2562793)\n[PASS] testRegressionLegitimateEscapesAndUtf8() (gas: 1108473)\n[PASS] testRegressionUnrelatedEntriesAreSkipped() (gas: 1124122)\n[PASS] testRejectedOnlyAndDuplicateFileEntriesFailClosed() (gas: 1952999)\n[PASS] testSourceMustBeAcceptedAndUnambiguous() (gas: 3063192)\n[PASS] testWhitespaceAndReorderedMembersPreserveExactFileBinding() (gas: 1059927)\nSuite result: ok. 11 passed; 0 failed; 0 skipped; finished in 2.21s (728.10ms CPU time)\n\nRan 11 tests for test/AuditFixes.t.sol:AuditFixesTest\n[PASS] testAllowedTestnetsDeployAndVerifyEndToEnd() (gas: 7765983)\n[PASS] testBaseMainnetRejectedOnEveryReleasePath() (gas: 9450397)\n[PASS] testEthereumMainnetRejectedOnEveryReleasePath() (gas: 9450443)\n[PASS] testFullPageCompletesOrResumesUnderTypicalCallGasCap() (gas: 4696895)\n[PASS] testFuzzUnknownChainsRejectedOnEveryReleasePath(uint64) (runs: 256, μ: 9453605, ~: 9453605)\n[PASS] testHookConstructorStillBindsSpecToActualChain() (gas: 19895)\n[PASS] testHookTemplateStaysChainAgnosticForFutureMainnetRelease() (gas: 1388790)\n[PASS] testMaxPageGasWithinBudgetWhenUncapped() (gas: 2338692)\n[PASS] testRobinhoodMainnetRejectedOnEveryReleasePath() (gas: 9450442)\n[PASS] testTooLittleGasForOneCandidateRevertsClearly() (gas: 17619788)\n[PASS] testTruncatedPageReportsFirstUncheckedNonce() (gas: 1946363)\nSuite result: ok. 11 passed; 0 failed; 0 skipped; finished in 2.21s (2.31s CPU time)\n\nRan 52 tests for test/ConsolidatedSecurity.t.sol:ConsolidatedSecurityTest\n[PASS] testArtifactFieldEditNotInReviewedResult() (gas: 7213968)\n[PASS] testBoundedSwapHookDeploysThroughGateAndInitializesPool() (gas: 12437493)\n[PASS] testCheckViewMatchesDeploy() (gas: 7870171)\n[PASS] testConstructorRejectsZeroRequesterAndOwner() (gas: 6141)\n[PASS] testDelayedPositiveBindingPreservesHistoryAndRequiresFreshReview() (gas: 10591895)\n[PASS] testDisabledManagerRefused() (gas: 6938921)\n[PASS] testEmptyRuntimeRefused() (gas: 8552396)\n[PASS] testEnvironmentDependentRuntimeRefused() (gas: 20064057)\n[PASS] testExpectedHookMismatchRefused() (gas: 7918940)\n[PASS] testForgedResultDocumentRefused() (gas: 6945067)\n[PASS] testForgedSignatureNeverApproves() (gas: 6872379)\n[PASS] testFuzzAnyValidMaskDeploys(uint16) (runs: 256, μ: 12179222, ~: 10806920)\n[PASS] testFuzzEveryReviewIdentityFieldIsBound(uint8) (runs: 256, μ: 7015801, ~: 7016116)\nLogs:\n  Bound result 2\n\n[PASS] testFuzzLateJobHasFullMinimumWindow(bool) (runs: 256, μ: 8105836, ~: 8105836)\n[PASS] testFuzzOnlyRevokedEpochAllowsFinalizedRecovery(bool,bool) (runs: 256, μ: 10781269, ~: 10744468)\n[PASS] testGeneratedHookDeploysAfterBindThenCallback() (gas: 8253289)\n[PASS] testGeneratedHookDeploysAfterCallbackThenBind() (gas: 8331171)\n[PASS] testInvalidMasksRefused() (gas: 42432)\n[PASS] testJobReplayRefused() (gas: 13004138)\n[PASS] testLatestPositiveBindingLeavesOneHourUnderMinimumAgePolicy() (gas: 8350964)\n[PASS] testLyingManagerReadbackRefused() (gas: 10863780)\n[PASS] testLyingPermissionsReadbackRefused() (gas: 14949438)\n[PASS] testManagerCodeHashMismatchRefused() (gas: 6911594)\n[PASS] testMarkerFormat() (gas: 31893)\n[PASS] testMaxJobAgeBounds() (gas: 103326)\n[PASS] testNoReviewRefused() (gas: 4766748)\n[PASS] testNotPassedRefused() (gas: 6931512)\n[PASS] testOccupiedAddressRefused() (gas: 7919420)\n[PASS] testOldNegativeReceiptStillFinalizesAndCannotBeShopped() (gas: 6994853)\n[PASS] testOnlyJobRequesterMayDeploy() (gas: 6931224)\n[PASS] testOnlyOwnerSetsManager() (gas: 40129)\n[PASS] testOtherJobsApprovalCannotBeBorrowed() (gas: 13999402)\n[PASS] testPendingReviewRefused() (gas: 6670549)\n[PASS] testPinnedManagerRefusedWhenLiveCodeDiffers() (gas: 63541)\n[PASS] testProductionChainsAcceptOnlyPinnedManager() (gas: 297410)\n[PASS] testRecoveryCannotReuseAnAlreadyDeployedJob() (gas: 11588720)\n[PASS] testReenteringConstructorCannotReuseApproval() (gas: 21573557)\n[PASS] testRetainedUnboundReceiptIsNotApproval() (gas: 6594693)\n[PASS] testRevertingConstructorLeavesApprovalUnused() (gas: 9540805)\n[PASS] testRevokedSignerEpochBlocksRetainedVerdict() (gas: 7171624)\n[PASS] testStaleApprovalRefused() (gas: 6973147)\n[PASS] testSubstitutedConstructorArgsRefused() (gas: 6910317)\n[PASS] testSubstitutedCreationCodeRefused() (gas: 6908274)\n[PASS] testUnansweredReviewRefused() (gas: 6722124)\n[PASS] testUndeliveredJobRefused() (gas: 2974114)\n[PASS] testUnminedSaltRefused() (gas: 7926123)\n[PASS] testUnsupportedChainRefused() (gas: 41053)\n[PASS] testWorkerPublicationAloneCannotApprove() (gas: 4800078)\n[PASS] testWrongChainRefused() (gas: 6899284)\n[PASS] testWrongDeployerRefused() (gas: 6979839)\n[PASS] testWrongManagerRefused() (gas: 11287296)\n[PASS] testWrongMaskRefused() (gas: 7019240)\nSuite result: ok. 52 passed; 0 failed; 0 skipped; finished in 1.61s (4.95s CPU time)\n\nRan 13 tests for test/RequesterMvpAudit.t.sol:RequesterMvpLifecycleTest\n[PASS] testAbandonedAskReceiptBlocksClosureWithoutRequesterExpiryRequest() (gas: 4763880)\n[PASS] testBindingResetRequiresOwnerExactBodyAndPendingBoundAsk() (gas: 5275647)\n[PASS] testFuzzCompromisedEpochBlocksRetainedAnswersAndAllowsHonestClosure(bool,bool) (runs: 256, μ: 7357874, ~: 7513115)\n[PASS] testFuzzJobFailureAndExpiryOrderingCannotChangeReviewEligibility(uint8,bool) (runs: 256, μ: 5026573, ~: 5037253)\nLogs:\n  Bound result 0\n\n[PASS] testFuzzWrongPrebindingRetainsOneShotAnswerAndCanBeCorrected(uint8,bool) (runs: 256, μ: 5393344, ~: 5393558)\nLogs:\n  Bound result 0\n\n[PASS] testIncidentRevocationIsExplicitAndCannotUndoFinalizedVerdicts() (gas: 4899595)\n[PASS] testLateFailureCannotClearFinalizedNegativeReview() (gas: 4946740)\n[PASS] testOwnerClosesAbandonedAskOnlyAfterDeadlineAndCannotCloseItsRetry() (gas: 7088784)\n[PASS] testRevocationFreezesEveryOldReceiptButNotANewEpochReceipt() (gas: 13848025)\n[PASS] testRevocationValidatesAuthorityEpochAndEvidence() (gas: 238908)\n[PASS] testRevokedBoundMismatchClosesWithoutResetAndReservationReleasePreservesHistory() (gas: 5181161)\n[PASS] testSwappedPreboundDeliveriesStayPendingAndNeverConsumeEachOthersUuid() (gas: 10057664)\n[PASS] testUnknownOrMissingReceiptCannotBeIncidentClosed() (gas: 4216455)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 2.21s (2.60s CPU time)\n\nRan 47 tests for test/ConsolidatedRegression.t.sol:ConsolidatedRegressionTest\n[PASS] testArtifactFieldEditNotInReviewedResult() (gas: 7213970)\n[PASS] testBoundedSwapHookDeploysThroughGateAndInitializesPool() (gas: 12437554)\n[PASS] testCheckViewMatchesDeploy() (gas: 7870217)\n[PASS] testConstructorRejectsZeroRequesterAndOwner() (gas: 6119)\n[PASS] testDisabledManagerRefused() (gas: 6938945)\n[PASS] testEmptyRuntimeRefused() (gas: 8552464)\n[PASS] testEnvironmentDependentRuntimeRefused() (gas: 20064081)\n[PASS] testExpectedHookMismatchRefused() (gas: 7918942)\n[PASS] testForgedResultDocumentRefused() (gas: 6945134)\n[PASS] testForgedSignatureNeverApproves() (gas: 6872481)\n[PASS] testFuzzAnyValidMaskDeploys(uint16) (runs: 256, μ: 11944772, ~: 10694363)\n[PASS] testGeneratedHookDeploysAfterBindThenCallback() (gas: 8253313)\n[PASS] testGeneratedHookDeploysAfterCallbackThenBind() (gas: 8331137)\n[PASS] testInvalidMasksRefused() (gas: 42418)\n[PASS] testJobReplayRefused() (gas: 13004146)\n[PASS] testLyingManagerReadbackRefused() (gas: 10863892)\n[PASS] testLyingPermissionsReadbackRefused() (gas: 14949462)\n[PASS] testManagerCodeHashMismatchRefused() (gas: 6911573)\n[PASS] testMarkerFormat() (gas: 31849)\n[PASS] testMaxJobAgeBounds() (gas: 103260)\n[PASS] testNoReviewRefused() (gas: 4766794)\n[PASS] testNotPassedRefused() (gas: 6931536)\n[PASS] testOccupiedAddressRefused() (gas: 7919422)\n[PASS] testOnlyJobRequesterMayDeploy() (gas: 6931337)\n[PASS] testOnlyOwnerSetsManager() (gas: 40150)\n[PASS] testOtherJobsApprovalCannotBeBorrowed() (gas: 13999471)\n[PASS] testPendingReviewRefused() (gas: 6670572)\n[PASS] testPinnedManagerRefusedWhenLiveCodeDiffers() (gas: 63520)\n[PASS] testProductionChainsAcceptOnlyPinnedManager() (gas: 297458)\n[PASS] testReenteringConstructorCannotReuseApproval() (gas: 21573576)\n[PASS] testRegressionLateApprovalHasDeploymentWindow() (gas: 8192214)\n[PASS] testRegressionRecoverRevokedBindFirst() (gas: 10573690)\n[PASS] testRegressionRecoverRevokedReceiptFirst() (gas: 10684947)\n[PASS] testRetainedUnboundReceiptIsNotApproval() (gas: 6594717)\n[PASS] testRevertingConstructorLeavesApprovalUnused() (gas: 9540802)\n[PASS] testRevokedSignerEpochBlocksRetainedVerdict() (gas: 7171612)\n[PASS] testStaleApprovalRefused() (gas: 6973165)\n[PASS] testSubstitutedConstructorArgsRefused() (gas: 6910361)\n[PASS] testSubstitutedCreationCodeRefused() (gas: 6908364)\n[PASS] testUnansweredReviewRefused() (gas: 6722219)\n[PASS] testUndeliveredJobRefused() (gas: 2974092)\n[PASS] testUnminedSaltRefused() (gas: 7926147)\n[PASS] testUnsupportedChainRefused() (gas: 41009)\n[PASS] testWrongChainRefused() (gas: 6899328)\n[PASS] testWrongDeployerRefused() (gas: 6979883)\n[PASS] testWrongManagerRefused() (gas: 11287320)\n[PASS] testWrongMaskRefused() (gas: 7019331)\nSuite result: ok. 47 passed; 0 failed; 0 skipped; finished in 2.21s (2.44s CPU time)\n\nRan 1 test for test/FeaturedTransferInvariant.t.sol:FeaturedTransferInvariantTest\n[PASS] invariantEveryTokenIsAccountedForAndEveryCreditHasBacking() (runs: 256, calls: 128000, reverts: 0)\n\n╭-------------------------+------------------------+-------+---------+----------╮\n| Contract                | Selector               | Calls | Reverts | Discards |\n+===============================================================================+\n| FeaturedTransferHandler | advanceTime            | 11546 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | cancel                 | 11611 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | cancelAsCurrentOwner   | 11850 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | claim                  | 11725 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | deposit                | 11528 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | purchaseAsCurrentOwner | 11566 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | rotateRecipient        | 11577 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | settle                 | 11707 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | toggleCurrentListing   | 11731 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | transferListing        | 11629 | 0       | 0        |\n|-------------------------+------------------------+-------+---------+----------|\n| FeaturedTransferHandler | withdraw               | 11530 | 0       | 0        |\n╰-------------------------+------------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 225820091276669328\n  Bound result 1473\n  Bound result 286186293615491085\n  Bound result 136571\n  Bound result 1133\n  Bound result 114108\n  Bound result 579274\n  Bound result 10614\n  Bound result 382314\n  Bound result 237\n  Bound result 11131\n  Bound result 3707\n  Bound result 2691\n  Bound result 546603\n  Bound result 400\n  Bound result 143396\n  Bound result 320\n  Bound result 290740339967630715\n  Bound result 8453\n  Bound result 4260\n  Bound result 248\n  Bound result 13793\n  Bound result 271996739901653372\n  Bound result 2\n  Bound result 24\n  Bound result 224\n  Bound result 30000000\n  Bound result 23279\n  Bound result 4663\n  Bound result 497715151298293455\n  Bound result 6401\n  Bound result 7364\n  Bound result 1025\n  Bound result 109583700893608266\n  Bound result 32\n  Bound result 300\n  Bound result 135782746747752816\n  Bound result 819242790289738\n  Bound result 13330649621221005\n  Bound result 162413039008033160\n  Bound result 22920690009038611\n  Bound result 3572\n  Bound result 47\n  Bound result 495399122\n  Bound result 2000\n  Bound result 5585\n  Bound result 28\n  Bound result 5438\n  Bound result 11864\n  Bound result 24\n  Bound result 626814\n  Bound result 50391253000807765\n  Bound result 459248\n  Bound result 292539217066958302\n  Bound result 4663\n  Bound result 400000\n  Bound result 4115\n  Bound result 4022\n  Bound result 8634\n  Bound result 2627885030811374\n  Bound result 33892585034747091\n  Bound result 120\n  Bound result 172648361505980415\n  Bound result 1896\n  Bound result 4116\n  Bound result 805495749353913\n  Bound result 240\n  Bound result 1270\n  Bound result 30499286349610692\n  Bound result 2678400\n  Bound result 7210326200382831\n  Bound result 725633\n  Bound result 12006384892163020\n  Bound result 8730\n  Bound result 28\n  Bound result 2550\n  Bound result 1000000000000\n  Bound result 43031752615722870\n  Bound result 92226080146172137\n  Bound result 119\n  Bound result 115428911151845857\n  Bound result 3112\n  Bound result 21550164818636175\n  Bound result 3487768625511028\n  Bound result 439895\n  Bound result 777598\n  Bound result 3673\n  Bound result 167934543576446635\n  Bound result 1\n  Bound result 12129\n  Bound result 36\n  Bound result 131072\n  Bound result 237\n  Bound result 270\n  Bound result 6737048805\n  Bound result 284634302914454324\n  Bound result 67081832679603720\n  Bound result 12006384892161886\n  Bound result 46630\n  Bound result 25338446574135319\n  Bound result 102\n  Bound result 448120919896\n  Bound result 3276\n  Bound result 1584814884\n  Bound result 79569268556137563\n  Bound result 5963\n  Bound result 8217\n  Bound result 7372\n  Bound result 676730\n  Bound result 244\n  Bound result 145433549191551120\n  Bound result 4027\n  Bound result 1618\n  Bound result 1803618808\n  Bound result 268697\n  Bound result 202234\n  Bound result 1023\n  Bound result 120\n  Bound result 16146680446900683\n  Bound result 137849272327446005\n  Bound result 2957397981\n  Bound result 58\n  Bound result 598758\n  Bound result 210\n  Bound result 140530568589696201\n  Bound result 172800\n  Bound result 555710\n  Bound result 20098587305844943\n  Bound result 136521\n  Bound result 4375\n  Bound result 704507\n  Bound result 10\n  Bound result 2713\n  Bound result 1900\n  Bound result 4280052844828427\n  Bound result 100000000\n  Bound result 554429\n  Bound result 714549451441944992\n  Bound result 54960701404759629\n  Bound result 11977\n  Bound result 7310\n  Bound result 2744\n  Bound result 48\n  Bound result 3068838655564578\n  Bound result 4594637\n  Bound result 3366813241752279\n  Bound result 9417\n  Bound result 16106923145498717\n  Bound result 141521099596496896\n  Bound result 653906675248\n  Bound result 11718\n  Bound result 382151\n  Bound result 8812284251137827\n  Bound result 2932\n  Bound result 10272\n  Bound result 634882\n  Bound result 2437\n  Bound result 3672\n  Bound result 65535\n  Bound result 213845706268122588\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 28.06s (28.06s CPU time)\n\nRan 1 test for test/FeaturedInvariant.t.sol:FeaturedInvariantTest\n[PASS] invariantEveryTokenIsAccountedForAndEveryCreditHasBacking() (runs: 256, calls: 128000, reverts: 0)\n\n╭-----------------+-----------------+-------+---------+----------╮\n| Contract        | Selector        | Calls | Reverts | Discards |\n+================================================================+\n| FeaturedHandler | advanceTime     | 14053 | 0       | 0        |\n|-----------------+-----------------+-------+---------+----------|\n| FeaturedHandler | cancel          | 14187 | 0       | 0        |\n|-----------------+-----------------+-------+---------+----------|\n| FeaturedHandler | claim           | 14209 | 0       | 0        |\n|-----------------+-----------------+-------+---------+----------|\n| FeaturedHandler | deposit         | 14094 | 0       | 0        |\n|-----------------+-----------------+-------+---------+----------|\n| FeaturedHandler | purchase        | 14187 | 0       | 0        |\n|-----------------+-----------------+-------+---------+----------|\n| FeaturedHandler | rotateRecipient | 14101 | 0       | 0        |\n|-----------------+-----------------+-------+---------+----------|\n| FeaturedHandler | settle          | 14296 | 0       | 0        |\n|-----------------+-----------------+-------+---------+----------|\n| FeaturedHandler | toggleListing   | 14538 | 0       | 0        |\n|-----------------+-----------------+-------+---------+----------|\n| FeaturedHandler | withdraw        | 14335 | 0       | 0        |\n╰-----------------+-----------------+-------+---------+----------╯\n\nLogs:\n  Bound result 8791\n  Bound result 9318\n  Bound result 1624\n  Bound result 5806\n  Bound result 3792478064\n  Bound result 133180\n  Bound result 3964\n  Bound result 352\n  Bound result 7602\n  Bound result 480\n  Bound result 5806\n  Bound result 400\n  Bound result 143\n  Bound result 718\n  Bound result 2\n  Bound result 174609367438786815\n  Bound result 61699\n  Bound result 138\n  Bound result 4963\n  Bound result 8149\n  Bound result 3771\n  Bound result 311022\n  Bound result 584061\n  Bound result 9476032651729994\n  Bound result 844789684\n  Bound result 212910\n  Bound result 475\n  Bound result 162383275\n  Bound result 102\n  Bound result 863\n  Bound result 444890\n  Bound result 60\n  Bound result 3600\n  Bound result 143396\n  Bound result 16384\n  Bound result 1023\n  Bound result 260000\n  Bound result 277511596451062893\n  Bound result 119686264\n  Bound result 41031988\n  Bound result 4550372244157284\n  Bound result 24\n  Bound result 194\n  Bound result 448\n  Bound result 22595111\n  Bound result 336\n  Bound result 494979208\n  Bound result 15657404\n  Bound result 607665\n  Bound result 4559\n  Bound result 8206\n  Bound result 648099\n  Bound result 117\n  Bound result 4288\n  Bound result 7926\n  Bound result 1802392576\n  Bound result 1195\n  Bound result 3373\n  Bound result 82800\n  Bound result 8866\n  Bound result 93402630056488760\n  Bound result 4427\n  Bound result 7\n  Bound result 100\n  Bound result 8481\n  Bound result 255444464034512895\n  Bound result 30329047878679866\n  Bound result 4874\n  Bound result 116\n  Bound result 138094561017877024\n  Bound result 192\n  Bound result 225\n  Bound result 191985377745486330\n  Bound result 35\n  Bound result 75644250940394395\n  Bound result 322\n  Bound result 197183452118381850\n  Bound result 6099\n  Bound result 2107\n  Bound result 5353\n  Bound result 696981\n  Bound result 9000000\n  Bound result 12289\n  Bound result 33\n  Bound result 1402\n  Bound result 97\n  Bound result 4279\n  Bound result 168\n  Bound result 81578249627352510\n  Bound result 119720556331765034\n  Bound result 3809229175\n  Bound result 448\n  Bound result 172800\n  Bound result 140000\n  Bound result 16\n  Bound result 3\n  Bound result 57343\n  Bound result 4009008868\n  Bound result 9680628920620264\n  Bound result 87\n  Bound result 215319390292207099\n  Bound result 244861386469888650\n  Bound result 505\n  Bound result 36\n  Bound result 6987\n  Bound result 400000\n  Bound result 60000\n  Bound result 225684821632784055\n  Bound result 7328693692777878\n  Bound result 93402631858893549\n  Bound result 20256\n  Bound result 7375\n  Bound result 400\n  Bound result 123860756076839625\n  Bound result 127035603870986413\n  Bound result 80\n  Bound result 48\n  Bound result 89709112482070511\n  Bound result 1792\n  Bound result 197183452952137865\n  Bound result 119472660898575540\n  Bound result 94377329211621643\n  Bound result 530599886\n  Bound result 5148912625873445\n  Bound result 7277\n  Bound result 71777214294589695\n  Bound result 1014417654\n  Bound result 230304381176537400\n  Bound result 3792472070\n  Bound result 6653\n  Bound result 4679\n  Bound result 104\n  Bound result 8535\n  Bound result 780\n  Bound result 63527617969035675\n  Bound result 2711\n  Bound result 8135\n  Bound result 799\n  Bound result 27224422478263722\n  Bound result 1\n  Bound result 11155111\n  Bound result 5024\n  Bound result 316964\n  Bound result 103282213624203\n  Bound result 41048834935786588\n  Bound result 126\n  Bound result 40\n  Bound result 392191\n  Bound result 8126\n  Bound result 248\n  Bound result 55\n  Bound result 1056290820\n  Bound result 94377329211624889\n  Bound result 2759\n  Bound result 32\n  Bound result 2\n  Bound result 225\n  Bound result 9739847518059354\n  Bound result 2048\n  Bound result 190000\n  Bound result 55608391472317468\n  Bound result 561440\n  Bound result 330013203505609\n  Bound result 184\n  Bound result 1584814886\n  Bound result 7\n  Bound result 658321\n  Bound result 8374\n  Bound result 543452\n  Bound result 76171195136475135\n  Bound result 5319\n  Bound result 7897\n  Bound result 2677\n  Bound result 1792334575\n  Bound result 37967845500243490\n  Bound result 17879915109560\n  Bound result 160\n  Bound result 330013203505609\n  Bound result 10514397474088821\n  Bound result 1734\n  Bound result 819\n  Bound result 6357\n  Bound result 5858\n  Bound result 117300738\n  Bound result 2587\n  Bound result 593674\n  Bound result 100\n  Bound result 406542\n  Bound result 105944475366083916\n  Bound result 9578660847714522\n  Bound result 777600\n  Bound result 58928251268677729\n  Bound result 183019655932542975\n  Bound result 2567\n  Bound result 334477\n  Bound result 645788\n  Bound result 416\n  Bound result 125169935154903511\n  Bound result 15\n  Bound result 3212\n  Bound result 519224\n  Bound result 232483605083668\n  Bound result 31338\n  Bound result 5496\n  Bound result 1368997413508536\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 29.47s (29.46s CPU time)\n\nRan 38 test suites in 29.48s (89.19s CPU time): 536 tests passed, 0 failed, 0 skipped (536 total tests)\n","passed":true},{"durationMs":158,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"BoundedSwapHook.afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)\",\"BoundedSwapHook.afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)\",\"FeaturedPlacements.acceptOwnership()\",\"FeaturedPlacements.cancel(uint256)\",\"FeaturedPlacements.cancelOwnershipTransfer()\",\"FeaturedPlacements.configureToken(address)\",\"FeaturedPlacements.deposit(uint256)\",\"FeaturedPlacements.purchase(uint256,uint256,address,uint256)\",\"FeaturedPlacements.setProceedsRecipient(address)\",\"FeaturedPlacements.settle(uint256)\",\"FeaturedPlacements.transferOwnership(address)\",\"FeaturedPlacements.withdraw(uint256,address)\",\"FeaturedPlacements.withdrawProceeds(uint256,address)\",\"GatedHookDeployer.acceptOwnership()\",\"GatedHookDeployer.cancelOwnershipTransfer()\",\"GatedHookDeployer.deploy((bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,bytes32,uint256,address,address,bytes32,uint160),bytes,bytes,bytes,bytes32,address)\",\"GatedHookDeployer.setManager(address,bytes32,bool)\",\"GatedHookDeployer.setMaxJobAge(uint64)\",\"GatedHookDeployer.transferOwnership(address)\",\"HookJobRequester.acceptOwnership()\",\"HookJobRequester.bindReview(bytes32,bytes32,bytes32,bytes32,uint256,uint64,uint64)\",\"HookJobRequester.cancelOwnershipTransfer()\",\"HookJobRequester.closeRevokedReviewReceipt(bytes32)\",\"HookJobRequester.closeRevokedVerdict(bytes32)\",\"HookJobRequester.confirmReviewExpiry(bytes32)\",\"HookJobRequester.discardMismatchedReviewReceipt(bytes32,bytes32,bytes32,bytes32,uint256,uint64,uint64)\",\"HookJobRequester.discardReviewReceipt(bytes32,bytes32,bytes32,bytes32,uint256,uint64,uint64)\",\"HookJobRequester.expireJob(bytes32)\",\"HookJobRequester.expireReview(bytes32)\",\"HookJobRequester.onJobFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"HookJobRequester.onJobResult(bytes32,bytes32,string)\",\"HookJobRequester.onReviewFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"HookJobRequester.onReviewResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"HookJobRequester.openJob(bytes32,bytes,uint256)\",\"HookJobRequester.releaseReservation(bytes32)\",\"HookJobRequester.requestReview(bytes32,uint256)\",\"HookJobRequester.resetReviewBinding(bytes32,bytes32)\",\"HookJobRequester.revokeSignerEpoch(uint32,bytes32)\",\"HookJobRequester.setFailureHook(bool)\",\"HookJobRequester.setIntake(address)\",\"HookJobRequester.setJobTemplate(bytes32,bytes,bytes,bytes)\",\"HookJobRequester.setOracleSigner(address)\",\"HookJobRequester.setPayment(address,uint256)\",\"HookJobRequester.setReviewTemplate(bytes32,bytes,bytes,uint16,uint16)\",\"HookJobRequester.setTimeouts(uint64,uint64)\",\"HookJobRequester.sweep(address,address,uint256)\",\"HookJobRequester.transferOwnership(address)\",\"HookListingRegistry.acceptListingOwnership(uint256)\",\"HookListingRegistry.cancelListingTransfer(uint256)\",\"HookListingRegistry.createListing(uint256,address,(string,string,string,string,string,uint160,string,string,string,string[]))\",\"HookListingRegistry.proposeListingOwner(uint256,address)\",\"HookListingRegistry.setListingActive(uint256,bool)\",\"HookListingRegistry.updateListing(uint256,(string,string,string,string,string,uint160,string,string,string,string[]))\",\"HooksStoreFactory.deploy((uint32,bytes32,uint256,address,bytes32,uint160,uint128),bytes32,address,bytes32)\"],\"files\":{\".gitignore\":6,\"LICENSE\":24,\"README.md\":181,\"dependencies.lock.json\":20,\"deployment/audited-build.json\":157,\"deployment/current-build.json\":200,\"deployment/ethereum.draft.json\":13,\"deployment/hook-templates.json\":228,\"deployment/manifest.json\":224,\"deployment/robinhood.draft.json\":13,\"deployment/sepolia.draft.json\":13,\"docs/AUDIT_1053AF02.md\":106,\"docs/AUDIT_5F43F94D.md\":94,\"docs/AUDIT_648BA2E5.md\":61,\"docs/AUDIT_6B607200.md\":76,\"docs/AUDIT_D9970905.md\":79,\"docs/AUDIT_EF1F6915.md\":127,\"docs/CHAINS.md\":35,\"docs/DEPENDENCIES.md\":22,\"docs/DEPLOYMENT.md\":88,\"docs/DEPLOYMENT_PREPARATION.md\":334,\"docs/GATED_DEPLOYMENT.md\":168,\"docs/HOOK_SPEC.md\":63,\"docs/IMD_INTEGRATION.md\":488,\"docs/INTEGRATION_RESOLUTION.md\":91,\"docs/LISTINGS_AND_ADS.md\":214,\"docs/STORE_API.md\":101,\"docs/THREAT_MODEL.md\":74,\"docs/VERIFICATION.md\":455,\"docs/build-fingerprints.json\":48,\"docs/checks/approval-binding/README.md\":113,\"docs/checks/approval-binding/assignment-seed.log\":70,\"docs/checks/approval-binding/build-identity.log\":68,\"docs/checks/approval-binding/build.log\":2508,\"docs/checks/approval-binding/cold-gas.log\":54,\"docs/checks/approval-binding/fixtures/approval.json\":1,\"docs/checks/approval-binding/fixtures/build-identity.json\":1,\"docs/checks/approval-binding/fixtures/completion.json\":1,\"docs/checks/approval-binding/fixtures/provenance.json\":9,\"docs/checks/approval-binding/fixtures/source.bundle\":1,\"docs/checks/approval-binding/fmt.log\":0,\"docs/checks/approval-binding/foundry.log\":969,\"docs/checks/approval-binding/green.log\":9,\"docs/checks/approval-binding/job.open.body.json\":1,\"docs/checks/approval-binding/job.open.check.json\":120,\"docs/checks/approval-binding/oracle.request.body.json\":1,\"docs/checks/approval-binding/oracle.request.check-input.json\":10,\"docs/checks/approval-binding/oracle.request.check.json\":88,\"docs/checks/approval-binding/oracle.request.draft-response.json\":1,\"docs/checks/approval-binding/oracle.request.first-body.json\":1,\"docs/checks/approval-binding/oracle.request.first-check.json\":92,\"docs/checks/approval-binding/oracle.request.rejected.json\":1,\"docs/checks/approval-binding/red-regression.sol.txt\":41,\"docs/checks/approval-binding/red.log\":20,\"docs/checks/approval-binding/sdk.log\":54,\"docs/checks/approval-binding/site-abi.log\":30,\"docs/checks/approval-binding/sources/adversarial-review.json\":1,\"docs/checks/approval-binding/sources/imd-docs.html\":764,\"docs/checks/approval-binding/sources/imd-docs.txt\":2437,\"docs/checks/approval-binding/sources/openapi.json\":1,\"docs/checks/approval-binding/sources/previous-job-result.json\":1,\"docs/checks/approval-binding/sources/provenance.json\":50,\"docs/checks/approval-binding/sources/research-report.json\":1,\"docs/checks/approval-binding/sources/skills.json\":1,\"docs/checks/approval-binding/sources/write-readme-and-docs.json\":1,\"docs/checks/approval-binding/summary.json\":89,\"docs/checks/consolidated/README.md\":197,\"docs/checks/consolidated/assignment-seed.log\":703,\"docs/checks/consolidated/binding-evidence.json\":73,\"docs/checks/consolidated/binding-evidence.log\":73,\"docs/checks/consolidated/build.log\":2924,\"docs/checks/consolidated/callback-gas.log\":38,\"docs/checks/consolidated/fmt.log\":0,\"docs/checks/consolidated/format.log\":1,\"docs/checks/consolidated/foundry-initial.log\":570,\"docs/checks/consolidated/foundry.log\":703,\"docs/checks/consolidated/green-initial.log\":28,\"docs/checks/consolidated/green.log\":67,\"docs/checks/consolidated/job-callback-gas.log\":11,\"docs/checks/consolidated/job.open.body.json\":1,\"docs/checks/consolidated/job.open.check.json\":123,\"docs/checks/consolidated/live-vector.log\":9,\"docs/checks/consolidated/live/capabilities.json\":376,\"docs/checks/consolidated/live/launcher-recipe.json\":10,\"docs/checks/consolidated/live/live-rpc.json\":551,\"docs/checks/consolidated/live/official-observations.json\":77,\"docs/checks/consolidated/max-deployment-gas.log\":42,\"docs/checks/consolidated/oracle.request.body.json\":1,\"docs/checks/consolidated/oracle.request.check.json\":91,\"docs/checks/consolidated/preserved-policy-and-config.json\":9,\"docs/checks/consolidated/provenance.json\":88,\"docs/checks/consolidated/red-regression.sol.txt\":55,\"docs/checks/consolidated/red.log\":43,\"docs/checks/consolidated/sdk-initial.log\":5,\"docs/checks/consolidated/sdk.log\":59,\"docs/checks/consolidated/security-gas.log\":171,\"docs/checks/consolidated/security.log\":77,\"docs/checks/consolidated/site.log\":30,\"docs/checks/consolidated/sizes.log\":2979,\"docs/checks/consolidated/sources/Intake.deployed.sol.txt\":322,\"docs/checks/consolidated/sources/audit-result.json\":1,\"docs/checks/consolidated/sources/audit.md\":157,\"docs/checks/consolidated/sources/continued-job-result.json\":1,\"docs/checks/consolidated/sources/imd-docs.html\":764,\"docs/checks/consolidated/sources/imd-docs.txt\":5048,\"docs/checks/consolidated/sources/intake-abi.json\":1070,\"docs/checks/consolidated/sources/intake-record.json\":108,\"docs/checks/consolidated/sources/intake-requested-logs.json\":108,\"docs/checks/consolidated/sources/intake-verified.json\":1,\"docs/checks/consolidated/sources/openapi.json\":1,\"docs/checks/consolidated/sources/oracle-attestation.json\":1,\"docs/checks/consolidated/sources/oracle-consumer.json\":1,\"docs/checks/consolidated/sources/oracle-list.json\":1,\"docs/checks/consolidated/sources/oracle-reference.txt\":656,\"docs/checks/consolidated/sources/oracle-request.json\":1,\"docs/checks/consolidated/summary.json\":78,\"docs/checks/consolidated/vendored.log\":1,\"docs/checks/consolidated/window-refinement.log\":153,\"docs/checks/deployment-preparation/README.md\":105,\"docs/checks/deployment-preparation/assignment-seed.log\":394,\"docs/checks/deployment-preparation/baseline-build.log\":2256,\"docs/checks/deployment-preparation/build.log\":2257,\"docs/checks/deployment-preparation/bytecode-unchanged.json\":56,\"docs/checks/deployment-preparation/capabilities.json\":376,\"docs/checks/deployment-preparation/cold-gas.log\":56,\"docs/checks/deployment-preparation/deployment-tests.log\":15,\"docs/checks/deployment-preparation/ethereum-preflight.json\":17,\"docs/checks/deployment-preparation/fmt.log\":3,\"docs/checks/deployment-preparation/forge-test.log\":392,\"docs/checks/deployment-preparation/launcher-recipe.json\":10,\"docs/checks/deployment-preparation/live-rpc.json\":551,\"docs/checks/deployment-preparation/local-dry-run.json\":665,\"docs/checks/deployment-preparation/local-dry-run.log\":39,\"docs/checks/deployment-preparation/local-requester-activation.json\":538,\"docs/checks/deployment-preparation/local-script-dry-runs.log\":90,\"docs/checks/deployment-preparation/official-observations.json\":77,\"docs/checks/deployment-preparation/official-recheck.log\":53,\"docs/checks/deployment-preparation/preflight-commands.json\":47,\"docs/checks/deployment-preparation/python-tests.log\":39,\"docs/checks/deployment-preparation/robinhood-preflight.json\":17,\"docs/checks/deployment-preparation/sdk.log\":21,\"docs/checks/deployment-preparation/sepolia-preflight.json\":17,\"docs/checks/deployment-preparation/site-abi.log\":31,\"docs/checks/gated-deployment/managers.json\":16,\"docs/checks/job-protocol-tuple/README.md\":112,\"docs/checks/job-protocol-tuple/assignment-seed-gas.log\":1494,\"docs/checks/job-protocol-tuple/build.log\":2256,\"docs/checks/job-protocol-tuple/cold-gas.log\":46,\"docs/checks/job-protocol-tuple/fmt.log\":0,\"docs/checks/job-protocol-tuple/foundry.log\":386,\"docs/checks/job-protocol-tuple/green.log\":60,\"docs/checks/job-protocol-tuple/implementation.patch\":998,\"docs/checks/job-protocol-tuple/red.log\":113,\"docs/checks/job-protocol-tuple/sdk.log\":15,\"docs/checks/job-protocol-tuple/site-abi.log\":26,\"docs/checks/job-protocol-tuple/tuple-tests.log\":30,\"docs/checks/job-protocol-tuple/vendored-retry.log\":1,\"docs/checks/job-protocol-tuple/vendored.log\":1,\"docs/checksums/FORMAT_ONLY.txt\":24,\"docs/checksums/UPSTREAM.sha256\":96,\"docs/checksums/VENDORED.sha256\":96,\"foundry.toml\":22,\"remappings.txt\":3,\"schemas/hook-approval.v1.schema.json\":24,\"schemas/hook-approval.v2.schema.json\":24,\"schemas/hook-evidence.v1.schema.json\":30,\"schemas/hook-spec.v1.schema.json\":17,\"script/DeployHook.s.sol\":38,\"script/DeployHookJobRequester.s.sol\":86,\"script/DeployStore.s.sol\":19,\"script/capture_binding_evidence.py\":53,\"script/check_consolidated.sh\":11,\"script/check_request_body.py\":49,\"script/dry_run_deployment.py\":100,\"script/prepare_deployment.py\":67,\"script/recheck_gated_managers.sh\":21,\"script/recheck_official.py\":150,\"script/update_build_evidence.py\":53,\"script/verify-vendored.sh\":15,\"sdk/deployment.py\":453,\"sdk/gated_deploy.py\":171,\"sdk/hooks_store.py\":350,\"sdk/request_templates.py\":59,\"sdk/result_snapshot.py\":151,\"site/GatedHookDeployer.abi.json\":1688,\"site/HookJobRequester.abi.json\":2866,\"site/display-text.js\":7,\"site/index.html\":228,\"site/listings.html\":57,\"site/listings.js\":213,\"src/BoundedSwapHook.sol\":97,\"src/DisabledCallbacks.sol\":63,\"src/HookSpec.sol\":61,\"src/HooksStoreFactory.sol\":114,\"src/deployment/AcceptedArtifact.sol\":151,\"src/deployment/DeploymentPolicy.sol\":21,\"src/deployment/GatedHookDeployer.sol\":374,\"src/deployment/HookDeployment.sol\":44,\"src/deployment/HookMiner.sol\":63,\"src/deployment/ResultJson.sol\":324,\"src/imd/HookJobRequester.sol\":1114,\"src/imd/IIntake.sol\":27,\"src/imd/OracleAttestation.sol\":230,\"src/interfaces/IHooksStore.sol\":36,\"src/store/ExactStoreToken.sol\":48,\"src/store/FeaturedPlacements.sol\":270,\"src/store/HookListingRegistry.sol\":217,\"src/store/StoreAdmin.sol\":46,\"src/vendor/openzeppelin/LICENSE\":22,\"src/vendor/openzeppelin/interfaces/IERC1271.sol\":17,\"src/vendor/openzeppelin/interfaces/IERC5267.sol\":28,\"src/vendor/openzeppelin/interfaces/IERC7913.sol\":18,\"src/vendor/openzeppelin/utils/Bytes.sol\":247,\"src/vendor/openzeppelin/utils/Panic.sol\":57,\"src/vendor/openzeppelin/utils/ShortStrings.sol\":122,\"src/vendor/openzeppelin/utils/StorageSlot.sol\":143,\"src/vendor/openzeppelin/utils/Strings.sol\":515,\"src/vendor/openzeppelin/utils/cryptography/ECDSA.sol\":285,\"src/vendor/openzeppelin/utils/cryptography/EIP712.sol\":160,\"src/vendor/openzeppelin/utils/cryptography/MessageHashUtils.sol\":100,\"src/vendor/openzeppelin/utils/cryptography/SignatureChecker.sol\":162,\"src/vendor/openzeppelin/utils/math/Math.sol\":758,\"src/vendor/openzeppelin/utils/math/SafeCast.sol\":1162,\"src/vendor/openzeppelin/utils/math/SignedMath.sol\":68,\"test/AcceptedArtifact.t.sol\":216,\"test/ApprovalBindingRegression.t.sol\":127,\"test/AuditContextMismatchProof.t.sol\":444,\"test/AuditExpiryProof.t.sol\":168,\"test/AuditFixes.t.sol\":192,\"test/AuditReceiptConflictProof.t.sol\":197,\"test/ConsolidatedRegression.t.sol\":65,\"test/ConsolidatedSecurity.t.sol\":292,\"test/DeployHookJobRequester.t.sol\":104,\"test/Deployment.t.sol\":329,\"test/FeaturedAdversarial.t.sol\":151,\"test/FeaturedInvariant.t.sol\":186,\"test/FeaturedPlacements.t.sol\":443,\"test/FeaturedTransfer.t.sol\":120,\"test/FeaturedTransferInvariant.t.sol\":80,\"test/GatedHookDeployer.t.sol\":631,\"test/HookIntegration.t.sol\":294,\"test/HookJobRequester.t.sol\":775,\"test/HookListingRegistry.t.sol\":265,\"test/JobProtocolTuple.t.sol\":220,\"test/LiveOracleVector.t.sol\":54,\"test/OracleConformance.t.sol\":135,\"test/OracleSigner.t.sol\":125,\"test/ParserGas.t.sol\":199,\"test/RequesterMvpAudit.t.sol\":512,\"test/ReviewAuditRegression.t.sol\":295,\"test/ReviewBinding.t.sol\":359,\"test/ReviewDelivery.t.sol\":508,\"test/ReviewReceiptGas.t.sol\":284,\"test/ReviewReceiptPacking.t.sol\":99,\"test/ReviewRecovery.t.sol\":341,\"test/UriPilotGas.t.sol\":34,\"test/__init__.py\":1,\"test/helpers/Fixture.sol\":46,\"test/helpers/GeneratedHooks.sol\":85,\"test/helpers/ImdTemplates.sol\":15,\"test/helpers/MockIntake.sol\":127,\"test/helpers/MockVerdictRequester.sol\":33,\"test/helpers/PoolRouter.sol\":76,\"test/helpers/ReceiptSigners.sol\":75,\"test/helpers/StoreFixture.sol\":81,\"test/helpers/StoreTokenMock.sol\":82,\"test/helpers/TestToken.sol\":13,\"test/helpers/__init__.py\":1,\"test/helpers/local_rpc.py\":86,\"test/listings-reader.test.cjs\":108,\"test/requester-abi.test.cjs\":249,\"test/test_deployment_preparation.py\":210,\"test/test_gated_deploy.py\":172,\"test/test_receipts.py\":62,\"test/test_request_body_check.py\":59,\"test/test_request_templates.py\":72,\"test/test_result_snapshot.py\":115,\"test/test_snapshot_limits.py\":65,\"test/test_store_sdk.py\":215},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true},{"durationMs":6062,"exitCode":0,"name":"slither","output":"[high/medium] incorrect-exp at src/vendor/openzeppelin/utils/math/Math.sol:204: Math.mulDiv(uint256,uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#204-275) has bitwise-xor operator ^ instead of the exponentiation operator **: \n[medium/medium] divide-before-multiply at src/vendor/openzeppelin/utils/math/Math.sol:204: Math.mulDiv(uint256,uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#204-275) performs a multiplication on the result of a division:\n[medium/medium] divide-before-multiply at src/vendor/openzeppelin/utils/math/Math.sol:204: Math.mulDiv(uint256,uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#204-275) performs a multiplication on the result of a division:\n[medium/medium] divide-before-multiply at src/vendor/openzeppelin/utils/math/Math.sol:204: Math.mulDiv(uint256,uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#204-275) performs a multiplication on the result of a division:\n[medium/medium] divide-before-multiply at src/vendor/openzeppelin/utils/math/Math.sol:204: Math.mulDiv(uint256,uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#204-275) performs a multiplication on the result of a division:\n[medium/medium] divide-before-multiply at src/vendor/openzeppelin/utils/math/Math.sol:204: Math.mulDiv(uint256,uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#204-275) performs a multiplication on the result of a division:\n[medium/medium] divide-before-multiply at src/vendor/openzeppelin/utils/math/Math.sol:315: Math.invMod(uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#315-363) performs a multiplication on the result of a division:\n[medium/medium] divide-before-multiply at src/vendor/openzeppelin/utils/math/Math.sol:204: Math.mulDiv(uint256,uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#204-275) performs a multiplication on the result of a division:\n[medium/medium] divide-before-multiply at src/vendor/openzeppelin/utils/math/Math.sol:204: Math.mulDiv(uint256,uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#204-275) performs a multiplication on the result of a division:\n[medium/medium] divide-before-multiply at src/vendor/openzeppelin/utils/math/Math.sol:204: Math.mulDiv(uint256,uint256,uint256) (src/vendor/openzeppelin/utils/math/Math.sol#204-275) performs a multiplication on the result of a division:\n[medium/high] incorrect-equality at src/store/FeaturedPlacements.sol:219: FeaturedPlacements.getPlacement(uint256) (src/store/FeaturedPlacements.sol#219-222) uses a dangerous strict equality:\n[medium/medium] reentrancy-no-eth at src/imd/HookJobRequester.sol:378: Reentrancy in HookJobRequester.requestReview(bytes32,uint256) (src/imd/HookJobRequester.sol#378-406):\n[medium/medium] uninitialized-local at src/imd/HookJobRequester.sol:1054: HookJobRequester._validateBrief(bytes).cp (src/imd/HookJobRequester.sol#1054) is a local variable never initialized\n[medium/medium] uninitialized-local at src/deployment/ResultJson.sol:71: ResultJson.hashValue(ResultJson.Document,uint256).value (src/deployment/ResultJson.sol#71) is a local variable never initialized\n[medium/medium] uninitialized-local at src/deployment/AcceptedArtifact.sol:98: AcceptedArtifact._source(ResultJson.Document,bytes32,bytes32).found (src/deployment/AcceptedArtifact.sol#98) is a local variable never initialized\n[medium/medium] uninitialized-local at src/imd/HookJobRequester.sol:1053: HookJobRequester._validateBrief(bytes).len (src/imd/HookJobRequester.sol#1053) is a local variable never initialized\n[medium/medium] uninitialized-local at src/deployment/AcceptedArtifact.sol:122: AcceptedArtifact._file(ResultJson.Document,AcceptedArtifact.FileExpectation).found (src/deployment/AcceptedArtifact.sol#122) is a local variable never initialized\n[medium/medium] unused-return at src/store/FeaturedPlacements.sol:104: FeaturedPlacements.configureToken(address) (src/store/FeaturedPlacements.sol#104-113) ignores return value by ExactStoreToken.balance(token,address(this)) (src/store/FeaturedPlacements.sol#110)\n[medium/medium] unused-return at src/vendor/openzeppelin/utils/cryptography/SignatureChecker.sol:44: SignatureChecker.isValidSignatureNowCalldata(address,bytes32,bytes) (src/vendor/openzeppelin/utils/cryptography/SignatureChecker.sol#44-55) ignores return value by (recovered,err,None) = ECDSA.tryRecoverCalldata(hash,signature) (src/vendor/openzeppelin/utils/cryptography/SignatureChecker.sol#50)\n[medium/medium] unused-return at src/imd/OracleAttestation.sol:159: OracleAttestationConsumer._verifyAttestation(OracleAttestation.Attestation,bytes) (src/imd/OracleAttestation.sol#159-174) ignores return value by (recovered,err,None) = ECDSA.tryRecoverCalldata(digest,signature) (src/imd/OracleAttestation.sol#169)\n[medium/medium] unused-return at src/vendor/openzeppelin/utils/cryptography/SignatureChecker.sol:32: SignatureChecker.isValidSignatureNow(address,bytes32,bytes) (src/vendor/openzeppelin/utils/cryptography/SignatureChecker.sol#32-39) ignores return value by (recovered,err,None) = ECDSA.tryRecover(hash,signature) (src/vendor/openzeppelin/utils/cryptography/SignatureChecker.sol#34)\n[low/medium] reentrancy-benign at src/store/FeaturedPlacements.sol:123: Reentrancy in FeaturedPlacements.deposit(uint256) (src/store/FeaturedPlacements.sol#123-131):\n[low/medium] reentrancy-benign at src/imd/HookJobRequester.sol:302: Reentrancy in HookJobRequester.openJob(bytes32,bytes,uint256) (src/imd/HookJobRequester.sol#302-324):\n[low/medium] reentrancy-benign at src/imd/HookJobRequester.sol:378: Reentrancy in HookJobRequester.requestReview(bytes32,uint256) (src/imd/HookJobRequester.sol#378-406):\n[low/medium] return-bomb at src/deployment/GatedHookDeployer.sol:355: GatedHookDeployer.verifyDeployment(address,GatedHookDeployer.Artifact) (src/deployment/GatedHookDeployer.sol#355-367) tries to limit the gas of an external call that controls implicit decoding\n[low/medium] timestamp at src/imd/HookJobRequester.sol:810: HookJobRequester.expireReview(bytes32) (src/imd/HookJobRequester.sol#810-823) uses timestamp for comparisons\n[low/medium] timestamp at src/imd/HookJobRequester.sol:769: HookJobRequester._answerReview(bytes32,bytes32,bool,bytes32,bytes32,uint16,uint16) (src/imd/HookJobRequester.sol#769-792) uses timestamp for comparisons\n[low/medium] timestamp at src/deployment/GatedHookDeployer.sol:279: GatedHookDeployer._checkApproval(GatedHookDeployer.Artifact,bytes,address) (src/deployment/GatedHookDeployer.sol#279-318) uses timestamp for comparisons\n[low/medium] timestamp at src/imd/HookJobRequester.sol:360: HookJobRequester.expireJob(bytes32) (src/imd/HookJobRequester.sol#360-368) uses timestamp for comparisons\n[low/medium] timestamp at src/store/FeaturedPlacements.sol:197: FeaturedPlacements.settle(uint256) (src/store/FeaturedPlacements.sol#197-206) uses timestamp for comparisons\n[low/medium] timestamp at src/store/FeaturedPlacements.sol:145: FeaturedPlacements.purchase(uint256,uint256,address,uint256) (src/store/FeaturedPlacements.sol#145-173) uses timestamp for comparisons\n[low/medium] timestamp at src/imd/OracleAttestation.sol:159: OracleAttestationConsumer._verifyAttestation(OracleAttestation.Attestation,bytes) (src/imd/OracleAttestation.sol#159-174) uses timestamp for comparisons\n[low/medium] timestamp at src/imd/HookJobRequester.sol:830: HookJobRequester.confirmReviewExpiry(bytes32) (src/imd/HookJobRequester.sol#830-842) uses timestamp for comparisons\n[low/medium] timestamp at src/store/FeaturedPlacements.sol:224: FeaturedPlacements.isActive(uint256) (src/store/FeaturedPlacements.sol#224-227) uses timestamp for comparisons\n[low/medium] timestamp at src/store/FeaturedPlacements.sol:177: FeaturedPlacements.cancel(uint256) (src/store/FeaturedPlacements.sol#177-194) uses timestamp for comparisons\n[low/medium] timestamp at src/store/FeaturedPlacements.sol:219: FeaturedPlacements.getPlacement(uint256) (src/store/FeaturedPlacements.sol#219-222) uses timestamp for comparisons","passed":true},{"durationMs":1019,"exitCode":0,"name":"aderyn","output":"[high] abi-encode-packed-hash-collision at src/vendor/openzeppelin/utils/cryptography/MessageHashUtils.sol:63: `abi.encodePacked()` Hash Collision (2 places)\n[high] incorrect-caret-operator at src/vendor/openzeppelin/utils/math/Math.sol:257: Incorrect use of caret operator\n[high] incorrect-shift-order at src/deployment/HookMiner.sol:27: Incorrect Assembly Shift Parameter Order\n[high] reentrancy-state-change at src/imd/HookJobRequester.sol:312: Reentrancy: State change after external call (4 places)\n[high] reused-contract-name at src/vendor/openzeppelin/utils/math/SafeCast.sol:19: Contract Name Reused in Different Files\n[high] unsafe-casting at src/vendor/openzeppelin/utils/Strings.sol:432: Unsafe Casting of integers\n[low] centralization-risk at src/deployment/GatedHookDeployer.sol:154: Centralization Risk (23 places)\n[low] costly-loop at src/store/HookListingRegistry.sol:175: Costly operations inside loop (2 places)\n[low] ecrecover at src/vendor/openzeppelin/utils/cryptography/ECDSA.sol:191: `ecrecover` Signature Malleability\n[low] internal-function-used-once at src/HookSpec.sol:35: Internal Function Used Only Once (35 places)\n[low] large-numeric-literal at src/deployment/GatedHookDeployer.sol:65: Large Numeric Literal (3 places)\n[low] literal-instead-of-constant at src/deployment/AcceptedArtifact.sol:79: Literal Instead of Constant (306 places)\n[low] local-variable-shadowing at src/imd/HookJobRequester.sol:68: Local Variable Shadows State Variable (2 places)\n[low] modifier-used-only-once at src/deployment/GatedHookDeployer.sol:132: Modifier Invoked Only Once\n[low] non-reentrant-not-first at src/imd/HookJobRequester.sol:907: `nonReentrant` is Not the First Modifier (4 places)\n[low] push-zero-opcode at src/vendor/openzeppelin/interfaces/IERC1271.sol:4: PUSH0 Opcode (15 places)\n[low] require-revert-in-loop at src/deployment/AcceptedArtifact.sol:80: Loop Contains `require`/`revert` (17 places)\n[low] state-change-without-event at src/imd/HookJobRequester.sol:992: State Change Without Event\n[low] state-no-address-check at src/BoundedSwapHook.sol:43: Address State Variable Set Without Checks\n[low] state-variable-could-be-immutable at src/BoundedSwapHook.sol:21: State Variable Could Be Immutable (5 places)\n[low] unchecked-return at src/deployment/GatedHookDeployer.sol:267: Unchecked Return (7 places)\n[low] uninitialized-local-variable at src/deployment/AcceptedArtifact.sol:80: Uninitialized Local Variable (17 places)\n[low] unsafe-erc20-operation at src/store/ExactStoreToken.sol:43: Unsafe ERC20 Operation\n[low] unspecific-solidity-pragma at src/vendor/openzeppelin/interfaces/IERC1271.sol:4: Unspecific Solidity Pragma (4 places)\n[low] unused-public-function at src/deployment/GatedHookDeployer.sol:179: Public Function Not Used Internally (2 places)\n[low] unused-state-variable at src/deployment/GatedHookDeployer.sol:65: Unused State Variable","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"4e5018e251a0ed77acadd388452db7b85856fe8bf5fc8c8156dd60a3fbc1bdcd","verifiedTreeHash":"f424ba8f4efb93e0ea83e37335f9c9e2bd447718","verifierVersion":"0.1.0+c3fba9eb"}]}