{"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":"35037372-3b95-4d29-b96c-e1a2ff7fe2c2","kind":"skill:build-contract-project","nodes":[{"acceptedSubmissionHash":"b7beaa62189a5b44d535d741c603c14c1e892106fba7c1a604f4e9268cf45bb1","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"6e3e328aa196f6965a2821b098b101e9ff09eef55cdaafaec1d6ea18007b96f6","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"6e3e328aa196f6965a2821b098b101e9ff09eef55cdaafaec1d6ea18007b96f6","skillId":"build-contract-project","state":"accepted"}],"objective":"Continue Launch 816 as a verification-only follow-up. Do not create a new token, deploy onchain, or change any launch parameters.\n\nUse the original accepted evm_project manifest, not evm_contracts. The manifest must include the IMDEX LaunchToken, distributor, pool, and FeeHookDeployer’s $token reference. Resolve $token from the exact token creation bytecode in the attested build. Do not hardcode the predicted address 0x1787f33BbB7A0E03c33FD157ff7BcaA94a52B3a4, omit FeeHookDeployer, or substitute a contracts-only floor.\n\nVerify the repaired source tree 3a26e979 / tree b8800af7… and preserve the original launch parameters. Re-simulate the exact production payload, including the real agent list, owner, receipt fields, allocation, and pool parameters.\n\nReturn a concise GO / NO-GO report containing:\n1. manifest mode and token/pool resolution;\n2. source commit, tree hash, attestation, and bytecode consistency;\n3. exact gas used, cap, and safety margin;\n4. confirmation that the seven applications, token, distributor, and pool are all covered by the evm_project simulation;\n5. any unresolved risks.\n\nIf the exact production payload cannot be obtained or the gas result is over 16,777,216, return NO-GO and stop. Do not invent missing values and do not claim deployment.","parentJobId":"5d73988a-559e-4021-8d51-a2a654a9d6e1","planHash":"cd4c9dfa5596a51d812d3323300dda82743267612c5bd28a1a5b168932d03743","previousHash":"a057b4575568578b57b39367b07e405afd37d36a62666c8941c1057c11f15d1b","projectId":"5d73988a-559e-4021-8d51-a2a654a9d6e1","publication":{"commit":"73bd012722efd3ed6eb530c517e1011bb0f17ee3","deliveredAt":"2026-10-09T11:01:28.223Z","repoUrl":"https://github.com/identity-md-launches/launch-1141-verification-only-follow-up-existing-lau"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[],"site":null,"snapshotHash":"c6d95c8ed655563a52f0ddc53d03d1df76235d69e4b29fef7700fbbc00700875","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"6ca54b7f54b53818daf1518841763e5dc559b3a84d44926163350aa1afcfb431","device":"ce6eaff570c608ab","findings":[],"hash":"b7beaa62189a5b44d535d741c603c14c1e892106fba7c1a604f4e9268cf45bb1","nodeId":"03510330-d3ba-4f8b-8f33-b6d2e2a051a7","outcome":"completed","summary":"**Verdict: GO.** The exact production payload for launch 816, replayed through the real factory on a mainnet fork at the pinned block with the repaired bytecode, fits the transaction cap with a margin of about 0.9%. Nothing was deployed, no token was created, no launch parameter changed, and nothing was broadcast.\n\n**1. Manifest mode and resolution.** The manifest is the original accepted `evm_project` launch.json, unchanged: token block, seven applications in dependency order including FeeHookDeployer with `$token`, and the native ETH pool block. `$token` is derived everywhere as the CREATE2 of the exact LaunchToken creation code in this tree at salt 816 under the factory, never written as a literal. The fork confirms the deployer's `projectToken()` equals the token the factory actually created.\n\n**2. Source, tree, attestation, bytecode.** The checked source is commit 3a26e979 with tree b8800af76ee7df5b312018e26ee518f44636da27, identical to GitHub main. Follow-up commits touch only tests and docs. The service's existing attestation covers the original tree only, with the same toolchain pins as foundry.toml. Its seven original creation hashes match the embedded originals, and the repaired hashes are pinned in tests. No attestation over the repaired tree exists yet.\n\n**3. Gas.**\n\n| Quantity | Gas |\n| --- | ---: |\n| Cap (EIP-7825) | 16,777,216 |\n| Production payload, repaired bytecode | 16,622,997 |\n| Safety margin | 154,219 |\n| Worst-case receipt hash words after re-attestation | 16,623,153 |\n| Original bytecode, same payload | reverts DeploymentFailed(6) |\n\n**4. Coverage.** One factory call creates the IMDEX token with full supply allocated, all seven applications at predicted addresses, the distributor, and the initialized launch pool. The requester is timelock admin and holds no role; guardian, executor, signers and quorum are unset.\n\n**5. Unresolved risks.** The service must attest the repaired tree and derive `$token` from the bytes it deploys. The payload was reconstructed from the service's own public records and live factory transactions, not handed over, so the service should compare its final call against the field table in the report. The heartbeat configuration note and the pre-funds audit remain open.\n\n**Why the earlier NO-GO was wrong.** The figure of 20,816,126 gas came from the repair job's own offline replay, not from the service. The real agent list has six IDs rather than twelve, so the production call is cheaper than the rehearsal. The relevant test and report text now say so.\n\n**Delivered.** The report is in `docs/VERIFICATION-816.md`, with field provenance and the fork command. New tests pin the payload and its derivation rules, including the liquidity rule reproduced on four live launches, and cover success and failure paths offline. Full checks pass: forge build, 332 tests passed with the two fork suites skipped offline, and forge fmt --check. Six fork tests passed against an archive RPC. Protected paths and `src/` are byte-identical to the repaired tree.","treeHash":"6d6126836f18fe4381d36dce128b3c9fc2ef0ec3","usage":{"cachedInputTokens":4614671,"inputTokens":1058,"model":"claude-fable-5-1","outputTokens":68384,"runtime":"claude","turns":69,"wallClockMs":1093474}}],"verification":[{"checks":[{"durationMs":12878,"exitCode":0,"name":"build","output":"Compiling 133 files with Solc 0.8.26\nSolc 0.8.26 finished in 12.75s\nCompiler run successful!\n","passed":true},{"durationMs":6636,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 1 test for test/fork/Launch816ProductionFork.t.sol:Launch816ProductionForkTest\n[SKIP: skipped] setUp() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 1 skipped; finished in 850.32µs (0.00ns CPU time)\n\nRan 1 test for test/fork/Launch816Fork.t.sol:Launch816ForkTest\n[SKIP: skipped] setUp() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 1 skipped; finished in 1.35ms (0.00ns CPU time)\n\nRan 23 tests for test/TimelockedAdmin.t.sol:TimelockedAdminTest\n[PASS] test_adminCannotBeHandedToARoleHolder() (gas: 107046)\n[PASS] test_adminHandoverIsTwoStep() (gas: 483977)\n[PASS] test_adminWalletCannotHoldARole() (gas: 105720)\n[PASS] test_configurationCannotBeCalledDirectly() (gas: 168794)\n[PASS] test_constructorValidatesInput() (gas: 3897)\n[PASS] test_executeAtExactlyReadyTimeSucceeds() (gas: 141031)\n[PASS] test_executeBubblesTargetRevertAndKeepsOperation() (gas: 107529)\n[PASS] test_executeRejectsCallDataForCodelessTarget() (gas: 99026)\n[PASS] test_executeRespectsDelayAndGraceBoundaries() (gas: 291764)\n[PASS] test_executorMustBeAContract() (gas: 116721)\n[PASS] test_guardianCanOnlyTighten() (gas: 257058)\n[PASS] test_guardianVetoesScheduledOperation() (gas: 157888)\n[PASS] test_minDelayChangeAppliesToLaterSchedules() (gas: 398687)\n[PASS] test_oneAddressHoldsAtMostOneRole() (gas: 110112)\n[PASS] test_onlyAdminSchedulesAndExecutes() (gas: 124156)\n[PASS] test_onlyGuardianPausesAndStrangerCannotUnpause() (gas: 472243)\n[PASS] test_quorumBounds() (gas: 104665)\n[PASS] test_quorumCannotExceedSigners() (gas: 106797)\n[PASS] test_rolesAreSeparatedAfterConfiguration() (gas: 68190)\n[PASS] test_scheduleRejectsShortLongAndDuplicate() (gas: 159223)\n[PASS] test_signerCannotBecomeGuardian() (gas: 144348)\n[PASS] test_timelockCannotDropSignersBelowQuorum() (gas: 487793)\n[PASS] test_treasuryEthLeavesOnlyThroughADelayedOperation() (gas: 129171)\nSuite result: ok. 23 passed; 0 failed; 0 skipped; finished in 13.30ms (4.80ms CPU time)\n\nRan 3 tests for test/StaleFeedQuarantine.t.sol:StaleFeedQuarantineTest\n[PASS] test_exactHeartbeatAgeIsStillFresh() (gas: 79821)\n[PASS] test_heartbeatSlackClosesTheLapseWindow() (gas: 597352)\n[PASS] test_oneSecondLapseAllowsPermissionlessStickyQuarantine() (gas: 1402580)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 18.73ms (2.23ms CPU time)\n\nRan 24 tests for test/AssetRegistry.t.sol:AssetRegistryTest\n[PASS] testFuzz_convertRoundTripNeverCreatesValue(uint256,uint8,uint8) (runs: 256, μ: 71782, ~: 83242)\n[PASS] test_anyoneCanQuarantineAStaleTokenButNotAFreshOne() (gas: 150827)\n[PASS] test_approveTokenRejectsCodelessFeed() (gas: 760054)\n[PASS] test_approveTokenRejectsCodelessTokenAndFeed() (gas: 117530)\n[PASS] test_approveTokenRejectsReserveAsset() (gas: 117416)\n[PASS] test_approveTokenRejectsZeroCapAndFutureListing() (gas: 866368)\n[PASS] test_badFeedAnswersReadAsNoPrice() (gas: 364271)\n[PASS] test_convertFailsWhenReserveFeedIsStale() (gas: 70866)\n[PASS] test_convertHandlesDifferentDecimals() (gas: 172490)\n[PASS] test_defaultParametersMatchTheDocumentedStartingValues() (gas: 167510)\n[PASS] test_everySetterIsTimelockOnly() (gas: 178651)\n[PASS] test_freshPriceIsNormalisedTo18Decimals() (gas: 23738)\n[PASS] test_listedTokensAndAssetRecordArePublished() (gas: 41428)\n[PASS] test_methodologyVersionOnlyMovesForward() (gas: 514732)\n[PASS] test_minimumTokenAgeCannotGoBelowThirtyDays() (gas: 109737)\n[PASS] test_onlyGuardianExecutorOrTimelockQuarantine() (gas: 583327)\n[PASS] test_paramsStayInsideHardBounds() (gas: 473219)\n[PASS] test_priceIsValidAtHeartbeatAndStaleOneSecondLater() (gas: 53355)\n[PASS] test_revertingOrMalformedFeedDoesNotRevertTheReader() (gas: 177818)\n[PASS] test_revokedTokenIsNotEligibleButStillPriced() (gas: 402836)\n[PASS] test_routerAllowlist() (gas: 396988)\n[PASS] test_slippageLimitCannotBeSwitchedOff() (gas: 109539)\n[PASS] test_tokenYoungerThanThirtyDaysIsNotEligible() (gas: 1623635)\n[PASS] test_windowCannotExceedInterval() (gas: 112207)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 24.91ms (20.36ms CPU time)\n\nRan 13 tests for test/Launch816State.t.sol:Launch816StateTest\n[PASS] testFuzz_noAddressHoldsAnyRoleOrAllowlistEntry(address) (runs: 256, μ: 71743, ~: 71743)\n[PASS] test_configurationRefusesEveryDirectCaller() (gas: 1985768)\n[PASS] test_depositsAreClosedAndNothingCanBeRedeemed() (gas: 146508)\n[PASS] test_epochsVaultExecutorAndWaterfallStartEmpty() (gas: 870115)\n[PASS] test_feeFlowIsInertUntilConfigured() (gas: 817086)\n[PASS] test_firstDepositVerifiesTheReserveLiteralsAgainstTheToken() (gas: 918116)\n[PASS] test_firstGovernanceStepOpensDepositsUpToExactlyTheManifestCap() (gas: 1348289)\n[PASS] test_hookDeploysWithTheLaunchedLiteralsAndYieldsTheNativePoolKey() (gas: 2513807)\n[PASS] test_nativeFeesAreWrappedIntoTheReserveAndCannotBeSwept() (gas: 1038516)\n[PASS] test_nobodyCanTradeProposeOrAnchorBeforeRolesExist() (gas: 434844)\n[PASS] test_registryStartsWithDocumentedDefaultsAndNoListings() (gas: 190178)\n[PASS] test_reserveReadsNeedLiveCodeAtTheWethLiteral() (gas: 724312)\n[PASS] test_timelockStartsWithOnlyTheOwnerAndTheManifestDelay() (gas: 72480)\nSuite result: ok. 13 passed; 0 failed; 0 skipped; finished in 26.85ms (19.75ms CPU time)\n\nRan 41 tests for test/EpochManager.t.sol:EpochManagerTest\n[PASS] test_activatedProposalCannotBeReplayed() (gas: 1235847)\n[PASS] test_activationFailsOnceExpiredButSucceedsAtTheExpirySecond() (gas: 1411229)\n[PASS] test_basketGoesStaleWithoutSwarmActivityAndAReportRefreshesIt() (gas: 1837118)\n[PASS] test_basketMayHoldFewerThanFiveAndLeaveTheRestInReserve() (gas: 974431)\n[PASS] test_cancelledProposalCannotBeReplayed() (gas: 799075)\n[PASS] test_digestMatchesIndependentEip712Computation() (gas: 67665)\n[PASS] test_onlyOnePendingProposalUntilItExpires() (gas: 1340173)\n[PASS] test_pauseBlocksPublishAndActivate() (gas: 964870)\n[PASS] test_proposalSignedForAnOlderSignerSetIsRejected() (gas: 200105)\n[PASS] test_publishThenActivateAfterDelay() (gas: 1250824)\n[PASS] test_rejectsAProposalChangedAfterSigning() (gas: 290264)\n[PASS] test_rejectsASignatureFromANonSigner() (gas: 288805)\n[PASS] test_rejectsAttestedMarketDataBelowTheMinimums() (gas: 1218616)\n[PASS] test_rejectsBelowQuorum() (gas: 276586)\n[PASS] test_rejectsExpiredProposal() (gas: 149951)\n[PASS] test_rejectsExpiryThatCannotOutliveTheDelay() (gas: 695183)\n[PASS] test_rejectsExpiryTooFarAhead() (gas: 150567)\n[PASS] test_rejectsMalformedAndMalleableSignatures() (gas: 514847)\n[PASS] test_rejectsMismatchedArrays() (gas: 470056)\n[PASS] test_rejectsMoreThanFiveAssets() (gas: 163595)\n[PASS] test_rejectsQuarantinedToken() (gas: 243675)\n[PASS] test_rejectsStaleAndFutureSnapshots() (gas: 808215)\n[PASS] test_rejectsTheSameSignerTwice() (gas: 290281)\n[PASS] test_rejectsTokenThatIsNotAllowlisted() (gas: 859774)\n[PASS] test_rejectsTokenWithStalePrice() (gas: 287541)\n[PASS] test_rejectsTokenYoungerThanThirtyDays() (gas: 1696545)\n[PASS] test_rejectsTotalWeightAbove100Percent() (gas: 1146659)\n[PASS] test_rejectsWeightAboveTheTokenCap() (gas: 192616)\n[PASS] test_rejectsWhenNoQuorumIsConfigured() (gas: 369577)\n[PASS] test_rejectsWrongEpoch() (gas: 191280)\n[PASS] test_rejectsWrongMethodologyVersion() (gas: 157342)\n[PASS] test_rejectsZeroWeightAndDuplicates() (gas: 509371)\n[PASS] test_replacingLargeBasketTruncatesArraysAndClearsEveryPendingField() (gas: 2315520)\n[PASS] test_reportAnchorNeedsQuorumAndAFreshNewerSnapshot() (gas: 496464)\n[PASS] test_revokingASignerDuringTheDelayInvalidatesThePendingProposal() (gas: 880130)\n[PASS] test_secondEpochNeedsANewerSnapshot() (gas: 1323758)\n[PASS] test_signatureFromAnotherChainIsRejected() (gas: 290803)\n[PASS] test_staleFeedAtActivationBlocksActivation() (gas: 690018)\n[PASS] test_tokenQuarantinedDuringTheDelayBlocksActivation() (gas: 984868)\n[PASS] test_turnoverLimitCapsAdditionsPerEpoch() (gas: 2293819)\n[PASS] test_weeklyCadenceBlocksAnEarlySecondEpoch() (gas: 2279641)\nSuite result: ok. 41 passed; 0 failed; 0 skipped; finished in 30.12ms (29.07ms CPU time)\n\nRan 6 tests for test/LaunchToken.t.sol:LaunchTokenTest\n[PASS] testFuzz_transfersConserveSupply(address,uint256) (runs: 256, μ: 85179, ~: 85516)\n[PASS] test_metadataAndFixedSupplyMintedToDeployer() (gas: 51556)\n[PASS] test_noMintOrAdminEntryPointExists() (gas: 144953)\n[PASS] test_transferBeyondBalanceReverts() (gas: 32873)\n[PASS] test_transferFromNeedsAllowance() (gas: 137195)\n[PASS] test_transferMovesExactlyTheAmount() (gas: 74767)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 37.86ms (39.68ms CPU time)\n\nRan 4 tests for test/Launch816Record.t.sol:Launch816RecordTest\n[PASS] test_embeddedOriginalBytecodesMatchTheLaunchRecord() (gas: 46424)\n[PASS] test_manifestResolvesToTheRecordedAddresses() (gas: 223822)\n[PASS] test_repairedCreationCodeIsTheVerifiedTree() (gas: 40318)\n[PASS] test_repairedRuntimeIsBoundedAndHasNoEscapeOpcodes() (gas: 38139466)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 44.44ms (29.84ms CPU time)\n\nRan 14 tests for test/FeeWaterfall.t.sol:FeeWaterfallTest\n[PASS] testFuzz_distributionConservesEveryUnit(uint256,uint256,uint16,uint16) (runs: 256, μ: 422529, ~: 428351)\n[PASS] test_basketReserveIsDepositedAtNavForTheTreasury() (gas: 841029)\n[PASS] test_basketReserveKeepsAccumulatingWhileTheVaultIsClosed() (gas: 931489)\n[PASS] test_claimPaysOnlyTheConfiguredRecipient() (gas: 1329657)\n[PASS] test_configurationIsTimelockOnly() (gas: 102613)\n[PASS] test_distributeSplitsTheNonLpSeventyFivePercent() (gas: 388340)\n[PASS] test_pushHonoursMinShares() (gas: 425705)\n[PASS] test_rescueCannotTouchFeeAssets() (gas: 931184)\n[PASS] test_roundingDustGoesToTheBasketReserve() (gas: 246455)\n[PASS] test_splitChangeOnlyAffectsLaterFees() (gas: 789294)\n[PASS] test_splitMustSumToOneHundredPercent() (gas: 81320)\n[PASS] test_staleBasketSurchargeIsAppliedOnlyWhileStale() (gas: 1512119)\n[PASS] test_startingSplitAndFeeAreVisibleOnChain() (gas: 54016)\n[PASS] test_swapFeeIsBoundedAtThreePercentIncludingSurcharge() (gas: 94494)\nSuite result: ok. 14 passed; 0 failed; 0 skipped; finished in 45.55ms (37.61ms CPU time)\n\nRan 7 tests for test/Deployment.t.sol:DeploymentTest\n[PASS] test_constructorsLeaveTheLaunchSupplyWithItsHolder() (gas: 28038608)\n[PASS] test_constructorsNeedNoExternalContractAndWireInDependencyOrder() (gas: 28090754)\n[PASS] test_constructorsRejectZeroAddresses() (gas: 4047)\n[PASS] test_launchGrantsNoRoleToAnyoneAndNothingToTheDeployer() (gas: 28155707)\n[PASS] test_missingWaterfallAndIdenticalCurrenciesStillFailClosed() (gas: 8224)\n[PASS] test_nativeQuoteStillRequiresMatchingWrappedReserve() (gas: 8276)\n[PASS] test_runtimeFitsEip170AndContainsNoDelegatecallCallcodeOrSelfdestruct() (gas: 51161942)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 46.63ms (37.67ms CPU time)\n\nRan 4 tests for test/Launch816.t.sol:Launch816Test\n[PASS] test_originalFailsAtSeventhApplicationWithTransactionBudget() (gas: 36752803)\n[PASS] test_originalGettersAndResolvedArgumentsWorkWithEnoughGas() (gas: 17666768)\n[PASS] test_repairedLaunchFitsTransactionBudgetAndGrantsNoRoles() (gas: 32101007)\n[PASS] test_wrongReferenceIsRejectedAndRollsBack() (gas: 14645402)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 64.52ms (95.58ms CPU time)\n\nRan 26 tests for test/Revision.t.sol:RevisionTest\n[PASS] test_activationAtSnapshotAgeBoundarySucceeds() (gas: 1189864)\n[PASS] test_activationRechecksSnapshotAgeWithFreshPrices() (gas: 866414)\n[PASS] test_adminCanCancelRecoveryAndGuardianStillVetoesOtherCalls() (gas: 329190)\n[PASS] test_autoQuarantineDoesNotVetoProposalOrCloseFairDeposits() (gas: 3919750)\n[PASS] test_autoQuarantineRetainsDeltaAndWindowUntilGuardianConfirms() (gas: 6878086)\n[PASS] test_deadUntransferablePositionPreservesClaimsAndClosesDeposits() (gas: 5648607)\n[PASS] test_dustDepositCannotLockExistingShares() (gas: 5439911)\n[PASS] test_emptyBasketCannotResetTurnoverHistory() (gas: 1833111)\n[PASS] test_firstDepositChecksRegistryReserveScale() (gas: 159589)\n[PASS] test_firstTradeCannotChooseWindowStart() (gas: 1829943)\n[PASS] test_fullDustExitCanFreeHeldSlot() (gas: 5167650)\n[PASS] test_gasBurningUnquarantinedBalanceFailsWithBoundedError() (gas: 5682630)\n[PASS] test_guardianCannotVetoReplacementOrUnpause() (gas: 881452)\n[PASS] test_heldQuarantineClosesDepositsEvenWithFreshFeed() (gas: 4705525)\n[PASS] test_keeperFailuresCannotCreateExitRightsForAnyMember() (gas: 13863486)\n[PASS] test_lateFirstTradeUsesTheActivationSchedule() (gas: 2542285)\n[PASS] test_newSharesCannotRedeemInTheirDepositBlock() (gas: 5048795)\n[PASS] test_newSharesCannotTransferOrTransferFromToBypassLock() (gas: 4836815)\n[PASS] test_onlyKeeperOrTimelockChoosesTreasuryDepositTime() (gas: 507779)\n[PASS] test_proposalDelayAndSnapshotAgeMustLeaveExecutionTime() (gas: 1315527)\n[PASS] test_proposalDelayCannotConsumeEntireValidityPeriod() (gas: 33045)\n[PASS] test_quarantinedGasBurnerCannotStopUnrelatedTrades() (gas: 5369040)\n[PASS] test_releaseStartsANewFailureStreak() (gas: 6663761)\n[PASS] test_strictUnreadableBalancePreservesSharesAfterHoldingPeriod() (gas: 4584309)\n[PASS] test_unreadableNonStrictRedemptionEmitsUnknownSkippedSlice() (gas: 4627010)\n[PASS] test_untrackedDonationDoesNotBlockMemberPurchase() (gas: 1982111)\nSuite result: ok. 26 passed; 0 failed; 0 skipped; finished in 111.04ms (79.98ms CPU time)\n\nRan 21 tests for test/FeeHook.t.sol:FeeHookErc20QuoteHighTest\n[PASS] testFuzz_feeAccountingMatchesAcrossSwapShapes(uint256,bool,bool) (runs: 256, μ: 385971, ~: 387463)\n[PASS] test_buyExactInput_feeTakenFromTheQuotePaid() (gas: 374122)\n[PASS] test_buyExactOutput_feeAddedToTheQuotePaid() (gas: 352194)\n[PASS] test_callbacksAreOnlyForThePoolManager() (gas: 114689)\n[PASS] test_create2CollisionCannotMarkHookAsDeployed() (gas: 23612044)\n[PASS] test_deployerAuthenticatesCodeAndAppendsOnlyItsFixedArguments() (gas: 25088335)\n[PASS] test_deployerRejectsAQuoteTheWaterfallCannotAccountFor() (gas: 651861)\n[PASS] test_deployerRejectsWrongSaltAndSecondDeployment() (gas: 25019553)\n[PASS] test_dustSwapWithZeroFeeStillWorks() (gas: 240738)\n[PASS] test_feeAndSplitChangesReachTheHookThroughTheTimelockOnly() (gas: 699072)\n[PASS] test_feeEventIsIndexedByPoolSenderAndCurrency() (gas: 365253)\n[PASS] test_feeIsAlwaysCollectedInTheQuoteCurrencyNeverInTheProjectToken() (gas: 1162729)\n[PASS] test_feesFlowFromSwapToWaterfallToVaultWithoutTradingTheBasket() (gas: 1189571)\n[PASS] test_hookAcceptsOnlyItsOnePool() (gas: 810958)\n[PASS] test_hookAddressCarriesExactlyTheRequiredPermissionBits() (gas: 75234)\n[PASS] test_quoteIsCurrencyOne() (gas: 5631)\n[PASS] test_quoteSpecifiedExactInputExhaustedRangeRevertsAtomically() (gas: 746250)\n[PASS] test_quoteSpecifiedExactOutputPartialFillRevertsAtomically() (gas: 299290)\n[PASS] test_sellExactInput_feeTakenFromTheQuoteReceived() (gas: 357542)\n[PASS] test_sellExactOutput_traderStillReceivesTheExactQuote() (gas: 356623)\n[PASS] test_zeroHookFeeLeavesSwapsUntouched() (gas: 431486)\nSuite result: ok. 21 passed; 0 failed; 0 skipped; finished in 118.42ms (176.04ms CPU time)\n\nRan 4 tests for test/Launch816Gas.t.sol:Launch816GasTest\n[PASS] test_codeDepositSavingFollowsFromTheSizeTable() (gas: 31900)\n[PASS] test_offlineSavingAgreesWithTheForkMeasuredSaving() (gas: 69108589)\nLogs:\n  offline original (intrinsic + application loop): 17016579\n  offline repaired (intrinsic + application loop): 14042451\n  offline saving: 2974128\n  fork saving: 2974352\n  factory work beyond the application loop (fork - offline): 2716987\n  production total on the fork: 16622997\n  production margin: 154219\n\n[PASS] test_perApplicationCreationGasOrdering() (gas: 99779552)\nLogs:\n  original create2 gas 0: 1343975\n  repaired create2 gas 0: 1299272\n  original create2 gas 1: 2213215\n  repaired create2 gas 1: 2136927\n  original create2 gas 2: 3169807\n  repaired create2 gas 2: 2721453\n  original create2 gas 3: 2814461\n  repaired create2 gas 3: 2435010\n  original create2 gas 4: 2724198\n  repaired create2 gas 4: 1977666\n  original create2 gas 5: 1437037\n  repaired create2 gas 5: 1347298\n  original create2 gas 6: 1509919\n  repaired create2 gas 6: 446151\n\n[PASS] test_runtimeSizesMatchTheReportAndShrankEverywhere() (gas: 37669877)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 118.86ms (179.58ms CPU time)\n\nRan 10 tests for test/Launch816Resolution.t.sol:Launch816ResolutionTest\n[PASS] testFuzz_differentOwnerMovesEveryAddressAndIsRejected(address) (runs: 256, μ: 3563074, ~: 3563148)\n[PASS] testFuzz_payloadBoundToAnotherLaunchNumberIsRejectedAtIndexZero(uint64) (runs: 256, μ: 3561942, ~: 3561935)\n[PASS] test_cachedAddressesAfterABytecodeChangeAreRejected() (gas: 74722943)\n[PASS] test_deployerPointedAtAnotherApplicationRollsTheBatchBack() (gas: 58431123)\n[PASS] test_everyInitCodeTailIsTheManifestArgumentList() (gas: 1145894)\n[PASS] test_nativeQuoteWithAWaterfallThatDoesNotWrapParksTheLaunch() (gas: 14285745)\n[PASS] test_onlyThreeConstructorsNeedAnEarlierApplication() (gas: 16876)\n[PASS] test_quoteCurrencyMustBeNativeOrTheReserve() (gas: 65782370)\n[PASS] test_repairedAndOriginalPayloadsPassIdenticalArguments() (gas: 1119405)\n[PASS] test_tokenCodeDriftIsNotCaughtByTheAddressCheck() (gas: 14656075)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 118.90ms (231.17ms CPU time)\n\nRan 10 tests for test/Launch816Production.t.sol:Launch816ProductionTest\n[PASS] test_bothBytecodeSetsReceiveTheProductionArguments() (gas: 617928)\n[PASS] test_harnessLaunchesTheProductionPayloadWithRequesterAsAdmin() (gas: 14671214)\n[PASS] test_liquidityRuleReproducesFourLiveLaunches() (gas: 9505)\n[PASS] test_nativePairPriceAndRangeFollowTheServiceRule() (gas: 683)\n[PASS] test_originalBytecodeWithProductionArgumentsFailsAtIndexSix() (gas: 19765561)\n[PASS] test_payloadFieldsOutsideConstructorsDoNotMoveAddresses() (gas: 518603)\n[PASS] test_productionPayloadCarriesTheRecordedFields() (gas: 175536)\n[PASS] test_rehearsalOwnerAgainstProductionPredictionsIsRejected() (gas: 3597798)\n[PASS] test_roundedPoolShareIsNotTheProductionLiquidity() (gas: 2492)\n[PASS] test_tokenIsDerivedFromTheCreationCodeNotWrittenAsALiteral() (gas: 1167271)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 119.52ms (40.18ms CPU time)\n\nRan 21 tests for test/FeeHook.t.sol:FeeHookErc20QuoteLowTest\n[PASS] testFuzz_feeAccountingMatchesAcrossSwapShapes(uint256,bool,bool) (runs: 256, μ: 385375, ~: 383125)\n[PASS] test_buyExactInput_feeTakenFromTheQuotePaid() (gas: 380419)\n[PASS] test_buyExactOutput_feeAddedToTheQuotePaid() (gas: 357085)\n[PASS] test_callbacksAreOnlyForThePoolManager() (gas: 114108)\n[PASS] test_create2CollisionCannotMarkHookAsDeployed() (gas: 23704765)\n[PASS] test_deployerAuthenticatesCodeAndAppendsOnlyItsFixedArguments() (gas: 25180773)\n[PASS] test_deployerRejectsAQuoteTheWaterfallCannotAccountFor() (gas: 651839)\n[PASS] test_deployerRejectsWrongSaltAndSecondDeployment() (gas: 25112274)\n[PASS] test_dustSwapWithZeroFeeStillWorks() (gas: 247265)\n[PASS] test_feeAndSplitChangesReachTheHookThroughTheTimelockOnly() (gas: 704022)\n[PASS] test_feeEventIsIndexedByPoolSenderAndCurrency() (gas: 371441)\n[PASS] test_feeIsAlwaysCollectedInTheQuoteCurrencyNeverInTheProjectToken() (gas: 1162204)\n[PASS] test_feesFlowFromSwapToWaterfallToVaultWithoutTradingTheBasket() (gas: 1188828)\n[PASS] test_hookAcceptsOnlyItsOnePool() (gas: 810088)\n[PASS] test_hookAddressCarriesExactlyTheRequiredPermissionBits() (gas: 75204)\n[PASS] test_quoteIsCurrencyZero() (gas: 5581)\n[PASS] test_quoteSpecifiedExactInputExhaustedRangeRevertsAtomically() (gas: 752725)\n[PASS] test_quoteSpecifiedExactOutputPartialFillRevertsAtomically() (gas: 293009)\n[PASS] test_sellExactInput_feeTakenFromTheQuoteReceived() (gas: 350941)\n[PASS] test_sellExactOutput_traderStillReceivesTheExactQuote() (gas: 351230)\n[PASS] test_zeroHookFeeLeavesSwapsUntouched() (gas: 436444)\nSuite result: ok. 21 passed; 0 failed; 0 skipped; finished in 120.47ms (156.16ms CPU time)\n\nRan 9 tests for test/adversarial/ExternalTokenFailures.t.sol:ExternalTokenFailuresTest\n[PASS] testFuzz_taxedReserveCannotMintSharesForUnreceivedAssets(uint256) (runs: 1000, μ: 1022743, ~: 1024126)\n[PASS] test_failedFeeTransferRollsBackLiabilitiesAndUnlocksClaims() (gas: 1034474)\n[PASS] test_falseReturnStrictRollbackAndNonStrictExit() (gas: 1069012)\n[PASS] test_invalidBooleanStrictRollbackAndNonStrictExit() (gas: 1069357)\n[PASS] test_minShareFailureRollsBackFeeDistributionAndApproval() (gas: 905351)\n[PASS] test_noReturnTokenIsPaidDuringStrictRedemption() (gas: 954053)\n[PASS] test_reserveCallbacksCannotReenterOnDepositOrRedemption() (gas: 1278434)\n[PASS] test_shortReturnStrictRollbackAndNonStrictExit() (gas: 1068812)\n[PASS] test_taxedReserveOneUnitAndMaximumDeposit() (gas: 1991060)\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 120.55ms (118.02ms CPU time)\n\nRan 21 tests for test/FeeHook.t.sol:FeeHookNativeEthTest\n[PASS] testFuzz_feeAccountingMatchesAcrossSwapShapes(uint256,bool,bool) (runs: 256, μ: 319664, ~: 314057)\n[PASS] test_buyExactInput_feeTakenFromTheQuotePaid() (gas: 325183)\n[PASS] test_buyExactOutput_feeAddedToTheQuotePaid() (gas: 301553)\n[PASS] test_callbacksAreOnlyForThePoolManager() (gas: 114036)\n[PASS] test_create2CollisionCannotMarkHookAsDeployed() (gas: 162273386)\n[PASS] test_deployerAuthenticatesCodeAndAppendsOnlyItsFixedArguments() (gas: 163749408)\n[PASS] test_deployerRejectsAQuoteTheWaterfallCannotAccountFor() (gas: 651839)\n[PASS] test_deployerRejectsWrongSaltAndSecondDeployment() (gas: 163680931)\n[PASS] test_dustSwapWithZeroFeeStillWorks() (gas: 214260)\n[PASS] test_feeAndSplitChangesReachTheHookThroughTheTimelockOnly() (gas: 658115)\n[PASS] test_feeEventIsIndexedByPoolSenderAndCurrency() (gas: 314151)\n[PASS] test_feeIsAlwaysCollectedInTheQuoteCurrencyNeverInTheProjectToken() (gas: 973549)\n[PASS] test_feesFlowFromSwapToWaterfallToVaultWithoutTradingTheBasket() (gas: 1132963)\n[PASS] test_hookAcceptsOnlyItsOnePool() (gas: 810004)\n[PASS] test_hookAddressCarriesExactlyTheRequiredPermissionBits() (gas: 75182)\n[PASS] test_nativeFeesArriveAsEthAndTheReceiveHookDoesNothing() (gas: 330760)\n[PASS] test_quoteSpecifiedExactInputExhaustedRangeRevertsAtomically() (gas: 638393)\n[PASS] test_quoteSpecifiedExactOutputPartialFillRevertsAtomically() (gas: 242603)\n[PASS] test_sellExactInput_feeTakenFromTheQuoteReceived() (gas: 288369)\n[PASS] test_sellExactOutput_traderStillReceivesTheExactQuote() (gas: 288953)\n[PASS] test_zeroHookFeeLeavesSwapsUntouched() (gas: 406821)\nSuite result: ok. 21 passed; 0 failed; 0 skipped; finished in 130.66ms (306.71ms CPU time)\n\nRan 22 tests for test/IndexVault.t.sol:IndexVaultTest\n[PASS] testFuzz_depositThenRedeemNeverReturnsMore(uint256,uint256) (runs: 256, μ: 5927747, ~: 5936651)\n[PASS] test_depositCapBoundsTheBeta() (gas: 1011567)\n[PASS] test_depositFeeAccruesToExistingHolders() (gas: 946551)\n[PASS] test_depositHonoursMinShares() (gas: 434943)\n[PASS] test_depositIsRefusedWhileAHeldTokenHasNoFreshPrice() (gas: 5061980)\n[PASS] test_depositRejectsZeroAmountAndZeroReceiver() (gas: 185781)\n[PASS] test_depositsStayClosedUntilAGuardianExists() (gas: 28153437)\n[PASS] test_donationInflationDoesNotStealFromTheNextDepositor() (gas: 760549)\n[PASS] test_executorCannotTakeUntrackedTokenOrEndWithoutBegin() (gas: 485451)\n[PASS] test_firstDepositMintsOneShareUnitPerReserveUnit() (gas: 357848)\n[PASS] test_laterDepositorPaysCurrentNav() (gas: 4773481)\n[PASS] test_navAndHoldingsFollowTheBasketAndPrices() (gas: 4955557)\n[PASS] test_onlyTheExecutorContractMovesAssets() (gas: 540082)\n[PASS] test_pauseClosesDepositsButNeverRedemptions() (gas: 559523)\n[PASS] test_redeemPaysProRataInKind() (gas: 4960250)\n[PASS] test_redeemRejectsZeroAndMoreThanBalance() (gas: 404240)\n[PASS] test_redeemWorksWithSwarmKeeperAndOraclesAllOffline() (gas: 4930189)\n[PASS] test_rescueCannotTouchReserveOrBasket() (gas: 5190181)\n[PASS] test_shareTokenMetadata() (gas: 41233)\n[PASS] test_tokenWithBrokenBalanceOfBlocksDepositsNotRedemptions() (gas: 5131387)\n[PASS] test_untransferableTokenCannotTrapHolders() (gas: 4826818)\n[PASS] test_wrongReserveDecimalsAreCaughtOnFirstDeposit() (gas: 156998)\nSuite result: ok. 22 passed; 0 failed; 0 skipped; finished in 357.76ms (380.60ms CPU time)\n\nRan 9 tests for test/adversarial/ProposalBoundaries.t.sol:ProposalBoundariesTest\n[PASS] testFuzz_everySignedFieldIsBoundToTheSignature(uint8,uint256) (runs: 1000, μ: 301819, ~: 352530)\n[PASS] test_clearExpiredAfterBoundaryPreservesReplayProtection() (gas: 974662)\n[PASS] test_clearExpiredAtBoundaryCannotEraseAnExecutableProposal() (gas: 1216965)\n[PASS] test_delayedAgeIncreaseIsRecheckedAtActivation() (gas: 1211646)\n[PASS] test_delayedMethodologyChangeInvalidatesPendingProposal() (gas: 1221045)\n[PASS] test_delayedRevocationIsRecheckedAtActivation() (gas: 1207764)\n[PASS] test_delayedWeightCapReductionIsRecheckedAtActivation() (gas: 1264448)\n[PASS] test_failedQuorumDoesNotPoisonARetryWithValidSignatures() (gas: 828851)\n[PASS] test_signatureCannotBeReusedOnAnotherManager() (gas: 326192)\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 357.89ms (355.81ms CPU time)\n\nRan 29 tests for test/RebalanceExecutor.t.sol:RebalanceExecutorTest\n[PASS] testFuzz_sandwichedFillNeverCostsMoreThanTheSlippageLimit(uint256,uint256) (runs: 256, μ: 470280, ~: 469595)\n[PASS] test_buysTheTopFiveAtTwentyPercentAndKeepsTheBuffer() (gas: 4134962)\n[PASS] test_cannotBuyATokenOutsideTheActiveBasket() (gas: 138996)\n[PASS] test_cannotBuyBeyondTheTargetDelta() (gas: 3277094)\n[PASS] test_cannotSellATokenAtOrBelowTarget() (gas: 3121706)\n[PASS] test_disposalIsOnlyForQuarantinedTokensAndEnforcesItsFloor() (gas: 3083373)\n[PASS] test_dustTradeWithNoEnforceableFloorIsRefused() (gas: 542515)\n[PASS] test_fillAtTheSlippageLimitSucceedsAndResetsTheFailureCount() (gas: 760413)\n[PASS] test_fillBelowTheOracleFloorIsUndoneAndCounted() (gas: 502157)\n[PASS] test_keeperFloorAppliesWhenStricterThanTheOracleFloor() (gas: 413532)\n[PASS] test_noTradingBeforeAnyBasketIsActive() (gas: 90208)\n[PASS] test_oneLegMustBeTheReserve() (gas: 3055491)\n[PASS] test_onlyAllowlistedRoutersAndNeverProjectContracts() (gas: 1156929)\n[PASS] test_onlyKeepersTrade() (gas: 285430)\n[PASS] test_outputIsMeasuredOnTheVaultSoFeeOnTransferTokensFailTheFloor() (gas: 3250922)\n[PASS] test_partialFillReturnsTheUnsoldRemainder() (gas: 356993)\n[PASS] test_pauseStopsTrading() (gas: 130806)\n[PASS] test_quarantinedPositionCanBeExitedAtAnyTime() (gas: 3799227)\n[PASS] test_quarantinedTokenWithDeadFeedIsDisposedThroughTheTimelock() (gas: 3771767)\n[PASS] test_removedMemberIsSoldAndItsReplacementBought() (gas: 5579511)\n[PASS] test_repeatedFailuresQuarantineTheAssetInsteadOfBlockingTheBasket() (gas: 3337916)\n[PASS] test_replacedExecutorLosesAccessToTheVault() (gas: 1047087)\n[PASS] test_reserveBufferCannotBeSpent() (gas: 3872548)\n[PASS] test_routerCannotReenterVaultOrExecutorDuringASwap() (gas: 402687)\n[PASS] test_sellsOnlyTheExcessOverTarget() (gas: 4377560)\n[PASS] test_smallDriftDoesNotTradeButMaterialDriftDoes() (gas: 4404631)\n[PASS] test_staleOracleStopsATradeUntilTheTokenIsQuarantined() (gas: 4006949)\n[PASS] test_swapEntryPointIsNotCallableFromOutside() (gas: 38611)\n[PASS] test_tradesOutsideTheWindowWaitForTheNextInterval() (gas: 4908965)\nSuite result: ok. 29 passed; 0 failed; 0 skipped; finished in 357.85ms (129.68ms CPU time)\n\nRan 7 tests for test/Launch816Deployer.t.sol:Launch816DeployerTest\n[PASS] testFuzz_anyUnminedSaltFailsWithoutSettingTheHook(bytes32) (runs: 64, μ: 2511194, ~: 2511271)\n[PASS] testFuzz_computedAddressIsTheDeployedAddressForAnyMinedSalt(uint256) (runs: 64, μ: 27187351, ~: 10065334)\n[PASS] test_findSaltEdges() (gas: 3604710)\n[PASS] test_findSaltRevertsOnOverflowInsteadOfWrapping() (gas: 29646)\n[PASS] test_firstComerChoosesTheAddressButNotTheCode() (gas: 11366733)\n[PASS] test_nothingCanRetargetTheDeployerAfterLaunch() (gas: 2796338)\n[PASS] test_onlyTheExactCreationCodeIsAccepted() (gas: 4339243)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.01s (1.20s CPU time)\n\nRan 1 test for test/invariant/Solvency.invariant.t.sol:SolvencyInvariantTest\n[PASS]\nSolvencyInvariantTest invariants:\n[PASS] invariant_executorHoldsNothingBetweenTrades\n[PASS] invariant_feeAccountingConserves\n[PASS] invariant_noPropertyViolatedMidSequence\n[PASS] invariant_vaultIsSolventAndConsistent\n SolvencyInvariantTest invariants (runs: 32, calls: 2048, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claim             | 283   | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | collectFees       | 264   | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | deposit           | 311   | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | movePrice         | 301   | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | pushBasketReserve | 291   | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | rebalance         | 280   | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | redeem            | 318   | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.01s (1.99s CPU time)\n\nRan 1 test for test/invariant/Launch816Waterfall.invariant.t.sol:Launch816WaterfallInvariantTest\n[PASS]\nLaunch816WaterfallInvariantTest invariants:\n[PASS] invariant_basketNeverReceivesLessThanItsShare\n[PASS] invariant_everyFeeUnitIsAccountedFor\n[PASS] invariant_liabilitiesAreCoveredAndLedgersSum\n[PASS] invariant_lifetimeEqualsAccruedPlusPaidOut\n[PASS] invariant_onlyConfiguredRecipientsArePaid\n[PASS] invariant_treasurySharesAreBackedAndCapped\n[PASS] invariant_untouchedConfigurationHoldsItsLaunchValues\n Launch816WaterfallInvariantTest invariants (runs: 128, calls: 8192, reverts: 0)\n\n╭---------------------------+----------------------+-------+---------+----------╮\n| Contract                  | Selector             | Calls | Reverts | Discards |\n+===============================================================================+\n| Launch816WaterfallHandler | advance              | 667   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | claim                | 616   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | claimBasketIsRefused | 614   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | distribute           | 610   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | feeNative            | 1243  | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | feeWrapped           | 605   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | push                 | 644   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | rescueAttempts       | 626   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | setRecipient         | 654   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | setSplit             | 645   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | treasuryRedeem       | 633   | 0       | 0        |\n|---------------------------+----------------------+-------+---------+----------|\n| Launch816WaterfallHandler | unauthorized         | 635   | 0       | 0        |\n╰---------------------------+----------------------+-------+---------+----------╯\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.05s (2.04s CPU time)\n\nRan 1 test for test/adversarial/TreasurySequence.invariant.t.sol:TreasurySequenceInvariantTest\n[PASS] invariant_treasuryAndFixedSupplyConserveValue() (runs: 256, calls: 24576, reverts: 0)\n\n╭-------------------------+---------------------+-------+---------+----------╮\n| Contract                | Selector            | Calls | Reverts | Discards |\n+============================================================================+\n| TreasurySequenceHandler | advance             | 3542  | 0       | 0        |\n|-------------------------+---------------------+-------+---------+----------|\n| TreasurySequenceHandler | cancel              | 3468  | 0       | 0        |\n|-------------------------+---------------------+-------+---------+----------|\n| TreasurySequenceHandler | execute             | 3533  | 0       | 0        |\n|-------------------------+---------------------+-------+---------+----------|\n| TreasurySequenceHandler | fund                | 3465  | 0       | 0        |\n|-------------------------+---------------------+-------+---------+----------|\n| TreasurySequenceHandler | moveLaunchTokens    | 3494  | 0       | 0        |\n|-------------------------+---------------------+-------+---------+----------|\n| TreasurySequenceHandler | schedule            | 3495  | 0       | 0        |\n|-------------------------+---------------------+-------+---------+----------|\n| TreasurySequenceHandler | unauthorizedExecute | 3579  | 0       | 0        |\n╰-------------------------+---------------------+-------+---------+----------╯\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.55s (3.54s CPU time)\n\nRan 1 test for test/adversarial/CustodySequence.invariant.t.sol:CustodySequenceInvariantTest\n[PASS]\nCustodySequenceInvariantTest invariants:\n[PASS] invariant_allSharesAreBackedAndAccountedFor\n[PASS] invariant_everyReserveUnitHasADestination\n CustodySequenceInvariantTest invariants (runs: 256, calls: 24576, reverts: 0)\n\n╭------------------------+----------------+-------+---------+----------╮\n| Contract               | Selector       | Calls | Reverts | Discards |\n+======================================================================+\n| CustodySequenceHandler | changeSplit    | 2063  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | claim          | 2060  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | deposit        | 1983  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | distribute     | 2036  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | donate         | 2047  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | push           | 2031  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | receiveFees    | 2063  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | redeem         | 2017  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | roundTrip      | 2135  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | togglePause    | 2046  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | transferShares | 2035  | 0       | 0        |\n|------------------------+----------------+-------+---------+----------|\n| CustodySequenceHandler | treasuryRedeem | 2060  | 0       | 0        |\n╰------------------------+----------------+-------+---------+----------╯\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 6.50s (6.49s CPU time)\n\nRan 28 test suites in 6.50s (17.50s CPU time): 332 tests passed, 0 failed, 2 skipped (334 total tests)\n","passed":true},{"durationMs":119,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"AssetRegistry.approveToken(address,address,uint32,uint16,uint40,bytes32)\",\"AssetRegistry.quarantine(address)\",\"AssetRegistry.quarantineIfStale(address)\",\"AssetRegistry.releaseQuarantine(address)\",\"AssetRegistry.revokeToken(address)\",\"AssetRegistry.setMethodology(uint32,bytes32)\",\"AssetRegistry.setParam(uint8,uint256)\",\"AssetRegistry.setReserveFeed(address,uint32)\",\"AssetRegistry.setRouter(address,bool)\",\"EpochManager.activate()\",\"EpochManager.anchorReport(uint64,bytes32,bytes[])\",\"EpochManager.cancelPending()\",\"EpochManager.clearExpired()\",\"EpochManager.publish((uint64,uint64,uint64,uint32,uint32,bytes32,address[],uint16[],uint256[],uint256[],uint256[]),bytes[])\",\"FeeHook.afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)\",\"FeeHook.beforeInitialize(address,(address,address,uint24,int24,address),uint160)\",\"FeeHook.beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)\",\"FeeHookDeployer.deploy(bytes32,bytes)\",\"FeeWaterfall.claim(uint8)\",\"FeeWaterfall.distribute()\",\"FeeWaterfall.pushBasketReserve(uint256)\",\"FeeWaterfall.receive()\",\"FeeWaterfall.rescue(address,address)\",\"FeeWaterfall.setRecipient(uint8,address)\",\"FeeWaterfall.setSplit(uint16,uint16,uint16,uint16,uint16)\",\"FeeWaterfall.setSwapFee(uint24,uint24)\",\"IndexVault.approve(address,uint256)\",\"IndexVault.beginTrade(address,uint256)\",\"IndexVault.deposit(uint256,address,uint256)\",\"IndexVault.endTrade(address)\",\"IndexVault.redeem(uint256,address,bool)\",\"IndexVault.rescue(address,address)\",\"IndexVault.setDepositCap(uint256)\",\"IndexVault.transfer(address,uint256)\",\"IndexVault.transferFrom(address,address,uint256)\",\"LaunchToken.approve(address,uint256)\",\"LaunchToken.transfer(address,uint256)\",\"LaunchToken.transferFrom(address,address,uint256)\",\"RebalanceExecutor.disposeQuarantined(address,uint256,uint256,address,bytes)\",\"RebalanceExecutor.executeTrade(address,address,uint256,uint256,address,bytes)\",\"RebalanceExecutor.swapThroughRouter(address,address,uint256,uint256,address,bytes)\",\"TimelockedAdmin.acceptAdmin()\",\"TimelockedAdmin.cancel(bytes32)\",\"TimelockedAdmin.execute(address,uint256,bytes,bytes32)\",\"TimelockedAdmin.pause()\",\"TimelockedAdmin.receive()\",\"TimelockedAdmin.revokeKeeper(address)\",\"TimelockedAdmin.revokeSigner(address)\",\"TimelockedAdmin.schedule(address,uint256,bytes,bytes32,uint256)\",\"TimelockedAdmin.setExecutor(address)\",\"TimelockedAdmin.setGuardian(address)\",\"TimelockedAdmin.setKeeper(address,bool)\",\"TimelockedAdmin.setMinDelay(uint256)\",\"TimelockedAdmin.setQuorum(uint32)\",\"TimelockedAdmin.setSigner(address,bool)\",\"TimelockedAdmin.transferAdmin(address)\",\"TimelockedAdmin.unpause()\"],\"files\":{\".gitignore\":3,\"ADAPTATION.md\":42,\"README.md\":300,\"docs/LAUNCH-816.md\":149,\"docs/METHODOLOGY.md\":139,\"docs/PROPOSAL.md\":99,\"docs/SECURITY.md\":105,\"docs/VERIFICATION-816.md\":123,\"foundry.toml\":34,\"launch.json\":71,\"script/Deploy.s.sol\":65,\"src/AssetRegistry.sol\":340,\"src/EpochManager.sol\":404,\"src/FeeHook.sol\":258,\"src/FeeHookDeployer.sol\":108,\"src/FeeWaterfall.sol\":254,\"src/IndexVault.sol\":407,\"src/LaunchToken.sol\":16,\"src/RebalanceExecutor.sol\":384,\"src/TimelockedAdmin.sol\":283,\"src/interfaces/IIndex.sol\":91,\"test/AssetRegistry.t.sol\":298,\"test/Deployment.t.sol\":155,\"test/EpochManager.t.sol\":611,\"test/FeeHook.t.sol\":481,\"test/FeeWaterfall.t.sol\":239,\"test/IndexVault.t.sol\":366,\"test/Launch816.t.sol\":113,\"test/Launch816Deployer.t.sol\":161,\"test/Launch816Gas.t.sol\":166,\"test/Launch816Production.t.sol\":187,\"test/Launch816Record.t.sol\":131,\"test/Launch816Resolution.t.sol\":242,\"test/Launch816State.t.sol\":440,\"test/LaunchToken.t.sol\":69,\"test/RebalanceExecutor.t.sol\":488,\"test/Revision.t.sol\":426,\"test/StaleFeedQuarantine.t.sol\":89,\"test/TimelockedAdmin.t.sol\":272,\"test/adversarial/CustodySequence.invariant.t.sol\":315,\"test/adversarial/ExternalTokenFailures.t.sol\":212,\"test/adversarial/ProposalBoundaries.t.sol\":129,\"test/adversarial/README.md\":42,\"test/adversarial/TreasurySequence.invariant.t.sol\":224,\"test/fork/Launch816Fork.t.sol\":137,\"test/fork/Launch816ProductionFork.t.sol\":120,\"test/invariant/Handler.sol\":165,\"test/invariant/Launch816Waterfall.invariant.t.sol\":391,\"test/invariant/Solvency.invariant.t.sol\":95,\"test/utils/Fixture.sol\":282,\"test/utils/Launch816.sol\":226,\"test/utils/Launch816Live.sol\":90,\"test/utils/Launch816Original.sol\":40,\"test/utils/Launch816Production.sol\":115,\"test/utils/Mocks.sol\":180,\"test/utils/V4Router.sol\":78},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"b7beaa62189a5b44d535d741c603c14c1e892106fba7c1a604f4e9268cf45bb1","verifiedTreeHash":"6d6126836f18fe4381d36dce128b3c9fc2ef0ec3","verifierVersion":"0.1.0+c4d32abc"}]}