{"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":"1364ad9b-b21a-42e9-bbc7-d0cf763c0ef0","kind":"skill:build-contract-project","nodes":[{"acceptedSubmissionHash":"0561adc41e81c16037536d38b61dc6c15b0cfb410a419b92a24411e2c4f85f4a","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"15b04fc8f60521936b9e2b37c09a804685ec689fc98cd5b04510d986d3106a15","skillId":"build-contract-project","tools":[]},"key":"build_contract_project","kind":"code","role":"implement","skillHash":"15b04fc8f60521936b9e2b37c09a804685ec689fc98cd5b04510d986d3106a15","skillId":"build-contract-project","state":"accepted"}],"objective":"# JOB: Mine CREATE2 salt\n# REPO: (current repo)\n# RUN: forge script script/MineSalt.s.sol --sig \"mineFor(address)\" 0xdbeab8243F318F1bBF815d85a8A869def1510b61\n# OUTPUT: SALT, ADDRESS, INIT_CODE_HASH","parentJobId":"1610bd2c-f250-4427-a0df-c8ca78a5d830","planHash":"359f207127c18ffab6c289eddf04143f5ed8b46bc3861921f21bcc7748869de5","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"3bc9ffc9-2c14-4259-b152-0359575ece53","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-2680-uniswap-v4-hook"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"52137","feedbackHash":"5a411ed77b0c763032453fa5b5d5fc24b04e6287aa3a1ff9c518093e695e7d89","nodeKey":"build_contract_project","submissionHash":"0561adc41e81c16037536d38b61dc6c15b0cfb410a419b92a24411e2c4f85f4a","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"3b76d15cb9e55fa51d854ef74f249b5752723cb6470ccc16e78d8fde9c1c9ff3","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"0d8ef783dc456b4aa2b66cd5bec994157ade01d28c09304a74a36adb08c07778","device":"c4617da5f1fd5ce8","findings":[],"hash":"0561adc41e81c16037536d38b61dc6c15b0cfb410a419b92a24411e2c4f85f4a","nodeId":"6a3b35f9-6e32-4d90-a51e-564886a3e714","outcome":"completed","summary":"The salt is mined, pinned, tested and documented. Build, the full test suite with the verifier's fuzz seed, and the format check all pass.\n\n**Result of the requested command** for owner `0xdbeab8243F318F1bBF815d85a8A869def1510b61`:\n\n```\nSALT: 0x00000000000000000000000000000000000000000000000000000000000075db\nADDRESS: 0x0E19960828C6f198713e97C0039D589a5b0f1040\nINIT_CODE_HASH: 0xad1d60e3f24ffe14b9ec5816c251dcdd918e6f52b5c441024b1b1f58ca49cb96\n```\n\nThe deployer that runs CREATE2 is the brief's factory `0x735121A546092F31050A867FD7E3A750C7B0EFF9`, and the constructor arguments are the pinned PoolManager, the given owner, the existing SHK token and that same factory. The salt is the lowest that works, and the result reproduced identically after a clean rebuild.\n\n**What changed**\n\n- `script/MineSalt.s.sol` now stores the owner as a constant, so the bare `run()` mines for it instead of reverting. The three result values are pinned as constants, and a new `verifyRecorded()` entrypoint recomputes them from the current build and reverts with a clear error if the creation code or arguments have drifted.\n- `test/MineSalt.t.sol` gained eight tests for the recorded result. They prove the init code hash matches the compiled artifact, the salt is the lowest, a real CREATE2 from the deployer lands the hook on the recorded address owned by the requester, the salt does not serve another owner or deployer, and the verification helper rejects a stale hash, a wrong salt and a wrong address. Suite total is 142 tests, all passing.\n- `docs/create2-salt.json` records the result with every input, the build settings and the validity conditions. The README, security notes and test index describe the recorded result, the verification step and the deployer's duties.\n\n**Assumptions and open items for the deployer**\n\n- The owner address is taken from the brief as given, unverified. A different owner moves the address, so re-mine if the launch names another.\n- The deployer address must be the contract whose CREATE2 opcode runs, and it also fills the hook's factory argument. If it is an EOA, it cannot deploy with CREATE2.\n- The recorded address was not checked for existing code on Robinhood Chain. Confirm it is empty before deploying, and run the verify entrypoint on the exact build being deployed.\n- Nothing was deployed and no key was used. Protected paths were not touched.\n\nOne note on the workspace: this machine's global Foundry config writes compiler output to `artifacts/`, which git excludes here, so the record went into `docs/` rather than `artifacts/`.\n\nNot delivered: artifacts/Address.sol/Address.json, artifacts/Adversarial.t.sol/AdversarialTest.json, artifacts/Adversarial.t.sol/CallbackToken.json, artifacts/Adversarial.t.sol/PrepayRouter.json, artifacts/BalanceDelta.sol/BalanceDeltaLibrary.json, artifacts/BandMath.sol/BandMath.json, artifacts/BandMath.t.sol/BandMathTest.json, artifacts/Base.sol/CommonBase.json and 127 more. Under artifacts/, only this step's named outputs leave the machine.","treeHash":"d6edeabd0457fc2d2065f5367577a6c57c74621d","usage":{"cachedInputTokens":999391,"inputTokens":482,"model":"claude-fable-5-1","outputTokens":27580,"runtime":"claude","turns":46,"wallClockMs":775001}}],"verification":[{"checks":[{"durationMs":61509,"exitCode":0,"name":"build","output":"Compiling 117 files with Solc 0.8.26\nSolc 0.8.26 finished in 61.40s\nCompiler run successful!\n","passed":true},{"durationMs":7511,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 6 tests for test/WethVaultIntegration.t.sol:WethVaultIntegrationTest\n[PASS] test_emergencyReturnsWrappedEtherToChosenReceiverWithoutUnwrapping() (gas: 1108108)\n[PASS] test_firstDepositAfterEmptyPoolMoveRecentresBandOnFeed() (gas: 904744)\n[PASS] test_priceAboveLaunchSoleVaultReserveExactInputRebalance() (gas: 1496306)\n[PASS] test_priceAboveLaunchSoleVaultReserveExactOutputRebalance() (gas: 1495467)\n[PASS] test_priceBelowLaunchSoleVaultReserveExactInputRebalance() (gas: 1496001)\n[PASS] test_priceBelowLaunchSoleVaultReserveExactOutputRebalance() (gas: 1495512)\nSuite result: ok. 6 passed; 0 failed; 0 skipped; finished in 32.41ms (5.30ms CPU time)\n\nRan 3 tests for test/SigmaToken.t.sol:SigmaTokenTest\n[PASS] testFuzz_transferAndAllowance(uint256) (runs: 256, μ: 179876, ~: 179807)\nLogs:\n  Bound result 86401\n\n[PASS] test_fixedSupplyAndMetadata() (gas: 49353)\n[PASS] test_noAdminOrAdditionalMint() (gas: 127664)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 111.31ms (110.77ms CPU time)\n\nRan 9 tests for test/VaultFailurePaths.t.sol:VaultFailurePathsTest\n[PASS] test_allUninitializedVaultEntrypointsRefuseBeforeTokenTransfers() (gas: 51638638)\n[PASS] test_budgetAboveInt128LimitCannotHarvestFeesOrPullTokens() (gas: 1990205)\n[PASS] test_emergencyCannotBeUsedBeforeActivationAndLiveEntrypointsCloseAfterward() (gas: 1846399)\n[PASS] test_invalidPoolAttemptsDoNotPoisonLaterValidInitialization() (gas: 52833723)\n[PASS] test_invalidReceiversAreAtomicInLiveAndEmergencyModes() (gas: 2280645)\n[PASS] test_minSharesFailureAfterHarvestRestoresUncollectedFees() (gas: 2063350)\n[PASS] test_pendingAndFormerOwnerCannotActivateEmergency() (gas: 858546)\n[PASS] test_secondCurrencyWithdrawalMinimumRollsBackBurnAndPosition() (gas: 1976072)\n[PASS] test_secondTokenPullFailureRestoresHarvestMintAndFirstTokenPull() (gas: 2168970)\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 128.18ms (79.19ms CPU time)\n\nRan 26 tests for test/SigmaHook.t.sol:SigmaHookTest\n[PASS] testFuzz_donationsDoNotAllowZeroShareDeposit(uint80) (runs: 256, μ: 1015034, ~: 1152596)\nLogs:\n  Bound result 6217\n\n[PASS] testFuzz_roundTripNeverCreatesAssets(uint96,uint96) (runs: 256, μ: 851541, ~: 851001)\nLogs:\n  Bound result 87077901978385367\n  Bound result 255808085455973\n\n[PASS] test_balancingTradeStaysInsideBand() (gas: 1661228)\n[PASS] test_callbacksAndUnlockRefuseUnauthorizedCalls() (gas: 125067)\n[PASS] test_circularFeedUsesPostExecutionSlot0AndWraps() (gas: 2238769)\n[PASS] test_cooldownRequiresFullThirtyMinutesAndDeviation() (gas: 1972218)\n[PASS] test_deepPoolTrendRebalanceDeploysMostCapital() (gas: 1749786)\n[PASS] test_depositAndWithdrawalSlippageDeadlineAndZeroChecks() (gas: 1205584)\n[PASS] test_emergencyFreezesInvestmentButNotSwapsOrShareTransfers() (gas: 1338234)\n[PASS] test_emergencyRemovesAllLiquidityAndWithdrawsProRata() (gas: 1728691)\n[PASS] test_emptiedVaultDoesNotRebalanceUntilSomeoneDepositsAgain() (gas: 2080240)\n[PASS] test_feeOwnershipCannotBeDilutedByNewDepositor() (gas: 1668070)\n[PASS] test_firstDepositAfterPriceMoveUsesFreshBand() (gas: 1231661)\n[PASS] test_firstDepositAndProportionalSecondDeposit() (gas: 1115411)\n[PASS] test_firstDepositPullsOnlyWhatTheBandNeeds() (gas: 832992)\n[PASS] test_minedPermissionsInitializationAndExplicitOwner() (gas: 201414)\n[PASS] test_noBalancingTradeInAnEmptyPool() (gas: 1084747)\n[PASS] test_noDeviationDoesNotRebalanceAfterCooldown() (gas: 909534)\n[PASS] test_otherLpCanCollectZeroDeltaFeesEvenInEmergency() (gas: 1605599)\n[PASS] test_ownerTransferRequiresAcceptanceAndCannotRenounce() (gas: 153947)\n[PASS] test_rebalanceBurnsEntireOldPositionAndKeepsAllCapital() (gas: 1794326)\n[PASS] test_rebalanceCompoundsNetAccruedFeesAndDust() (gas: 1564733)\n[PASS] test_rejectsSecondPoolAndWrongCallbackPool() (gas: 127656)\n[PASS] test_strayEthIsRefusedOnAnErc20Pair() (gas: 116888)\n[PASS] test_trendRebalanceSellsSurplusAndRedeploys() (gas: 9112978)\n[PASS] test_uninitializedFunctionsAndFactoryGate() (gas: 52043657)\nSuite result: ok. 26 passed; 0 failed; 0 skipped; finished in 131.70ms (252.35ms CPU time)\n\nRan 8 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_emergencyCannotBurnOtherHoldersShares() (gas: 825183)\n[PASS] test_emptyVaultCanEnterEmergency() (gas: 137845)\n[PASS] test_feeOnTransferDepositIsRejectedAtomically() (gas: 54939204)\n[PASS] test_initializationAtPriceExtremesAndSingleSidedDeposits() (gas: 432365091)\n[PASS] test_liquidityCapacityCannotBlockSwapRebalance() (gas: 2093533)\n[PASS] test_prepayRouterSwapSurvivesARebalance() (gas: 2659513)\n[PASS] test_saltToolUsesExactFactoryAndConstructorArguments() (gas: 19205214)\nLogs:\n  SALT: 0x000000000000000000000000000000000000000000000000000000000000736c\n  ADDRESS: 0x01b78616dcb940a69f297de475Fd8651AcA01040\n  INIT_CODE_HASH: 0x1879b0134f80e48e98f76e8d317307d44c7e95c639ee35c7e48503020967f5f7\n  DEPLOYER: 0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496\n  CONSTRUCTOR manager: 0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f\n  CONSTRUCTOR owner: 0x7240b687730BE024bcfD084621f794C2e4F8408f\n  CONSTRUCTOR launchToken: 0x2e234DAe75C793f67A35089C9d99245E1C58470b\n  CONSTRUCTOR factory: 0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496\n\n[PASS] test_tokenCallbackCannotReenterDeposit() (gas: 55361125)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 151.72ms (201.56ms CPU time)\n\nRan 4 tests for test/NativeSafety.t.sol:NativeSafetyTest\n[PASS] testFuzz_initialDepositRefundsNativeBudgetAndMatchesFreshPreview(uint64,uint64,int24) (runs: 256, μ: 1053071, ~: 1069417)\nLogs:\n  Bound result 8546744073709551611\n  Bound result 9900252686734117860\n  Bound result -152\n\n[PASS] test_keeperCallbackCannotReenterAndRejectedBountyRollsBack() (gas: 3006082)\n[PASS] test_ownerRescuesOnlyForcedSurplusAndCannotSweepLPCapital() (gas: 867738)\n[PASS] test_receiveAllowsOnlyManagerOrOnceConfiguredWETH() (gas: 266440)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 154.55ms (140.99ms CPU time)\n\nRan 11 tests for test/Flywheel.t.sol:FlywheelTest\n[PASS] testFuzz_dislocatedPriceStillMintsOrExplicitlyDefers(int24,uint64) (runs: 256, μ: 1655821, ~: 1658694)\nLogs:\n  Bound result -378\n  Bound result 983044825959847100\n\n[PASS] test_afterSwapOnlySamplesEvenWhenKeeperIsDue() (gas: 1080138)\n[PASS] test_deferredAssetsRemainWithdrawable() (gas: 1201518)\n[PASS] test_deferredBuybackIsSpentOnlyOnceOnNextEligibleCycle() (gas: 3922094)\n[PASS] test_depositCannotRefreshDeferredRangeToBypassKeeperCooldown() (gas: 1431649)\n[PASS] test_emptyAndEmergencyVaultCannotPayBounty() (gas: 751568)\n[PASS] test_harvestByNewDepositCannotEvadeFeeReservesOrDiluteOldHolder() (gas: 1643344)\n[PASS] test_keeperGatesWrongPoolCooldownDeviationAndReplay() (gas: 1776946)\n[PASS] test_noExternalLiquidityDefersAndPermissionlessRetryRecovers() (gas: 1861360)\n[PASS] test_triSplitUsesFeesOnlyAndPaysActualKeeperBeforeReinvestment() (gas: 1944318)\n[PASS] test_zeroAddressCompatibleTokenUsesRequestedDisposalPath() (gas: 56586067)\nSuite result: ok. 11 passed; 0 failed; 0 skipped; finished in 162.53ms (189.93ms CPU time)\n\nRan 11 tests for test/BandMath.t.sol:BandMathTest\n[PASS] testFuzz_liquiditySizingNeverOverspends(int24,int24,int24,uint128,uint128,uint128) (runs: 256, μ: 30709, ~: 30794)\nLogs:\n  Bound result 0\n  Bound result 19\n  Bound result 1\n\n[PASS] testFuzz_statisticsMatchIndependentIntegerReference(int24[8],uint16) (runs: 256, μ: 108711, ~: 108768)\nLogs:\n  Bound result 60\n  Bound result 23036\n  Bound result 23202\n  Bound result 50\n  Bound result -50\n  Bound result 1901\n  Bound result 9275\n  Bound result -1500\n  Bound result 13046\n\n[PASS] test_extremeTicksStayWithinUsableGrid() (gas: 27507)\n[PASS] test_knownPopulationStatistics() (gas: 37951)\n[PASS] test_lowPriceSizingKeepsPrecision() (gas: 10369)\n[PASS] test_meanRoundsToNearestAndNegativeGridFloors() (gas: 21621)\n[PASS] test_rebalanceTradeTargetsBandRatioAndRespectsDeadband() (gas: 21249)\n[PASS] test_restingTickDoesNotDeviateButOutlierDoes() (gas: 26774)\n[PASS] test_sizingOneSqrtUnitFromUpperAndVeryLowTicks() (gas: 13646)\n[PASS] test_strictTriggerAndHalfIntegerThreshold() (gas: 12405)\n[PASS] test_tradeLimitStopsAtBandEdgeOrCap() (gas: 20709)\nSuite result: ok. 11 passed; 0 failed; 0 skipped; finished in 181.20ms (200.21ms CPU time)\n\nRan 7 tests for test/NativeVault.t.sol:NativeVaultTest\n[PASS] testFuzz_freshManagerRebalanceBeforeInputSettlement(bool) (runs: 256, μ: 2563685, ~: 2583563)\n[PASS] test_emergencyRedeemsClaimsAndNeedsNoManagerForWithdrawal() (gas: 1795544)\n[PASS] test_exactInputAndOutputBothDirectionsRemainUsable() (gas: 1271445)\n[PASS] test_nativeDepositRefundAndOrdinaryExit() (gas: 995474)\n[PASS] test_onlyTheManagerMaySendEthToTheHook() (gas: 100811)\n[PASS] test_reentrantEmergencyReceiverCannotRedeemTwice() (gas: 1103756)\n[PASS] test_rejectingEthRecipientRollsBackAndCanChooseAnotherReceiver() (gas: 1045487)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 222.23ms (210.45ms CPU time)\n\nRan 18 tests for test/OperatorParams.t.sol:OperatorParamsTest\n[PASS] testFuzz_bandsEncloseRangeSigmaOnTheSmallestUsableGrid(int256,uint256,uint8) (runs: 1000, μ: 25584, ~: 25751)\nLogs:\n  Bound result 15110\n  Bound result 3119\n  Bound result 45\n\n[PASS] testFuzz_triggerIsStrictAtBothSidesForAnyTenthsSetting(uint24,int24,uint8) (runs: 1000, μ: 21673, ~: 21701)\nLogs:\n  Bound result 2837\n  Bound result 21247\n  Bound result 16\n\n[PASS] test_bandsWidenMonotonicallyWithRangeSigma() (gas: 41219)\n[PASS] test_cooldownGateUsesTheLiveSetting() (gas: 2460884)\n[PASS] test_defaultsMatchTheSprintOneBehaviour() (gas: 46261)\n[PASS] test_firstDepositUsesTheLiveRangeSigma() (gas: 1271749)\n[PASS] test_pauseAndResumeTouchOnlyTheTrigger() (gas: 215606)\n[PASS] test_pausedPresetCooldownNeverElapses() (gas: 1122188)\n[PASS] test_pausedTriggerIsBeyondAnyEightSampleDeviation() (gas: 20132)\n[PASS] test_presetTableIsExactlyAsOrdered() (gas: 79677)\n[PASS] test_rangeSigmaShapesProposedAndDeployedBands() (gas: 1710613)\n[PASS] test_setCooldownBounds() (gas: 238216)\n[PASS] test_setModeLoadsEveryPresetAndEmits() (gas: 462066)\n[PASS] test_setModeRejectsUnknownModeAndNonOwner() (gas: 138403)\n[PASS] test_setRangeSigmaBounds() (gas: 206381)\n[PASS] test_setTriggerSigmaBounds() (gas: 230897)\n[PASS] test_tighterTriggerFiresWhereStandardDoesNot() (gas: 2303064)\n[PASS] test_triggerGateUsesTheLiveSettingAndPauseResume() (gas: 1839934)\nSuite result: ok. 18 passed; 0 failed; 0 skipped; finished in 230.62ms (410.64ms CPU time)\n\nRan 1 test for test/VaultInvariant.t.sol:VaultInvariantTest\n[PASS]\nVaultInvariantTest invariants:\n[PASS] invariant_currencyAndShareConservation\n[PASS] invariant_positionAndFlashAccounting\n VaultInvariantTest invariants (runs: 64, calls: 2048, reverts: 0)\n\n╭--------------+----------------+-------+---------+----------╮\n| Contract     | Selector       | Calls | Reverts | Discards |\n+============================================================+\n| VaultHandler | advanceTime    | 271   | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| VaultHandler | deposit        | 251   | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| VaultHandler | donate         | 248   | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| VaultHandler | emergency      | 294   | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| VaultHandler | rebalance      | 245   | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| VaultHandler | trade          | 248   | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| VaultHandler | transferShares | 250   | 0       | 0        |\n|--------------+----------------+-------+---------+----------|\n| VaultHandler | withdraw       | 241   | 0       | 0        |\n╰--------------+----------------+-------+---------+----------╯\n\nLogs:\n  Bound result 64\n  Bound result 887271\n  Bound result 99999999999999951\n  Bound result 500\n  Bound result 928\n  Bound result 1098145759805163455440\n  Bound result 101000000000000000000\n  Bound result 362\n  Bound result 849451532064752978980\n  Bound result -1\n  Bound result 653\n  Bound result -379\n  Bound result 264\n  Bound result 4663\n  Bound result 120\n  Bound result 4663\n  Bound result 3678\n  Bound result -1\n  Bound result 999999999999005944\n  Bound result 999999999999021071\n  Bound result 999999999999000513\n  Bound result 999999999999000300\n  Bound result 135913439567347774307\n  Bound result 9633217855\n  Bound result 999999999999004069\n  Bound result 16397\n  Bound result 473\n  Bound result 99999999999999941\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 594.41ms (579.43ms CPU time)\n\nRan 27 tests for test/MineSalt.t.sol:MineSaltTest\n[PASS] testFuzz_anyOwnerDeploysAtPrediction(address) (runs: 16, μ: 11981248, ~: 10843492)\nLogs:\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000003139\n  ADDRESS: 0x80F5a1F8C41aC39C3178A1DbA032C34652411040\n  INIT_CODE_HASH: 0x34ca5755e120675d93f5c819b1dbce5c04d712092a578f11f47a925f76373c38\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0x000000000000000000000000000000000000005a\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n\n[PASS] testFuzz_assemblyPredictionMatchesSolidityFormula(address,bytes32,bytes32) (runs: 64, μ: 17814, ~: 17814)\n[PASS] testFuzz_minedAddressAlwaysEndsIn1040(address,bytes32,uint64) (runs: 24, μ: 10125073, ~: 8293640)\n[PASS] test_briefDeployerCreate2LandsOnPredictedAddress() (gas: 26873134)\nLogs:\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000023d4c\n  ADDRESS: 0x4cc3652270eb1Ec323F8e9416ADc2B8974801040\n  INIT_CODE_HASH: 0x37bbefbb6cf3e775d73aeb6f4dc82aa22f0198007f2255acfdf8ad9b2c645109\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n\n[PASS] test_checkRejectsStaleInitCode() (gas: 9725)\n[PASS] test_checkRejectsWrongSaltOrAddress() (gas: 42349)\n[PASS] test_constantsMatchBriefAndHookPermissions() (gas: 79195)\n[PASS] test_fullFormMatchesLocalDeployer() (gas: 23136446)\nLogs:\n  SALT: 0x000000000000000000000000000000000000000000000000000000000001cd83\n  ADDRESS: 0x79A3e7A1e1C051aDd10bdAd684B9D1fC852D1040\n  INIT_CODE_HASH: 0x52f321737ff00d378f16fc79adb1e8cbed90fd2db33f684e877ead46d97a7d03\n  DEPLOYER: 0xF62849F9A0B5Bf2913b396098F7c7019b51A820a\n  CONSTRUCTOR manager: 0xA5d55E7A556fbA22974479497E6bf7e097D81b5e\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x77D93908Ca1cb75f3Fb71270b066baA9a1075191\n  CONSTRUCTOR factory: 0xF62849F9A0B5Bf2913b396098F7c7019b51A820a\n\n[PASS] test_hookConstructorRejectsUnminedSalt() (gas: 687641)\n[PASS] test_hookConstructorRejectsZeroOwnerEvenAtMinedAddress() (gas: 3635080)\n[PASS] test_initCodeMatchesCompiledArtifact() (gas: 190483)\n[PASS] test_mineIsDeterministicAndReturnsLowestSalt() (gas: 59173260)\nLogs:\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000023d4c\n  ADDRESS: 0x4cc3652270eb1Ec323F8e9416ADc2B8974801040\n  INIT_CODE_HASH: 0x37bbefbb6cf3e775d73aeb6f4dc82aa22f0198007f2255acfdf8ad9b2c645109\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000023d4c\n  ADDRESS: 0x4cc3652270eb1Ec323F8e9416ADc2B8974801040\n  INIT_CODE_HASH: 0x37bbefbb6cf3e775d73aeb6f4dc82aa22f0198007f2255acfdf8ad9b2c645109\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n\n[PASS] test_mineRefusesWindowThatWraps() (gas: 9222)\n[PASS] test_recordedInitCodeHashMatchesThisBuild() (gas: 83921)\n[PASS] test_recordedSaltDeploysHookOwnedByRequester() (gas: 7153070)\n[PASS] test_recordedSaltDoesNotServeAnotherOwnerOrDeployer() (gas: 73743)\n[PASS] test_recordedSaltIsTheLowestForRequesterOwner() (gas: 4059952)\n[PASS] test_runMinesRecordedSaltForRequesterOwner() (gas: 8193029)\nLogs:\n  SALT: 0x00000000000000000000000000000000000000000000000000000000000075db\n  ADDRESS: 0x0E19960828C6f198713e97C0039D589a5b0f1040\n  INIT_CODE_HASH: 0xad1d60e3f24ffe14b9ec5816c251dcdd918e6f52b5c441024b1b1f58ca49cb96\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xdbeab8243F318F1bBF815d85a8A869def1510b61\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  SALT: 0x00000000000000000000000000000000000000000000000000000000000075db\n  ADDRESS: 0x0E19960828C6f198713e97C0039D589a5b0f1040\n  INIT_CODE_HASH: 0xad1d60e3f24ffe14b9ec5816c251dcdd918e6f52b5c441024b1b1f58ca49cb96\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xdbeab8243F318F1bBF815d85a8A869def1510b61\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n\n[PASS] test_runWithOwnerMinesAddressEndingIn1040ForBriefDeployer() (gas: 19765272)\nLogs:\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000023d4c\n  ADDRESS: 0x4cc3652270eb1Ec323F8e9416ADc2B8974801040\n  INIT_CODE_HASH: 0x37bbefbb6cf3e775d73aeb6f4dc82aa22f0198007f2255acfdf8ad9b2c645109\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n\n[PASS] test_saltIsBoundToDeployer() (gas: 19772381)\nLogs:\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000023d4c\n  ADDRESS: 0x4cc3652270eb1Ec323F8e9416ADc2B8974801040\n  INIT_CODE_HASH: 0x37bbefbb6cf3e775d73aeb6f4dc82aa22f0198007f2255acfdf8ad9b2c645109\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n\n[PASS] test_saltIsBoundToOwner() (gas: 19770577)\nLogs:\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000023d4c\n  ADDRESS: 0x4cc3652270eb1Ec323F8e9416ADc2B8974801040\n  INIT_CODE_HASH: 0x37bbefbb6cf3e775d73aeb6f4dc82aa22f0198007f2255acfdf8ad9b2c645109\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n\n[PASS] test_searchExhaustedBeforeFirstHit() (gas: 39464031)\nLogs:\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000023d4c\n  ADDRESS: 0x4cc3652270eb1Ec323F8e9416ADc2B8974801040\n  INIT_CODE_HASH: 0x37bbefbb6cf3e775d73aeb6f4dc82aa22f0198007f2255acfdf8ad9b2c645109\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n\n[PASS] test_searchResumesFromStart() (gas: 20297053)\nLogs:\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000023d4c\n  ADDRESS: 0x4cc3652270eb1Ec323F8e9416ADc2B8974801040\n  INIT_CODE_HASH: 0x37bbefbb6cf3e775d73aeb6f4dc82aa22f0198007f2255acfdf8ad9b2c645109\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  SALT: 0x0000000000000000000000000000000000000000000000000000000000024c90\n  ADDRESS: 0xC3Ab87063aE23255a7b65F85647DB90f24C81040\n  INIT_CODE_HASH: 0x37bbefbb6cf3e775d73aeb6f4dc82aa22f0198007f2255acfdf8ad9b2c645109\n  DEPLOYER: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n  CONSTRUCTOR manager: 0x8366a39CC670B4001A1121B8F6A443A643e40951\n  CONSTRUCTOR owner: 0xca776F5247702Da3b649931bBE41CA506344d3AC\n  CONSTRUCTOR launchToken: 0x4fE865Ad3b3eF64B2af9C38c78aBf5C6e68C1164\n  CONSTRUCTOR factory: 0x735121A546092F31050A867FD7E3A750C7B0EFF9\n\n[PASS] test_suffixPredicateIsStricterThanV4Flags() (gas: 47909)\n[PASS] test_verifyRecordedPassesForThisBuild() (gas: 45512)\nLogs:\n  VERIFIED SALT: 0x00000000000000000000000000000000000000000000000000000000000075db\n  VERIFIED ADDRESS: 0x0E19960828C6f198713e97C0039D589a5b0f1040\n  VERIFIED INIT_CODE_HASH: 0xad1d60e3f24ffe14b9ec5816c251dcdd918e6f52b5c441024b1b1f58ca49cb96\n\n[PASS] test_zeroArgumentsRevert() (gas: 45885)\n[PASS] test_zeroOwnerReverts() (gas: 9177)\nSuite result: ok. 27 passed; 0 failed; 0 skipped; finished in 731.42ms (1.68s CPU time)\n\nRan 9 tests for test/MathProperties.t.sol:MathPropertiesTest\n[PASS] testFuzz_bandsEncloseThreeSigmaOnTheSmallestUsableGrid(int256,uint256) (runs: 1000, μ: 21513, ~: 21753)\nLogs:\n  Bound result -523253\n  Bound result 4455400\n\n[PASS] testFuzz_largerBudgetsNeverReduceLiquidity(int24,int24,int24,uint128,uint128,uint128) (runs: 1000, μ: 31106, ~: 31040)\nLogs:\n  Bound result 0\n  Bound result 887250\n  Bound result -1\n\n[PASS] testFuzz_momentsIgnoreOrderAndReflectAboutZero(int24[8],uint8) (runs: 1000, μ: 106220, ~: 106166)\nLogs:\n  Bound result -23\n  Bound result -579349\n  Bound result -313654\n  Bound result -579216\n  Bound result 7476\n  Bound result -3\n  Bound result 201647\n  Bound result 727058\n\n[PASS] testFuzz_principalRoundingAndPriceMonotonicity(int24,int24,int24,int24,uint128) (runs: 1000, μ: 42892, ~: 42982)\nLogs:\n  Bound result 14391\n  Bound result 874381\n  Bound result 9439\n  Bound result 878340\n\n[PASS] testFuzz_symmetricTwoPointDistributionHasKnownPopulationSigma(int24,uint24) (runs: 1000, μ: 31547, ~: 31513)\nLogs:\n  Bound result 153\n  Bound result 295390\n\n[PASS] testFuzz_triggerIsStrictAtBothSidesOfOneAndAHalfSigma(uint24,int24) (runs: 1000, μ: 17519, ~: 17405)\nLogs:\n  Bound result 1295\n  Bound result 0\n\n[PASS] test_oneWeiFundsOnlyAffordableLiquidityAtExactBandBoundaries() (gas: 11129)\n[PASS] test_triggerUsesTheUnroundedMean() (gas: 13674)\n[PASS] test_zeroLiquidityZeroBudgetsAndZeroCapacity() (gas: 9238)\nSuite result: ok. 9 passed; 0 failed; 0 skipped; finished in 731.51ms (2.20s CPU time)\n\nRan 2 tests for test/VaultAccountingInvariant.t.sol:VaultAccountingInvariantTest\n[PASS] invariant_assetsBackedByExternalCashFlows() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------------+----------------+-------+---------+----------╮\n| Contract          | Selector       | Calls | Reverts | Discards |\n+=================================================================+\n| AccountingHandler | deposit        | 2077  | 0       | 0        |\n|-------------------+----------------+-------+---------+----------|\n| AccountingHandler | donateFees     | 2018  | 0       | 0        |\n|-------------------+----------------+-------+---------+----------|\n| AccountingHandler | donateRaw      | 2164  | 0       | 0        |\n|-------------------+----------------+-------+---------+----------|\n| AccountingHandler | emergency      | 1983  | 0       | 0        |\n|-------------------+----------------+-------+---------+----------|\n| AccountingHandler | roundTrip      | 2065  | 0       | 0        |\n|-------------------+----------------+-------+---------+----------|\n| AccountingHandler | trade          | 2028  | 0       | 0        |\n|-------------------+----------------+-------+---------+----------|\n| AccountingHandler | transferShares | 2039  | 0       | 0        |\n|-------------------+----------------+-------+---------+----------|\n| AccountingHandler | withdraw       | 2010  | 0       | 0        |\n╰-------------------+----------------+-------+---------+----------╯\n\nLogs:\n  Bound result 9959475660211103722903\n  Bound result 240681100127796407\n  Bound result 147148280691868601\n  Bound result 658620\n  Bound result 1874\n  Bound result 15333\n  Bound result 5695\n  Bound result 3835058450\n  Bound result 14994\n  Bound result 0\n  Bound result 180\n  Bound result 1573\n  Bound result -1\n  Bound result 1000000000000000000\n  Bound result 2428483684\n  Bound result 16959\n  Bound result 449135983241463\n  Bound result 1689171399022258918\n  Bound result 6\n  Bound result 2428830010\n  Bound result 3000000000000000000\n  Bound result 177\n  Bound result 10150\n  Bound result 7098176\n  Bound result 9056\n  Bound result 15133\n  Bound result 4066415971224089287\n  Bound result 65535\n  Bound result 2781646556631331182884\n  Bound result 264388385896083502\n  Bound result 3395143026173935012\n  Bound result 10123\n  Bound result 123\n  Bound result 22\n  Bound result 3806120792285\n  Bound result 245539149267796\n  Bound result 999999999999999997\n  Bound result 16584\n  Bound result 122\n  Bound result 3640386876137387371\n  Bound result 2518870374898144832\n  Bound result 7044\n  Bound result 2074\n  Bound result 1985\n  Bound result 15656\n  Bound result 1502280167\n  Bound result 707157112521072181\n  Bound result 3819247344241084338\n  Bound result 1000\n  Bound result 17067\n  Bound result 7212\n  Bound result 881\n  Bound result 267\n  Bound result 1579999999999999998\n  Bound result 887160\n  Bound result 2659067023790259389\n  Bound result 480\n  Bound result 16\n  Bound result 3041954472\n  Bound result 31536000\n  Bound result 12293\n  Bound result 14473\n  Bound result 30\n  Bound result 22209\n  Bound result 1200\n  Bound result 4999999999800000001\n  Bound result 200\n  Bound result 17607\n  Bound result 12046\n  Bound result 318134047580518777\n  Bound result 500\n  Bound result 1700\n  Bound result 658680\n  Bound result 2\n  Bound result 37454132271738\n  Bound result 2116\n  Bound result 2315919509204254341\n  Bound result 7965\n  Bound result 3761\n  Bound result 7200\n\n[PASS] test_accountingHandlerExercisesEveryActionAndFullExit() (gas: 3553359)\nLogs:\n  Bound result 3000000000000000000\n  Bound result 2000000000000000000\n  Bound result 1000000000000000000\n  Bound result 500000000000000000\n  Bound result 100000000000000000\n  Bound result 200000000000000000\n  Bound result 1002724390519861757235\n  Bound result 1800\n  Bound result 20\n  Bound result 1000000000000000000\n  Bound result 1000000000000000000\n  Bound result 1\n\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 7.38s (7.37s CPU time)\n\nRan 14 test suites in 7.38s (10.94s CPU time): 142 tests passed, 0 failed, 0 skipped (142 total tests)\n","passed":true},{"durationMs":78,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"SigmaHook.acceptOwnership()\",\"SigmaHook.activateEmergencyMode()\",\"SigmaHook.afterAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)\",\"SigmaHook.afterDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)\",\"SigmaHook.afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)\",\"SigmaHook.afterRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)\",\"SigmaHook.afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)\",\"SigmaHook.approve(address,uint256)\",\"SigmaHook.beforeAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)\",\"SigmaHook.beforeDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)\",\"SigmaHook.beforeInitialize(address,(address,address,uint24,int24,address),uint160)\",\"SigmaHook.beforeRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)\",\"SigmaHook.beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)\",\"SigmaHook.deposit(uint256,uint256,uint256,address,uint256)\",\"SigmaHook.emergencyWithdraw()\",\"SigmaHook.emergencyWithdraw(uint256,address)\",\"SigmaHook.flashRebalance((address,address,uint24,int24,address))\",\"SigmaHook.pause()\",\"SigmaHook.receive()\",\"SigmaHook.rescueStrayETH()\",\"SigmaHook.resume()\",\"SigmaHook.retryInvestment((address,address,uint24,int24,address))\",\"SigmaHook.setCooldown(uint32)\",\"SigmaHook.setMode(uint8)\",\"SigmaHook.setRangeSigma(uint8)\",\"SigmaHook.setTriggerSigma(uint8)\",\"SigmaHook.setWETH(address)\",\"SigmaHook.transfer(address,uint256)\",\"SigmaHook.transferFrom(address,address,uint256)\",\"SigmaHook.transferOwnership(address)\",\"SigmaHook.unlockCallback(bytes)\",\"SigmaHook.withdraw(uint256,uint256,uint256,address,uint256)\",\"SigmaToken.approve(address,uint256)\",\"SigmaToken.transfer(address,uint256)\",\"SigmaToken.transferFrom(address,address,uint256)\"],\"files\":{\".gitignore\":3,\"LICENSE\":21,\"README.md\":176,\"dependencies.lock.json\":64,\"docs/SECURITY.md\":59,\"docs/create2-salt.json\":38,\"foundry.toml\":21,\"launch.json\":29,\"remappings.txt\":8,\"script/MineSalt.s.sol\":186,\"src/HookFlags.sol\":30,\"src/PermanentTokenLock.sol\":7,\"src/SigmaHook.sol\":788,\"src/SigmaMath.sol\":103,\"src/SigmaToken.sol\":11,\"src/libraries/BandMath.sol\":81,\"src/libraries/VaultMath.sol\":122,\"test/Adversarial.t.sol\":237,\"test/BandMath.t.sol\":234,\"test/Flywheel.t.sol\":296,\"test/MathProperties.t.sol\":202,\"test/MineSalt.t.sol\":385,\"test/NativeSafety.t.sol\":138,\"test/NativeVault.t.sol\":165,\"test/OperatorParams.t.sol\":446,\"test/README.md\":33,\"test/SigmaHook.t.sol\":553,\"test/SigmaToken.t.sol\":51,\"test/VaultAccountingInvariant.t.sol\":330,\"test/VaultFailurePaths.t.sol\":267,\"test/VaultInvariant.t.sol\":186,\"test/WethVaultIntegration.t.sol\":200,\"test/helpers/Create2Factory.sol\":18,\"test/helpers/Fixture.sol\":117,\"test/helpers/MockERC20.sol\":24,\"test/helpers/TestRouter.sol\":84},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"0561adc41e81c16037536d38b61dc6c15b0cfb410a419b92a24411e2c4f85f4a","verifiedTreeHash":"d6edeabd0457fc2d2065f5367577a6c57c74621d","verifierVersion":"0.1.0+d372f99e"}]}