{"schemaVersion":"programmable.module-foundation.availability.v2","available":true,"reason":null,"binding":{"factoryVersion":"v2","lpCustodyId":"0x2c7b3660c5544787be316b6ede4cc650661ca804d71fda39f7b179d6af6837e1","releaseDigest":"0x35e1c4276a2310b2aedb58b5f89cb8b3f5c537b92e471bcb72a33fb23e533cfd","sourceCommit":"8877b1bb946a5f64cce572e6114fc86cd0140b56","startBlock":"67353984","factory":{"address":"0x18cab14c69d0fe6df4a96256318b51c51c98da3f","runtimeCodeHash":"0x049a3b673e341750ff94b7ba71f9b9e4ab8f9ef2756cdc072769b1bc2083f706"},"hookDeployer":{"address":"0x6fabd2b1d39989247df7cbcc5427aadcab487cf4","runtimeCodeHash":"0xf480e7f7242d590d1656d6efec70cfe64470d02dc768cad3721d0937066a0152"}},"evidence":{"artifactDigest":"0x87616e1c91149a5f7215ca41015ea72fb5a81c14849da08bec2398549546a4a1","decisionDigest":"0x1d0384e0edbe70e1c9baf39264c0d3c01e519310e76638d72237de7078c159ee","sourceManifestHash":"0x65c11c7df5cf9e55b5666081e973d54ab4bfe1ffc0868a8819cc13d5f1e78954","sourcePath":"/v1/modules/foundation/source/release/0x35e1c4276a2310b2aedb58b5f89cb8b3f5c537b92e471bcb72a33fb23e533cfd","deploymentEvidenceDigest":"0x7bc1bb5095195632f9ca984abb064a542f42fa471d449b79fa2f041c7b9d2e92","runtimeVerificationDigest":"0xd8d70926d9e13ad6fa0a915ff76afacc4e6199ee54e4499c060569094ac080a1","finalityEvidenceDigest":"0xc48709a73270ffa3be8b7fa3f8a78b751d2965da9325691413b15456e834fbac","blockNumber":"96415419","blockHash":"0x4727fbd116756597fa46a28321980ed549fbd5044db0f2d7d8305ca55ac875fb","checkedAt":"2026-10-24T02:15:25.748Z","actualTradeEvidence":null,"feeCreditEvidence":null,"payoutEvidence":null},"catalog":{"document":{"entries":[{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0x7dc1c2d183e00c958fd5deb4f83a9b3163d6aa6a89a8e72e6233bf837b748e2a","familyId":"0x6a388bfa7acb787d17682ecfc231aab5caed809681e58b66cbb853ae24af93f0","requestDigest":"0x1d8855eb9acd0462ad90faf26ba8d976e49efc07e48fcd1605640b7603f899a2","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"FeeStrategyV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol"},{"entrypoint":"FullRangeLPFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"dipBps":{"binding":{"mode":"fixed","value":"0"},"bits":16,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"intervalSeconds":{"bits":32,"label":"Time between batches (seconds)","max":"604800","min":"30","type":"uint","unit":"seconds"},"maximumBatch":{"bits":128,"label":"Maximum amount per batch","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"minimumBudget":{"bits":128,"label":"Minimum fee balance","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"priceWindowSeconds":{"bits":32,"label":"Price reference period (seconds)","max":"600","min":"300","type":"uint","unit":"seconds"},"slippageBps":{"bits":16,"label":"Maximum slippage (%)","max":"1000","min":"1","type":"uint","unit":"programmable.percent-bps"}},"required":["minimumBudget","maximumBatch","intervalSeconds","priceWindowSeconds","slippageBps","dipBps"],"type":"record"},"constraints":[{"id":"batch-size","left":{"ref":{"instance":"$self","path":["minimumBudget"]}},"message":"The maximum batch must cover the minimum fee balance.","operator":"lte","right":{"ref":{"instance":"$self","path":["maximumBatch"]}}}],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[{"configurationAbi":[],"id":"execute","selector":"0x61461954"}],"configurationAbi":[{"path":["minimumBudget"],"type":"uint128"},{"path":["maximumBatch"],"type":"uint128"},{"path":["intervalSeconds"],"type":"uint32"},{"path":["priceWindowSeconds"],"type":"uint32"},{"path":["slippageBps"],"type":"uint16"},{"path":["dipBps"],"type":"uint16"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"dipBps":"0","intervalSeconds":"300","priceWindowSeconds":"300","slippageBps":"500"},"descriptor":{"abiVersion":1,"actionGas":2000000,"afterGas":40000,"beforeGas":100000,"exclusiveGroup":"0x8fd2f2cda82ced64fc171607e2024a8ad88e8f4c1f6d0946380751d6157aa71d","failOpenAfter":false,"moduleId":"0x8fd2f2cda82ced64fc171607e2024a8ad88e8f4c1f6d0946380751d6157aa71d","phases":7,"resources":1},"descriptorHash":"0xf3b591d0a918bc0b3139a5de3cbded34f743ff7cc3e038a6dc444b5ec8954d4b","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"liquidity"}},"familySalt":"0xcb4983d6332698bd32615a19cb155f281b3645e77edb63eda2a34c1a11b75183","format":"programmable.classic.source-package.v0.1","management":{"actions":[{"component":"module","description":"Execute one ready batch within the immutable budget and price limits.","entrypoint":"onAction","id":"execute","inputs":{"fields":{},"required":[],"type":"record"},"label":"Execute ready batch","role":"public"}],"reads":[{"component":"module","description":"Total quote fees used by this strategy in raw quote units.","entrypoint":"totalQuoteUsed","id":"spent","label":"Quote fees used"}],"summary":"Your assigned fees buy tokens and add both assets as permanently locked liquidity across the full price range. Unused amounts carry into the next batch. Automatic execution needs a running keeper. Existing trading rules can postpone a purchase."},"name":"Full-range liquidity","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.before-swap@1","programmable.module-foundation.after-swap@1","programmable.module-foundation.action@1","programmable.module-foundation.own-quote-budget@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"03e62938158661298b2535324a64ea468c28df1d2e212ba756232867e08c2d95"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x1161da8f17a3f6947eb59c65e2e3c87dce68e54287e86e2d64d8f74b08d827bc","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x1d8855eb9acd0462ad90faf26ba8d976e49efc07e48fcd1605640b7603f899a2","sourceManifestHash":"0x151769afd5e71efcf1bad362473e77fb070311b103056baddcffd14c02436030","manifestHash":"0x6a1da63207a29511d34113b8743a83630e5c2bd093cd9bf3ed80b8d03682817f"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x6a1da63207a29511d34113b8743a83630e5c2bd093cd9bf3ed80b8d03682817f","factory":"0x98c5fd3e31e1f8acff28c3baa96492f81bbd9f22","factoryCodeHash":"0x05b2a83ee145e69282946770d72cc39b62c4f60afef794cafefbf80356412d4f","moduleCodeHash":"0x7830ae51675608ae97c10986c2a34f9e28d804572760a7b4e98e64eb8455ec0a","descriptorHash":"0xf3b591d0a918bc0b3139a5de3cbded34f743ff7cc3e038a6dc444b5ec8954d4b","releaseDigest":"0x021fdbe8077173437203460737e02fbcabd387b4cea78629473770739cdaa5d2","deploymentEvidenceDigest":"0x2ad6c837a9a1fbae6d846c9406ad2b0ef41756ffcf6fcd5b590cdd245dcb4a69","runtimeVerificationDigest":"0x90e3f96c7f5daedcba3e50cfa4b8a7b61d3fea5d399e7714164f3a963ee52e84"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0xacf2cf865ae18994bfd6d35c05431b73f04bf6ab6cc87ef65b735081567e7c9d","familyId":"0x1c7ac73f4eda2a9fb0d1055ff5ec9f4174d38a060711a74830314cc62ae51c22","requestDigest":"0x0509e8eabfd4b267b1c8fe005802bca073bd82ad9f11aede73cb9d7b249eb612","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"FeeStrategyV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol"},{"entrypoint":"LPRewardsFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"dipBps":{"binding":{"mode":"fixed","value":"0"},"bits":16,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"intervalSeconds":{"bits":32,"label":"Time between batches (seconds)","max":"604800","min":"30","type":"uint","unit":"seconds"},"maximumBatch":{"bits":128,"label":"Maximum amount per batch","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"minimumBudget":{"bits":128,"label":"Minimum fee balance","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"priceWindowSeconds":{"binding":{"mode":"fixed","value":"300"},"bits":32,"label":"Fixed setting","max":"300","min":"300","type":"uint"},"slippageBps":{"binding":{"mode":"fixed","value":"500"},"bits":16,"label":"Fixed setting","max":"500","min":"500","type":"uint"}},"required":["minimumBudget","maximumBatch","intervalSeconds","priceWindowSeconds","slippageBps","dipBps"],"type":"record"},"constraints":[{"id":"batch-size","left":{"ref":{"instance":"$self","path":["minimumBudget"]}},"message":"The maximum batch must cover the minimum fee balance.","operator":"lte","right":{"ref":{"instance":"$self","path":["maximumBatch"]}}}],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[{"configurationAbi":[],"id":"execute","selector":"0x61461954"}],"configurationAbi":[{"path":["minimumBudget"],"type":"uint128"},{"path":["maximumBatch"],"type":"uint128"},{"path":["intervalSeconds"],"type":"uint32"},{"path":["priceWindowSeconds"],"type":"uint32"},{"path":["slippageBps"],"type":"uint16"},{"path":["dipBps"],"type":"uint16"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"dipBps":"0","intervalSeconds":"300","priceWindowSeconds":"300","slippageBps":"500"},"descriptor":{"abiVersion":1,"actionGas":2000000,"afterGas":40000,"beforeGas":100000,"exclusiveGroup":"0x911d78ce0ed506399245762fcbaadbb569a82846838e077c9bc4ff2aff915df0","failOpenAfter":false,"moduleId":"0x911d78ce0ed506399245762fcbaadbb569a82846838e077c9bc4ff2aff915df0","phases":7,"resources":1},"descriptorHash":"0x0dd9723667351b8da5ed1ab5c2a5c55213b8337c956fc34f229fe6f22c24fb76","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"liquidity"}},"familySalt":"0xa23e64c0ffd9db22b22150889d20ca1792dafe4bdd12538d4a52770cfb31b2a5","format":"programmable.classic.source-package.v0.1","management":{"actions":[{"component":"module","description":"Execute one ready batch within the immutable budget and price limits.","entrypoint":"onAction","id":"execute","inputs":{"fields":{},"required":[],"type":"record"},"label":"Execute ready batch","role":"public"}],"reads":[{"component":"module","description":"Total quote fees used by this strategy in raw quote units.","entrypoint":"totalQuoteUsed","id":"spent","label":"Quote fees used"}],"summary":"Your assigned fees go to the liquidity currently active in this pool. This rewards existing liquidity providers; it does not create a new liquidity position. Automatic execution needs a running keeper. Existing trading rules can postpone a purchase."},"name":"LP rewards","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.before-swap@1","programmable.module-foundation.after-swap@1","programmable.module-foundation.action@1","programmable.module-foundation.own-quote-budget@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"03e62938158661298b2535324a64ea468c28df1d2e212ba756232867e08c2d95"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xd3ff62cee7ec1b63fca87905d59a7793126ba52dc3d2e5bde5fdfe33104c31e8","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x0509e8eabfd4b267b1c8fe005802bca073bd82ad9f11aede73cb9d7b249eb612","sourceManifestHash":"0x77fdee20a59787b29833280c8e305b2f38ce117e930c934f83f5a8cac1507bbe","manifestHash":"0x7075d429a66829be7aeae671e3d539da5fa5d95baa4564db03b048c29b5ffee7"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x7075d429a66829be7aeae671e3d539da5fa5d95baa4564db03b048c29b5ffee7","factory":"0xfcabc1261d8d8e03d11763f41c0250cbe4fc2862","factoryCodeHash":"0x436345b1d5661528a107ba00951a92da71173e33aa0155e2f62d7a4248486c19","moduleCodeHash":"0x7830ae51675608ae97c10986c2a34f9e28d804572760a7b4e98e64eb8455ec0a","descriptorHash":"0x0dd9723667351b8da5ed1ab5c2a5c55213b8337c956fc34f229fe6f22c24fb76","releaseDigest":"0xae917d32470087a7a0ac7b8666eaa73d248df83efb49740de5946834932ebc77","deploymentEvidenceDigest":"0xfeeffee5d5e841905bb86a8552e789ab0b2f303daba17b9be7d5fada1080748f","runtimeVerificationDigest":"0x7d5f3a94b7a071c86b3f7d23491dcbd62b137c20d019f836ed0e06091d6e5a55"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0x1829ad90e15af1e0a123c6985bb69af1918d6ae27ee083239cb8d7f969b2e842","familyId":"0xc42f497987e2e39de7f427dd8c3c0ce18f05a7d1469b8d1b0b98aff236893253","requestDigest":"0x3220af55df332605d399c7c3d0d9377e2ec6853bc53d24341aae0afb1e96abbc","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"FeeStrategyV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol"},{"entrypoint":"DipBuybackFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"dipBps":{"bits":16,"label":"Required price drop (%)","max":"5000","min":"1","type":"uint","unit":"programmable.percent-bps"},"intervalSeconds":{"bits":32,"label":"Time between batches (seconds)","max":"604800","min":"30","type":"uint","unit":"seconds"},"maximumBatch":{"bits":128,"label":"Maximum amount per batch","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"minimumBudget":{"bits":128,"label":"Minimum fee balance","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"priceWindowSeconds":{"bits":32,"label":"Price reference period (seconds)","max":"600","min":"300","type":"uint","unit":"seconds"},"slippageBps":{"bits":16,"label":"Maximum slippage (%)","max":"1000","min":"1","type":"uint","unit":"programmable.percent-bps"}},"required":["minimumBudget","maximumBatch","intervalSeconds","priceWindowSeconds","slippageBps","dipBps"],"type":"record"},"constraints":[{"id":"batch-size","left":{"ref":{"instance":"$self","path":["minimumBudget"]}},"message":"The maximum batch must cover the minimum fee balance.","operator":"lte","right":{"ref":{"instance":"$self","path":["maximumBatch"]}}}],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[{"configurationAbi":[],"id":"execute","selector":"0x61461954"}],"configurationAbi":[{"path":["minimumBudget"],"type":"uint128"},{"path":["maximumBatch"],"type":"uint128"},{"path":["intervalSeconds"],"type":"uint32"},{"path":["priceWindowSeconds"],"type":"uint32"},{"path":["slippageBps"],"type":"uint16"},{"path":["dipBps"],"type":"uint16"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"dipBps":"500","intervalSeconds":"300","priceWindowSeconds":"300","slippageBps":"500"},"descriptor":{"abiVersion":1,"actionGas":2000000,"afterGas":40000,"beforeGas":100000,"exclusiveGroup":"0xefc308cb3602775db7d104f0ea9bec0e2ee4e81bae9e0236f976d94d8a4cd4c2","failOpenAfter":false,"moduleId":"0xefc308cb3602775db7d104f0ea9bec0e2ee4e81bae9e0236f976d94d8a4cd4c2","phases":7,"resources":1},"descriptorHash":"0xe846ca2d2909f20b201e12101fc6400c06f53fa05575d48a78a95377ab0dbe26","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"supply"}},"familySalt":"0x625b595ab64bca791848ffb5fe671ab17e1b33c740dbb7a6f2f2814274d17e23","format":"programmable.classic.source-package.v0.1","management":{"actions":[{"component":"module","description":"Execute one ready batch within the immutable budget and price limits.","entrypoint":"onAction","id":"execute","inputs":{"fields":{},"required":[],"type":"record"},"label":"Execute ready batch","role":"public"}],"reads":[{"component":"module","description":"Total quote fees used by this strategy in raw quote units.","entrypoint":"totalQuoteUsed","id":"spent","label":"Quote fees used"}],"summary":"Your assigned fees buy and burn this token after its price falls below its recent time-weighted price by your chosen percentage. Automatic execution needs a running keeper. Existing trading rules can postpone a purchase."},"name":"Dip buyback","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.before-swap@1","programmable.module-foundation.after-swap@1","programmable.module-foundation.action@1","programmable.module-foundation.own-quote-budget@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"03e62938158661298b2535324a64ea468c28df1d2e212ba756232867e08c2d95"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x2aa02be3eea3fe6c81306d7806dcac59354ebb003b19e22b549375db718caf9b","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x3220af55df332605d399c7c3d0d9377e2ec6853bc53d24341aae0afb1e96abbc","sourceManifestHash":"0xcf7a82d8da11cc890c0f38bb364a57fcaf2fd7a92b3b544d02b2639eef257c31","manifestHash":"0xdd90f9451eec33a1cd673ecd420ff5b19e05dff3fb890fa8ff19b936f9e2bcc8"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xdd90f9451eec33a1cd673ecd420ff5b19e05dff3fb890fa8ff19b936f9e2bcc8","factory":"0xd168de00ab360d81fe6077b214f717451f2cb40d","factoryCodeHash":"0x8b718fcff2f2ba8803de61083e866accdccc684c2a2887622278d4a5de1f1778","moduleCodeHash":"0x7830ae51675608ae97c10986c2a34f9e28d804572760a7b4e98e64eb8455ec0a","descriptorHash":"0xe846ca2d2909f20b201e12101fc6400c06f53fa05575d48a78a95377ab0dbe26","releaseDigest":"0x37827f5d5e7b424d09435ffee592677f7f54b6eac373a2b0b17117ec7e484be7","deploymentEvidenceDigest":"0x959fb6e19aa13163ddaedf3dcfaa96ef09097323c4a15040523cb317ad09a3a6","runtimeVerificationDigest":"0xe6cad76e0ef0f12077c2ead4ce08eb515495abcc744425ec2590f15d14987b9d"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0xb970859a8711b659add12d7aea4a1c4d7478958a08f7a5b80038c1165ef5797c","familyId":"0x3d73474df54ff45c17d64f17358b02f1cb7b9ed482c247310c34b7d3647c50aa","requestDigest":"0xe93c0a3171732c6e72014849f1e46002517f70d7d24d00f371826512d55624bf","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"FeeStrategyV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol"},{"entrypoint":"BuybackBurnFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"dipBps":{"binding":{"mode":"fixed","value":"0"},"bits":16,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"intervalSeconds":{"bits":32,"label":"Time between batches (seconds)","max":"604800","min":"30","type":"uint","unit":"seconds"},"maximumBatch":{"bits":128,"label":"Maximum amount per batch","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"minimumBudget":{"bits":128,"label":"Minimum fee balance","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"priceWindowSeconds":{"bits":32,"label":"Price reference period (seconds)","max":"600","min":"300","type":"uint","unit":"seconds"},"slippageBps":{"bits":16,"label":"Maximum slippage (%)","max":"1000","min":"1","type":"uint","unit":"programmable.percent-bps"}},"required":["minimumBudget","maximumBatch","intervalSeconds","priceWindowSeconds","slippageBps","dipBps"],"type":"record"},"constraints":[{"id":"batch-size","left":{"ref":{"instance":"$self","path":["minimumBudget"]}},"message":"The maximum batch must cover the minimum fee balance.","operator":"lte","right":{"ref":{"instance":"$self","path":["maximumBatch"]}}}],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[{"configurationAbi":[],"id":"execute","selector":"0x61461954"}],"configurationAbi":[{"path":["minimumBudget"],"type":"uint128"},{"path":["maximumBatch"],"type":"uint128"},{"path":["intervalSeconds"],"type":"uint32"},{"path":["priceWindowSeconds"],"type":"uint32"},{"path":["slippageBps"],"type":"uint16"},{"path":["dipBps"],"type":"uint16"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"dipBps":"0","intervalSeconds":"300","priceWindowSeconds":"300","slippageBps":"500"},"descriptor":{"abiVersion":1,"actionGas":2000000,"afterGas":40000,"beforeGas":100000,"exclusiveGroup":"0x1ecbbafa9c274afec73f7320ad747986636bc3f28a70a8bfafa3fd91656fbba7","failOpenAfter":false,"moduleId":"0x1ecbbafa9c274afec73f7320ad747986636bc3f28a70a8bfafa3fd91656fbba7","phases":7,"resources":1},"descriptorHash":"0xa7f9a598ecba1aa9770a4fb9deebcc17849074536b5383c3f7c8d31a359d40c5","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"supply"}},"familySalt":"0x46bb03f1dce173c5644fa146eff80f34fe1dd173057a5537e7e4c09b4ec4106f","format":"programmable.classic.source-package.v0.1","management":{"actions":[{"component":"module","description":"Execute one ready batch within the immutable budget and price limits.","entrypoint":"onAction","id":"execute","inputs":{"fields":{},"required":[],"type":"record"},"label":"Execute ready batch","role":"public"}],"reads":[{"component":"module","description":"Total quote fees used by this strategy in raw quote units.","entrypoint":"totalQuoteUsed","id":"spent","label":"Quote fees used"}],"summary":"Your assigned fees buy this token from its pool and burn the purchased tokens. Purchases use a time-weighted price limit, a maximum batch and a waiting period. Automatic execution needs a running keeper. Existing trading rules can postpone a purchase."},"name":"Buyback and burn","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.before-swap@1","programmable.module-foundation.after-swap@1","programmable.module-foundation.action@1","programmable.module-foundation.own-quote-budget@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"03e62938158661298b2535324a64ea468c28df1d2e212ba756232867e08c2d95"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xe890d17ae7c3599e99b42489c7d8b6a4897e25dabb78e5e956a06f539d2db55a","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xe93c0a3171732c6e72014849f1e46002517f70d7d24d00f371826512d55624bf","sourceManifestHash":"0x28dcf34796f4ab79e724cac0bcd78974b316c824274142e6fd5055f713cfcaea","manifestHash":"0xe53e3b40cf2430c10cdb7c4824832077164c7b0f7d46a2d70275231d6d180424"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xe53e3b40cf2430c10cdb7c4824832077164c7b0f7d46a2d70275231d6d180424","factory":"0xe8433065c95e71bc1713a24b0cbd21cc038a63f3","factoryCodeHash":"0x3942de93456d4ebd2801a56ed7430d1e92fd72320c7b63f0f977ea0dd731901d","moduleCodeHash":"0x7830ae51675608ae97c10986c2a34f9e28d804572760a7b4e98e64eb8455ec0a","descriptorHash":"0xa7f9a598ecba1aa9770a4fb9deebcc17849074536b5383c3f7c8d31a359d40c5","releaseDigest":"0xadea44bc590ce6ff5e86750366a4626b7bf071779167c2032b7f57ba3ebc8584","deploymentEvidenceDigest":"0xd8adf52493382bebe0aab006e261f2db21456c224d7570dcd2ae84f2f2139414","runtimeVerificationDigest":"0x9af205bffc1573aefecb49f494651d188f3a775059353f174349d3888b6a8262"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0x421969c2469177891bb9695182b5da9dd8a0207a59809ccbf1d24ec58ed0ef9c","familyId":"0x52c214d6b94350223c19295bb9da5ac4f817f6f0d590fbb65d82fd531b878221","requestDigest":"0xf3af2823592ba2e04ec83cf288b40b1254ae66c712b63f5e11d057ad187ced41","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"LinkedPoolV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol"},{"entrypoint":"EntangledFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"baseCapBps":{"binding":{"mode":"fixed","value":"0"},"bits":16,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"maximumCapBps":{"binding":{"mode":"fixed","value":"0"},"bits":16,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"minimumCapBps":{"binding":{"mode":"fixed","value":"0"},"bits":16,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"referenceHost":{"help":"Use an existing compatible pool on this chain with the same quote token.","label":"Reference pool hook address","type":"address"},"unlockRiseBps":{"bits":16,"label":"Reference price increase to open buys (%)","max":"65535","min":"1","type":"uint","unit":"programmable.percent-bps"}},"required":["referenceHost","baseCapBps","minimumCapBps","maximumCapBps","unlockRiseBps"],"type":"record"},"constraints":[],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[],"configurationAbi":[{"path":["referenceHost"],"type":"address"},{"path":["baseCapBps"],"type":"uint16"},{"path":["minimumCapBps"],"type":"uint16"},{"path":["maximumCapBps"],"type":"uint16"},{"path":["unlockRiseBps"],"type":"uint16"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"baseCapBps":"0","maximumCapBps":"0","minimumCapBps":"0","unlockRiseBps":"1000"},"descriptor":{"abiVersion":1,"actionGas":0,"afterGas":100000,"beforeGas":100000,"exclusiveGroup":"0x89c273924817a5e034753ac77c818982ac4e9ea4b0d5237a5dc4fa9abce63c90","failOpenAfter":false,"moduleId":"0x89c273924817a5e034753ac77c818982ac4e9ea4b0d5237a5dc4fa9abce63c90","phases":3,"resources":0},"descriptorHash":"0xb505ee7f5c2872807096748443081871fef43fcdf09cd8d1267f533394fce5df","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"trading"}},"familySalt":"0xc31e4d0ad3ea572a6022f73e54893bf7104ed64223f35bab462f36b8290a1f6e","format":"programmable.classic.source-package.v0.1","management":{"actions":[],"reads":[],"summary":"Buys open when the reference pool's price rises by your chosen percentage from its price at launch. The first successful qualifying buy permanently opens buying. Omit your first buy at launch while the gate is closed. Sells remain available."},"name":"Entangled","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.before-swap@1","programmable.module-foundation.after-swap@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"72cdc48381844536c07c11f3674ad362b23bb4215d66b875bcd3623e05330501"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x439286bfe3d7d802935f4a5cd34aa42f598470c4b1d4a9acbcb67c098a60d95b","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xf3af2823592ba2e04ec83cf288b40b1254ae66c712b63f5e11d057ad187ced41","sourceManifestHash":"0xaae1d1d42ec78c8800e1f0de11f0254b9be8c599dece922c428c8e0841d6e6aa","manifestHash":"0x2c24f7b6c1a14f233905208393530bd087a75fcb3440f3ba865ff02b4891a961"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x2c24f7b6c1a14f233905208393530bd087a75fcb3440f3ba865ff02b4891a961","factory":"0x3b96f767882a77515a1fede7aa4bd67a291b57c7","factoryCodeHash":"0xa9d30ca200777098f11c6de79c18f673ca1a0543ae2857ff09a6388466bf8382","moduleCodeHash":"0x30adccfedb5b928ef94c105aff3d75f15e617d7eb06bbb1beaea68dc6da5eaf8","descriptorHash":"0xb505ee7f5c2872807096748443081871fef43fcdf09cd8d1267f533394fce5df","releaseDigest":"0x3fc1070f3cc8fb99438353144fe5803a6a8747652717245d6bd86a2b51b066e9","deploymentEvidenceDigest":"0x12efdcc5888b72af69027a4a6503a3e3e79bba17bbb99d85a01b893bd298ad06","runtimeVerificationDigest":"0xd7e60721ec846659ab0e5edf617ae637bf98587d3fd645c389589f556fd83299"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0x87bc522bc254a25adc5fdb385d2d5c275c1e27a5d2aaab712079f9cb88d31d32","familyId":"0xcbf4fff3adc8e3032d18831c9ab5e062750b929a4362b29d8334f44ec009a463","requestDigest":"0x6eae157824310c1d4931920372a153fcd7b5e1f6d56b04d0265880a45f4bfc19","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"LinkedPoolV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol"},{"entrypoint":"ReactivePairFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"baseCapBps":{"bits":16,"label":"Starting buy cap (% of supply)","max":"10000","min":"1","type":"uint","unit":"programmable.percent-bps"},"maximumCapBps":{"bits":16,"label":"Maximum buy cap (% of supply)","max":"10000","min":"1","type":"uint","unit":"programmable.percent-bps"},"minimumCapBps":{"bits":16,"label":"Minimum buy cap (% of supply)","max":"10000","min":"1","type":"uint","unit":"programmable.percent-bps"},"referenceHost":{"help":"Use an existing compatible pool on this chain with the same quote token.","label":"Reference pool hook address","type":"address"},"unlockRiseBps":{"binding":{"mode":"fixed","value":"0"},"bits":16,"label":"Fixed setting","max":"0","min":"0","type":"uint"}},"required":["referenceHost","baseCapBps","minimumCapBps","maximumCapBps","unlockRiseBps"],"type":"record"},"constraints":[{"id":"minimum-cap","left":{"ref":{"instance":"$self","path":["minimumCapBps"]}},"message":"The starting cap must reach the minimum.","operator":"lte","right":{"ref":{"instance":"$self","path":["baseCapBps"]}}},{"id":"maximum-cap","left":{"ref":{"instance":"$self","path":["baseCapBps"]}},"message":"The maximum cap must reach the starting cap.","operator":"lte","right":{"ref":{"instance":"$self","path":["maximumCapBps"]}}}],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[],"configurationAbi":[{"path":["referenceHost"],"type":"address"},{"path":["baseCapBps"],"type":"uint16"},{"path":["minimumCapBps"],"type":"uint16"},{"path":["maximumCapBps"],"type":"uint16"},{"path":["unlockRiseBps"],"type":"uint16"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"baseCapBps":"100","maximumCapBps":"500","minimumCapBps":"10","unlockRiseBps":"0"},"descriptor":{"abiVersion":1,"actionGas":0,"afterGas":100000,"beforeGas":100000,"exclusiveGroup":"0xb39746a0af7798c6d18c8efd5aa3df69d8303b13f858404fb67fb17262ca7ee0","failOpenAfter":false,"moduleId":"0xb39746a0af7798c6d18c8efd5aa3df69d8303b13f858404fb67fb17262ca7ee0","phases":3,"resources":0},"descriptorHash":"0x50fd46b594b18fc9f3396134aeed2464f77ed1332c87988a726b5b1af47056bf","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"trading"}},"familySalt":"0x2117a539a35e3b460f55b360cbbd53ea706421df06d57e6f248406a90bc29b45","format":"programmable.classic.source-package.v0.1","management":{"actions":[],"reads":[],"summary":"Your maximum tokens per buy follows another pool's price relative to its price at launch, within your chosen limits. The reference must use the same quote token on this chain. Sells remain available."},"name":"Reactive pair","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.before-swap@1","programmable.module-foundation.after-swap@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"72cdc48381844536c07c11f3674ad362b23bb4215d66b875bcd3623e05330501"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xf91e5ac4f2d6f1aec954b27e968f249101292dafb61dc58e20519cd042c65df5","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x6eae157824310c1d4931920372a153fcd7b5e1f6d56b04d0265880a45f4bfc19","sourceManifestHash":"0xf9ab5b71f11865e9a98f81841961e22cf2c56c7411822092e2bf114cd211e2ff","manifestHash":"0xf75cd2b956f1ff2e1dedbf640586bc757ecd03cf1fd451d9b6511e03e41bdf3d"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xf75cd2b956f1ff2e1dedbf640586bc757ecd03cf1fd451d9b6511e03e41bdf3d","factory":"0xdd91aed3a380eb9bd243a72887b711b0fa41f986","factoryCodeHash":"0xe847bde4004808faf25fd50e88b672559ca3cc61998d0054233e1f94a6972279","moduleCodeHash":"0x30adccfedb5b928ef94c105aff3d75f15e617d7eb06bbb1beaea68dc6da5eaf8","descriptorHash":"0x50fd46b594b18fc9f3396134aeed2464f77ed1332c87988a726b5b1af47056bf","releaseDigest":"0xfded7524402695bd69874e47587f090dc789fffc5c2c724186714d585038ede9","deploymentEvidenceDigest":"0xf1fdcb65a430933faa40d3472b8ee6883b21c6e316081bd466252ffe0e35a4eb","runtimeVerificationDigest":"0xc50121d444851b21605c3a66dc16d11b5381798670e3dabefc3fd4e33e1ecafe"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0x82fac663115f31db3068687af9ceac920ea1ebe78df0329c960d04e8cb7fd0e7","familyId":"0xc92d321998fa790d2fe84dab8e3b36ecd10776321e0f86afaa924c2b7eb85866","requestDigest":"0x7f577d6ea5d77afcf440bb5522e629db42058861b72d17f54fd96e218926dfca","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"PoolGamesV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol"},{"entrypoint":"PlagueFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"minimum":{"bits":128,"label":"Tokens required before buying","max":"1000000000000000000000000000","min":"1","type":"uint","unit":"programmable.token-amount"},"pauseSeconds":{"binding":{"mode":"fixed","value":"0"},"bits":32,"label":"Fixed setting","max":"0","min":"0","type":"uint"}},"required":["minimum","pauseSeconds"],"type":"record"},"constraints":[],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[],"configurationAbi":[{"path":["minimum"],"type":"uint128"},{"path":["pauseSeconds"],"type":"uint32"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"minimum":"1000000000000000000","pauseSeconds":"0"},"descriptor":{"abiVersion":1,"actionGas":0,"afterGas":110000,"beforeGas":110000,"exclusiveGroup":"0x3fb58bb477b4917ff89b6816a8b89ce2c837ed8725578863ef2411669a0c6a58","failOpenAfter":false,"moduleId":"0x3fb58bb477b4917ff89b6816a8b89ce2c837ed8725578863ef2411669a0c6a58","phases":3,"resources":0},"descriptorHash":"0x561869a5adc7f71519b9d3055daa14540fbb8f4529214a06a52d965aaeaf5a3b","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"trading"}},"familySalt":"0x5ec3ad3f65aa13b11797486ade9147c50a0a8ce199f5a0efb4ea6a8e9274b045","format":"programmable.classic.source-package.v0.1","management":{"actions":[],"reads":[],"summary":"A wallet must already hold your chosen minimum token amount before buying through this pool. The creator can make the first buys and send tokens to new holders. Selling stays available."},"name":"Plague","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.before-swap@1","programmable.module-foundation.after-swap@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"72cdc48381844536c07c11f3674ad362b23bb4215d66b875bcd3623e05330501"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x16fbc3ce10df6b6c851b99d23ea2f9f6b311261a760ac110f60981c6ab8f6184","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x7f577d6ea5d77afcf440bb5522e629db42058861b72d17f54fd96e218926dfca","sourceManifestHash":"0xb80348aa56b446a29e6b1908ab91f6a93b7ba26cc8f8b502a23a84191f629ec4","manifestHash":"0x0021e8378498beb3b766daa613271c6fcdd6795ec3bf12fae4d027cfc2ddb4a3"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x0021e8378498beb3b766daa613271c6fcdd6795ec3bf12fae4d027cfc2ddb4a3","factory":"0xd5daad1ca631e4f8b5b87348d2573eb7174d317f","factoryCodeHash":"0x2f0da00011e1ce999f81746a05a6d43583435f3840ecbb64e62cbd7a5b3d7bfa","moduleCodeHash":"0x2c33f95679115c4757c66dd94fbf62e1c6d151f9b60234f2fb7778095d0564de","descriptorHash":"0x561869a5adc7f71519b9d3055daa14540fbb8f4529214a06a52d965aaeaf5a3b","releaseDigest":"0x4fbb4423cadb0439b9717c05ba39575656f0489e4cd46553b624713105040b57","deploymentEvidenceDigest":"0x7c54efd58659f48088af59de06b77d9f2a8ecfaca1aa3cc82e9ba4641d22b9f1","runtimeVerificationDigest":"0x2d49c9b2768a0964e68c3a2f7e3c509b6e351146231d0ed8b5f7810d43785fe6"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0xf0a5ae7197afdedadcd8e3b45e39025f9fae76964c01da8995f7e9c9d338acfb","familyId":"0x7ff7abeef9bdc3cb9b4437d2253b83ff7d8be7c78f478865527d80f437a6b875","requestDigest":"0xfc59f72d16250cb3855520741e5659990d14707e52d93c3fc37d62b0ad3edb4a","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"PoolGamesV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol"},{"entrypoint":"HotPotatoFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"minimum":{"bits":128,"label":"Minimum qualifying buy","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"pauseSeconds":{"bits":32,"label":"Maximum sell pause (seconds)","max":"3600","min":"1","type":"uint","unit":"seconds"}},"required":["minimum","pauseSeconds"],"type":"record"},"constraints":[],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[],"configurationAbi":[{"path":["minimum"],"type":"uint128"},{"path":["pauseSeconds"],"type":"uint32"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"pauseSeconds":"60"},"descriptor":{"abiVersion":1,"actionGas":0,"afterGas":110000,"beforeGas":110000,"exclusiveGroup":"0x21cce57148fa2610a25949f971fb39b387e70110891b181c3e5e345464c0b847","failOpenAfter":false,"moduleId":"0x21cce57148fa2610a25949f971fb39b387e70110891b181c3e5e345464c0b847","phases":3,"resources":0},"descriptorHash":"0x4afe5c2e705db41e79cccdd84f6283bb67d3a246d55c7f1455cfd3a35de05fa2","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"trading"}},"familySalt":"0x47dd04ccfaf536fcbc9b5880a40a35d90074bc9fb2d05d9d2462a9c4057dc6a1","format":"programmable.classic.source-package.v0.1","management":{"actions":[],"reads":[],"summary":"The last qualifying buyer must wait for another qualifying buyer or for the timeout before selling through this pool. The timeout is always at most one hour. Ordinary transfers and other pools are not restricted."},"name":"Hot potato","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.before-swap@1","programmable.module-foundation.after-swap@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"72cdc48381844536c07c11f3674ad362b23bb4215d66b875bcd3623e05330501"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x061557694550a1323aebc36702e75bef93822bdec5de4be4dfc9c08c09279f8f","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xfc59f72d16250cb3855520741e5659990d14707e52d93c3fc37d62b0ad3edb4a","sourceManifestHash":"0x201c33c924021b5cb1127b619e3b410ae58cd2b840320f00f54866513ba5e673","manifestHash":"0x7902d4473cc52ae81ee41065d9f211dbff32461a9c9bda7f744c09671f1bddf6"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x7902d4473cc52ae81ee41065d9f211dbff32461a9c9bda7f744c09671f1bddf6","factory":"0x05fc469142b72f85e743aae5b0ebd8802244b90d","factoryCodeHash":"0xee49eab3e5d6a98cdc751bf975f7e99198573ffda0629be753af320a10e82cb4","moduleCodeHash":"0x2c33f95679115c4757c66dd94fbf62e1c6d151f9b60234f2fb7778095d0564de","descriptorHash":"0x4afe5c2e705db41e79cccdd84f6283bb67d3a246d55c7f1455cfd3a35de05fa2","releaseDigest":"0xab1c410d03c0299b48e79cdef21f18e6929ec361a1585ee40357a0a4b8103823","deploymentEvidenceDigest":"0xdd7f23804d250bb6611ce2aafc996af84aef16572b693f807631c7dd359f13b6","runtimeVerificationDigest":"0xc0521df8fc8f97d6f81c31f8e7a8550a05159f68fbca4e3b27b70fd965bf4598"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0xea490a0d8d898820c5b56b0c28de93f15ab3fb8803d0d6d36e3e13dcca909fab","familyId":"0x785efe436479df441453a6885cbbee6c86aa0ed1c67b21e3578993f0776c4e00","requestDigest":"0x4cb428855113fbd90c7442d4f192d10df06a2c620ea2992cd28fa64f94d4e318","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"BuyerRewardsV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol"},{"entrypoint":"KingOfTheHillFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"crownDecaySeconds":{"bits":32,"label":"Time until the challenge reaches its minimum (seconds)","max":"2592000","min":"60","type":"uint","unit":"seconds"},"everyN":{"binding":{"mode":"fixed","value":"0"},"bits":32,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"minimumBuy":{"bits":128,"label":"Minimum qualifying buy","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"rewardBps":{"binding":{"mode":"fixed","value":"0"},"bits":16,"label":"Fixed setting","max":"0","min":"0","type":"uint"}},"required":["minimumBuy","rewardBps","everyN","crownDecaySeconds"],"type":"record"},"constraints":[],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[{"configurationAbi":[{"path":["beneficiaries"],"type":"address[]"}],"id":"pay","selector":"0x6d37aeb7"}],"configurationAbi":[{"path":["minimumBuy"],"type":"uint128"},{"path":["rewardBps"],"type":"uint16"},{"path":["everyN"],"type":"uint32"},{"path":["crownDecaySeconds"],"type":"uint32"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"crownDecaySeconds":"3600","everyN":"0","rewardBps":"0"},"descriptor":{"abiVersion":1,"actionGas":1500000,"afterGas":240000,"beforeGas":0,"exclusiveGroup":"0xc2a2ae7d0030a4040c3f82a755378413a3e6517cc872f6df0310163339ad9295","failOpenAfter":false,"moduleId":"0xc2a2ae7d0030a4040c3f82a755378413a3e6517cc872f6df0310163339ad9295","phases":6,"resources":1},"descriptorHash":"0x44272a0adb9e27081fdf71cad94c9ef4a08f1714600fbb3d6967e82003accd3d","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"fees"}},"familySalt":"0x10a38b66860a51a48f9ba1a5a21303e64b1ebe64907a8d3e0e32abc7b9044a97","format":"programmable.classic.source-package.v0.1","management":{"actions":[{"component":"module","description":"Pay existing rewards to their recorded beneficiaries. The caller cannot redirect a payment.","entrypoint":"onAction","id":"pay","inputs":{"fields":{"beneficiaries":{"items":{"type":"address"},"label":"Beneficiary addresses","maxItems":16,"minItems":1,"type":"array"}},"required":["beneficiaries"],"type":"record"},"label":"Pay recorded rewards","role":"public"}],"reads":[{"component":"module","description":"Total rewards already paid in raw quote units.","entrypoint":"totalPaid","id":"paid","label":"Rewards paid"}],"summary":"A buy above the current challenge amount takes the crown and starts earning assigned fees. The challenge amount falls over time. A sale through the supported router gives up the crown. Other transfers are not tracked. Rewards are paid to the recorded buyer. A keeper can pay them automatically; anyone can also trigger payment. Internal module buys do not participate."},"name":"King of the Hill","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.after-swap@1","programmable.module-foundation.action@1","programmable.module-foundation.own-quote-budget@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"72cdc48381844536c07c11f3674ad362b23bb4215d66b875bcd3623e05330501"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x95767b52929f2aa48fb4b0682c49f8feb0d8b5a2f16661d5e01053d8ea31a10b","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x4cb428855113fbd90c7442d4f192d10df06a2c620ea2992cd28fa64f94d4e318","sourceManifestHash":"0x1aca9cc58319bad6857b664183a58f23c2ad7180e1775af8dad4502efdb92f02","manifestHash":"0xcbc8d0d9635c26e47c395e7c988e956a1814e431a01e87a4846bfc4980e27b37"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xcbc8d0d9635c26e47c395e7c988e956a1814e431a01e87a4846bfc4980e27b37","factory":"0x62398f8030c18a519a4b329ed49d72d611fa8cbf","factoryCodeHash":"0x2cb3923d98496d11738223cfbed45706241290709af0b27d5ce4d007530615e4","moduleCodeHash":"0xebe528fcfe24d83785805e93727d23ebd90bb6cb7b6202a24778cfca17cbb8ea","descriptorHash":"0x44272a0adb9e27081fdf71cad94c9ef4a08f1714600fbb3d6967e82003accd3d","releaseDigest":"0x514b70edf62efff1fb997994d6770a821f552968a5f5952d1cd6d1e940dc4a14","deploymentEvidenceDigest":"0xcafea2b2fcb44698493e1c52c2f5a21ad77bd710914fa5ca2dee7a21ec977748","runtimeVerificationDigest":"0x5165629221fb0bb2b65ca9f5a98864147921e3acb620711c3a98960a70602509"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0x9a82a31b6ff7720dddc1cee0bc3158a9be3254d6d0194e4c2d7a3bd26fb38da9","familyId":"0x9963640d6d30b7d426484b0ddc9937502bb908f3b7a29801d5850c45e235b479","requestDigest":"0xa3f3c383bb10ab3d580638f081e3a40fe9a0b1adb9ee6e883a5be3d12f9f7245","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"BuyerRewardsV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol"},{"entrypoint":"NthBuyPotFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"crownDecaySeconds":{"binding":{"mode":"fixed","value":"0"},"bits":32,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"everyN":{"bits":32,"label":"Winning buy number","max":"1000000","min":"2","type":"uint"},"minimumBuy":{"bits":128,"label":"Minimum qualifying buy","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"rewardBps":{"binding":{"mode":"fixed","value":"0"},"bits":16,"label":"Fixed setting","max":"0","min":"0","type":"uint"}},"required":["minimumBuy","rewardBps","everyN","crownDecaySeconds"],"type":"record"},"constraints":[],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[{"configurationAbi":[{"path":["beneficiaries"],"type":"address[]"}],"id":"pay","selector":"0x6d37aeb7"}],"configurationAbi":[{"path":["minimumBuy"],"type":"uint128"},{"path":["rewardBps"],"type":"uint16"},{"path":["everyN"],"type":"uint32"},{"path":["crownDecaySeconds"],"type":"uint32"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"crownDecaySeconds":"0","everyN":"10","rewardBps":"0"},"descriptor":{"abiVersion":1,"actionGas":1500000,"afterGas":240000,"beforeGas":0,"exclusiveGroup":"0xda5d1d7a1bd9a42f1637b1412abfc7904ab1f40190a38342b0c71f3453dddd20","failOpenAfter":false,"moduleId":"0xda5d1d7a1bd9a42f1637b1412abfc7904ab1f40190a38342b0c71f3453dddd20","phases":6,"resources":1},"descriptorHash":"0x9cadb0fc54019704854592ed7dca181eb07414878fe6f02942bddf4d673a15a9","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"fees"}},"familySalt":"0x64539d9bb1ff77d25618aced2f32cdbd9da0e81cc1b279d9750edb273fa609e5","format":"programmable.classic.source-package.v0.1","management":{"actions":[{"component":"module","description":"Pay existing rewards to their recorded beneficiaries. The caller cannot redirect a payment.","entrypoint":"onAction","id":"pay","inputs":{"fields":{"beneficiaries":{"items":{"type":"address"},"label":"Beneficiary addresses","maxItems":16,"minItems":1,"type":"array"}},"required":["beneficiaries"],"type":"record"},"label":"Pay recorded rewards","role":"public"}],"reads":[{"component":"module","description":"Total rewards already paid in raw quote units.","entrypoint":"totalPaid","id":"paid","label":"Rewards paid"}],"summary":"Every Nth qualifying buy wins the accumulated fee pot. At most one buy qualifies per block. The counter is public and predictable. Rewards are paid to the recorded buyer. A keeper can pay them automatically; anyone can also trigger payment. Internal module buys do not participate."},"name":"Nth-buy pot","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.after-swap@1","programmable.module-foundation.action@1","programmable.module-foundation.own-quote-budget@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"72cdc48381844536c07c11f3674ad362b23bb4215d66b875bcd3623e05330501"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xebcdd9e605afd3904447d3c7860b0d8466d33a7b2b4d2d1010157cd01b8bd907","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xa3f3c383bb10ab3d580638f081e3a40fe9a0b1adb9ee6e883a5be3d12f9f7245","sourceManifestHash":"0xc2aa35206fbe43e25a29e841c3ca7225fddd615c393cb37c093c5711ce7375e9","manifestHash":"0x14cd9a819db856e1358310b2b2f1d0d319d8fb788934a77c3aa7aa16415ff14a"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x14cd9a819db856e1358310b2b2f1d0d319d8fb788934a77c3aa7aa16415ff14a","factory":"0xa22c7ab955c88b1aa1c6a6f0ca17845601fcd76b","factoryCodeHash":"0x14e4f4d43e936db71a70e34711a8a926e21d579fb1b3e1ac6fc07d06939be4ff","moduleCodeHash":"0xebe528fcfe24d83785805e93727d23ebd90bb6cb7b6202a24778cfca17cbb8ea","descriptorHash":"0x9cadb0fc54019704854592ed7dca181eb07414878fe6f02942bddf4d673a15a9","releaseDigest":"0xda98f21b362da3a3e4d324c7516db5275f48667279544f1a2a81a34c1866c883","deploymentEvidenceDigest":"0x6d6c68aad65c96692b587dda9229a5666c72de0dd3ed348016f701ced40cf154","runtimeVerificationDigest":"0xc722c67a6e0feaf22f6eacab6534dc876d36708b3a79e8a9c44a94c75a31a1b1"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0x2568f5453b74db3c14a335880818a5f2e3fdb22e1a6fdb245ecf05a9695edc96","familyId":"0x914ae0cc48943d4f51c8d84ff42f45fba4a4bcf6d717a5196a0c88bbf298298b","requestDigest":"0xd84e250979c667fd323b08cd3d88461084e4f8fc0db0aa75e86249ce0c989be3","sourceDescriptor":{"author":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","components":[{"entrypoint":"BuyerRewardsV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol"},{"entrypoint":"BuyerRewardsFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol"}],"configuration":{"fields":{"crownDecaySeconds":{"binding":{"mode":"fixed","value":"0"},"bits":32,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"everyN":{"binding":{"mode":"fixed","value":"0"},"bits":32,"label":"Fixed setting","max":"0","min":"0","type":"uint"},"minimumBuy":{"bits":128,"label":"Minimum qualifying buy","max":"170141183460469231731687303715884105727","min":"1","type":"uint","unit":"programmable.quote-amount"},"rewardBps":{"bits":16,"label":"Reward as a share of the buy (%)","max":"1000","min":"1","type":"uint","unit":"programmable.percent-bps"}},"required":["minimumBuy","rewardBps","everyN","crownDecaySeconds"],"type":"record"},"constraints":[],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[{"configurationAbi":[{"path":["beneficiaries"],"type":"address[]"}],"id":"pay","selector":"0x6d37aeb7"}],"configurationAbi":[{"path":["minimumBuy"],"type":"uint128"},{"path":["rewardBps"],"type":"uint16"},{"path":["everyN"],"type":"uint32"},{"path":["crownDecaySeconds"],"type":"uint32"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"crownDecaySeconds":"0","everyN":"0","rewardBps":"100"},"descriptor":{"abiVersion":1,"actionGas":1500000,"afterGas":240000,"beforeGas":0,"exclusiveGroup":"0x92c258723ef93e62a55f15f30f32568ec76a60af6aead6e6d760a22e13cb2b6b","failOpenAfter":false,"moduleId":"0x92c258723ef93e62a55f15f30f32568ec76a60af6aead6e6d760a22e13cb2b6b","phases":6,"resources":1},"descriptorHash":"0x9b4e9a71a99ed4b27cf49c51435718de3e94bad25e8aae2b456a8885fd170966","hostAdapterId":"programmable.module-foundation.host@1"},"programmable.module-studio@1":{"category":"fees"}},"familySalt":"0xd3456783fe02edbb0abd8452c94fac685deb002cdd260413c638a7b50be36f00","format":"programmable.classic.source-package.v0.1","management":{"actions":[{"component":"module","description":"Pay existing rewards to their recorded beneficiaries. The caller cannot redirect a payment.","entrypoint":"onAction","id":"pay","inputs":{"fields":{"beneficiaries":{"items":{"type":"address"},"label":"Beneficiary addresses","maxItems":16,"minItems":1,"type":"array"}},"required":["beneficiaries"],"type":"record"},"label":"Pay recorded rewards","role":"public"}],"reads":[{"component":"module","description":"Total rewards already paid in raw quote units.","entrypoint":"totalPaid","id":"paid","label":"Rewards paid"}],"summary":"Qualifying buyers earn rewards in the quote token. Each reward is capped by fees already assigned to this module. Rewards are paid to the recorded buyer. A keeper can pay them automatically; anyone can also trigger payment. Internal module buys do not participate."},"name":"Buyer rewards","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.after-swap@1","programmable.module-foundation.action@1","programmable.module-foundation.own-quote-budget@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/modules/economics/EconomicModuleFactoriesV1.sol","sha256":"d234beef13c9ec90b26e45d18704d02895f07c516673948a0da7061258dd175a"},{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/economics/SharedModuleBaseV1.sol","sha256":"258b330898e2456b48ec555eb419718ffeabe73f414b72f87ca96f368bfcf92a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","sha256":"30edf7394bab78d48b7db3a059248e1ea7c2c77d2ec0e37a13bb91415aafbe5a"},{"path":"contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","sha256":"ac1fd9fa99b194a8db8dfa9ae8e3ff44feaa8f16668241fd2b66ae8b47d7c082"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol","sha256":"54f427f63724d9760211dfa9e0cc5d79d86c0724becd81f8e638e2e27b0e2669"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol","sha256":"cb42f0b4d269ba8ef2629c176a7f99bf4fb50837c92f45596b54822b26e3df4b"},{"path":"contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","sha256":"49abfb8fa26e3f1715fe05948a96e3762b805bd4a77d103eb40ba96b1acfa144"},{"path":"contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","sha256":"7c5c3f98ab876991e7dd34b84d41137e836306eb9f36f6386a631f5be3f5d6d4"},{"path":"contracts/src/module-foundation/modules/economics/FeeStrategyV1.sol","sha256":"72cdc48381844536c07c11f3674ad362b23bb4215d66b875bcd3623e05330501"},{"path":"contracts/lib/v4-core/src/interfaces/IPoolManager.sol","sha256":"a98405333567e4ab344489728014795721cf0071c151536377d2fcc986e0600c"},{"path":"contracts/lib/v4-core/src/types/Currency.sol","sha256":"ba6726fd24fbc66848208dfbb2899116c10729c505e6e5552316ac2444f1dfc3"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC20Minimal.sol","sha256":"5e966a2d22b3b234a56af4b17e36bf7be90f9b29b1ddb6a15bfefc0b6dab4282"},{"path":"contracts/lib/v4-core/src/libraries/CustomRevert.sol","sha256":"9d3dbe6b742cb1ac30f57df89d879ade9649389de1165fc637114bd062d39fca"},{"path":"contracts/lib/v4-core/src/types/PoolKey.sol","sha256":"99e1afe285b5c614ebc9586ab5196db9d24a63fd924a449f5d99f490a6a6d6a9"},{"path":"contracts/lib/v4-core/src/interfaces/IHooks.sol","sha256":"6eb35c9c598eb932e963219f1ff180748bc4c30ac6a02d924893b3c29abb1d73"},{"path":"contracts/lib/v4-core/src/types/BalanceDelta.sol","sha256":"320d9c13dec135c3903729e66d3a1040fe86d537a7ee53728915012ca183af32"},{"path":"contracts/lib/v4-core/src/libraries/SafeCast.sol","sha256":"c1a815a41607be5b4c86ca588a951f368156da8ee21bdfc18b5d51b58a0f27be"},{"path":"contracts/lib/v4-core/src/types/PoolOperation.sol","sha256":"cf72ad0c3e5e91662029e862acd841fabce8753040b0d4e802dee64ef1157232"},{"path":"contracts/lib/v4-core/src/types/BeforeSwapDelta.sol","sha256":"6aee06f1553e879f5909e8f4c0eac26ec23dd4821a7e56e4d5077db39a227e12"},{"path":"contracts/lib/v4-core/src/types/PoolId.sol","sha256":"548424ac50ad58212545da70207283fb8990731578c115c85d5acbcb0e1d3c9f"},{"path":"contracts/lib/v4-core/src/interfaces/external/IERC6909Claims.sol","sha256":"1cd65496c829036bc6aee67bc71363ab5fb6989c65e793087d0e1e2379f7d7d8"},{"path":"contracts/lib/v4-core/src/interfaces/IProtocolFees.sol","sha256":"807d68adea106ec2aa51a8009155de09ebfe09e1ee7053d5a5ae448d7e840654"},{"path":"contracts/lib/v4-core/src/interfaces/IExtsload.sol","sha256":"9421ef4ba198d94058cd9a4c9fd2d663c61fc682f7dafa449a873456853f0025"},{"path":"contracts/lib/v4-core/src/interfaces/IExttload.sol","sha256":"c21643d2c7f48d2d2407438a64a3ff0f376324cf6a0c62608977713652308c9e"},{"path":"contracts/lib/v4-core/src/interfaces/callback/IUnlockCallback.sol","sha256":"2e4a514730654da2e08a82eff5b3eabae12dc1c6198951396e1d466d4c0e223e"},{"path":"contracts/lib/v4-core/src/libraries/StateLibrary.sol","sha256":"eebdbc1b6e431072ce5521b9e1b603d43831e3b6e062743e6665e070d5cf8a1a"},{"path":"contracts/lib/v4-core/src/libraries/Position.sol","sha256":"3dc4e2ad1564fa94eddf3ff06ce9ac592c9d578ea64ca194050382da454c8fcb"},{"path":"contracts/lib/v4-core/src/libraries/FullMath.sol","sha256":"a9607255a6fd604d9c92f6b7416811c38b9d86e5dfdb0c345a494ebd35f7a4a3"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint128.sol","sha256":"1ca2f55160697b73bd66fd27c8724d79a57108121ce1e8a0ab8b79f38bb58fbb"},{"path":"contracts/lib/v4-core/src/libraries/LiquidityMath.sol","sha256":"67a39e58732340af4870342ba9230691f35501d89ed8725ca1b338deaa0eb26a"},{"path":"contracts/lib/v4-core/src/libraries/TickMath.sol","sha256":"272d4f6d3ff9ae33596ebcdb84a71a3c2d4542ae8fb5c88ddf1aca8043f5d06b"},{"path":"contracts/lib/v4-core/src/libraries/BitMath.sol","sha256":"e8a45eb3d57f9427fc47bbb2543c1a6a5f394113b378123ac7ca9f113a7502b4"},{"path":"contracts/lib/v4-periphery/src/libraries/LiquidityAmounts.sol","sha256":"dbfbef7aed94a6a56885124f0802b42adf7ee7bdd658f11fed40ffbb93fe6ba5"},{"path":"contracts/lib/v4-core/src/libraries/FixedPoint96.sol","sha256":"66ee26d4fb3ac639124bdfa27d3256d196970997fa127c09e9bf7154e30d4590"},{"path":"contracts/lib/v4-periphery/src/libraries/Actions.sol","sha256":"404b842f30a05783b20eb37b20cc86e7a0df2730f6a7399229b46ae77f63e63a"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IV4Router.sol","sha256":"82048fb6a2b92a52aa37c516bc1d25dc31c062749016701345ee8e36b02306d9"},{"path":"contracts/lib/v4-periphery-v211/src/libraries/PathKey.sol","sha256":"0c00bae5a64829334a0b5d5541807faf7d18dff5a667cd74cadf9effaf5f0885"},{"path":"contracts/lib/v4-periphery-v211/src/interfaces/IImmutableState.sol","sha256":"86f06a1f388f91ee0185495cb5d2912d564f73fabb163b3767e9c292c5069276"},{"path":"contracts/lib/permit2/src/interfaces/IAllowanceTransfer.sol","sha256":"a31c712c5cc8d171818a4225c09011f9ba86b2d5edf6045ac812bab93b6bbb87"},{"path":"contracts/lib/permit2/src/interfaces/IEIP712.sol","sha256":"e386407da496dbe874c10a81801c55744fb2922a51389a51c79001422e81e0cd"},{"path":"contracts/src/module-foundation/modules/economics/PoolPriceWindowV1.sol","sha256":"7cec7b6ea9d0e9a02f847c57f9a9c3d606b2f89d2085b38c45f94bbcf189f43c"},{"path":"contracts/src/module-foundation/modules/economics/BuyerRewardsV1.sol","sha256":"b7e33f87cc417c48f7fe76c78dd1214317de5a7ff1485c9b7af02e8f6651360f"},{"path":"contracts/src/module-foundation/modules/economics/PoolGamesV1.sol","sha256":"62c60efad7bb71d4b15cfe35248ab177df40c5fbe2582d660a89e28c0b76d7a8"},{"path":"contracts/src/module-foundation/modules/economics/LinkedPoolV1.sol","sha256":"e5fd119783025538dd859d2c9c9532213377f2fcd50a9a0c7ca63da03f900fb2"},{"path":"contracts/remappings.txt","sha256":"885b66a13264dccdfa2b32fcfca4f20247bbd617027d3807b5cb079be6dbbbe2"},{"path":"README.md","sha256":"c4307989ba5f6de2841b07a78dec76e41185a5444b12d8ebddb29f27d8efd452"}]},"version":"1.0.0"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xed3c33806f0738fac580a96e54b30f839b3206553aeb9285d1bffbcf0aad6db9","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xd84e250979c667fd323b08cd3d88461084e4f8fc0db0aa75e86249ce0c989be3","sourceManifestHash":"0x65a8d12f6ae21dba40cf8b12556a363c388d15042bf1896700943a4f2c10c40b","manifestHash":"0x961858dfd3a04a1933d5bf93f86b56bf4328f3f4a6e626f8bf881c84fc1f26a9"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x961858dfd3a04a1933d5bf93f86b56bf4328f3f4a6e626f8bf881c84fc1f26a9","factory":"0x67b12b11efdad3c4091722300e164f636565af68","factoryCodeHash":"0xfb552bb7cee75558038764a4e50ff97f21e12ae1f3570fc18fb4f4f113934332","moduleCodeHash":"0xebe528fcfe24d83785805e93727d23ebd90bb6cb7b6202a24778cfca17cbb8ea","descriptorHash":"0x9b4e9a71a99ed4b27cf49c51435718de3e94bad25e8aae2b456a8885fd170966","releaseDigest":"0xec96c9660ea9dd235115f4be1da8b6e6050ddbb4812c6d5ac7ba9f9ab2e21ee7","deploymentEvidenceDigest":"0x2a648fdef077e81a0d75f23cebc3313bbd21f3e19446ab27b97f46edb4249533","runtimeVerificationDigest":"0x54d0764503aaf3140aed5e225bb9f6b93c3f95f473188e69b4c9f1835463676c"}},{"manifest":{"schemaVersion":"programmable.module-foundation.package.v1","packageId":"0xd15566640c85edef5dd30a5523d7436ad5923d1a06ab03dd9ce883a97a9881c0","familyId":"0x28977d72efb6a1669e996ee596c9d5894e7529df94759077e9fd0a6340098457","requestDigest":"0xa4f01a480554a0ce47ded84807987741b7d3489f29afedbd16cde93f990a3a55","sourceDescriptor":{"author":"0x0dBE4F551b318fbba7E7A1975C3A62b9392b8595","components":[{"entrypoint":"LaunchWalletCapV1","id":"module","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/launch-wallet-cap/LaunchWalletCapV1.sol"},{"entrypoint":"LaunchWalletCapFactoryV1","id":"factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/launch-wallet-cap/LaunchWalletCapFactoryV1.sol"},{"entrypoint":"LaunchWalletCapEthereumFactoryV1","id":"ethereum-factory","runtime":"programmable.module-foundation.solidity@1","sourcePath":"contracts/src/module-foundation/modules/launch-wallet-cap/LaunchWalletCapEthereumFactoryV1.sol"}],"configuration":{"fields":{"durationMinutes":{"bits":32,"help":"Measured from launch. Buys use the official Uniswap router during this time. Afterward, buys are unrestricted.","label":"Protection duration (minutes)","max":"4294967295","min":"1","type":"uint","unit":"minutes"},"supplyLimitBps":{"bits":16,"help":"All purchases by the same initiating wallet count together. Selling does not reset the allowance. The creator's first buy counts too.","label":"Supply limit per wallet (%)","max":"10000","min":"1","type":"uint","unit":"programmable.percent-bps"}},"required":["supplyLimitBps","durationMinutes"],"type":"record"},"constraints":[],"documentation":"README.md","extensions":{"programmable.module-foundation@1":{"actions":[],"configurationAbi":[{"path":["supplyLimitBps"],"type":"uint16"},{"path":["durationMinutes"],"type":"uint32"}],"configurationCodec":"programmable.foundation-abi@1","defaults":{"durationMinutes":"3","supplyLimitBps":"200"},"descriptor":{"abiVersion":1,"actionGas":0,"afterGas":100000,"beforeGas":100000,"exclusiveGroup":"0xfc666d16215b05fa4e4a8432f9560c568e62bee7bb56e0aa504e6655657aaa58","failOpenAfter":false,"moduleId":"0x8c7238120a5af8c2b4fa09882682538dabe949dd2343ab6f08190f0f0f8abe6d","phases":3,"resources":0},"descriptorHash":"0x1bd5aa9a4e6ca7771b3946b1ad429fdc7d301f5774e341b9ccf53e1cdeb1ac75","hostAdapterId":"programmable.module-foundation.host@1"}},"familySalt":"0xfc666d16215b05fa4e4a8432f9560c568e62bee7bb56e0aa504e6655657aaa58","format":"programmable.classic.source-package.v0.1","management":{"actions":[],"reads":[{"component":"module","description":"Fixed token amount allowed across all buys during the window.","entrypoint":"walletTokenLimit","id":"wallet-limit","label":"Wallet token limit"},{"component":"module","description":"Timestamp when buys become unrestricted automatically.","entrypoint":"protectionEndsAt","id":"protection-end","label":"Protection end"}],"summary":"Optional cumulative buy cap per initiating wallet for your chosen launch duration. Percentage and minutes are set at launch. Remove this module for unrestricted buys."},"name":"Initial wallet buy limit","ports":{"inputs":{},"outputs":{}},"requiresHost":["programmable.module-foundation.host@1","programmable.foundation-abi@1","programmable.module-foundation.before-swap@1","programmable.module-foundation.after-swap@1"],"rewardWallet":"0xD88539d3c4C460136a733A3Fd60cf6BF269079da","source":{"files":[{"path":"contracts/src/module-foundation/FoundationTypesV1.sol","sha256":"5d1c6b6f685bea5bc8dd67a8be56375d3c744b00b41d6b7dca0cae7a59f26ddd"},{"path":"contracts/src/module-foundation/IFoundationModuleV1.sol","sha256":"ccf8c6dfe5fb5882f93ecf0b4e5d608592c8d598fe723b18646d280081526afc"},{"path":"contracts/src/module-foundation/modules/launch-wallet-cap/LaunchWalletCapV1.sol","sha256":"274e14b3d661dfff633f1c3366f35a5b19ef64bd0726a6779b52e62058306095"},{"path":"contracts/src/module-foundation/modules/launch-wallet-cap/LaunchWalletCapFactoryV1.sol","sha256":"1785884c3f148a9df3de7103e162e13def8b520160bd6cc45045c3bcc2496515"},{"path":"README.md","sha256":"500e186ef0d94fa86b59f39cd33ef14a534d8cf253ebe6b8c4f2b58d02b7c61a"},{"path":"contracts/src/module-foundation/modules/launch-wallet-cap/LaunchWalletCapEthereumFactoryV1.sol","sha256":"8fd9450df801b603e00914983d54bfe2fd2d61b19a5634d2482f4b9dd06ae6d2"}]},"version":"1.0.2"}},"review":{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xaffec20545161afab138a3b23d8bf059d519be05a8b6f03944c3bbcac9d6830c","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xa4f01a480554a0ce47ded84807987741b7d3489f29afedbd16cde93f990a3a55","sourceManifestHash":"0x6aa0429963626309c6ab1a41e89ce76e3fab8d5e1f1676fe43758f035ba1e291","manifestHash":"0xbe2702afa39d2fdb4c77ad8f34c22a7961f8e91a8e9d845523959ae1d81e504a"},"release":{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xbe2702afa39d2fdb4c77ad8f34c22a7961f8e91a8e9d845523959ae1d81e504a","factory":"0x917f83d675a02d24b70184ab54ac08eae87b4710","factoryCodeHash":"0x1f982b688febda0b9152d459addbee907d9c5639c3e075ca8e3f071767ee8093","moduleCodeHash":"0x5be365d8785b43fc8e47d75b0006d59cca48ab93ebf67c91d3aa9414066564f6","descriptorHash":"0x1bd5aa9a4e6ca7771b3946b1ad429fdc7d301f5774e341b9ccf53e1cdeb1ac75","releaseDigest":"0x926d51294c7feab31dc1ac79d09a1d858595245dd5292fa4e624a5be332c81c0","deploymentEvidenceDigest":"0xe9e0394248532c7cf2a2dc125fa779a60402c79dc9676db797f8d5dc29408873","runtimeVerificationDigest":"0x58fb645bf2f73273661dc6d7b0ce6cf7a363ba0622cfed03904ea41177233bc2"}}],"schemaVersion":"programmable.module-foundation.catalog.v1"},"authority":{"admissions":[{"submissionId":"af4bc6bd-f455-4c9a-a971-a4b447c1d5bd","requestDigest":"0x12a4c9410a78e3b96a241211718878daf0feb045281194e514d9e6b60619eece","sourceManifestHash":"0xcdc93e79c7584f804fd274efc572ce7bb1a9a893665cfe09714f239747befbfd","manifestHash":"0x25b4aae769f7441c3b632e2f2f78701c4bc41c44deffe44144a46efc7f99909f","artifactDigest":"0x7b56e84b04d44c8eece978449b82b1bd4ee450f2275aa8963d3126d6f891355b","decisionDigest":"0x9ffb20b57790adaec940e102c369c8a643ec0a457dc3c6b032af207cce461c2f","reviewer":"0x79879fe6f00c0986ca521ea6f5b276b5e28b1b9c","reviewerPolicyDigest":"0xeb19fe3e031d51624441937cd5ab7eb813f068fb1a7921f8d5ca0dba634fcb5a"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x1161da8f17a3f6947eb59c65e2e3c87dce68e54287e86e2d64d8f74b08d827bc","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x1d8855eb9acd0462ad90faf26ba8d976e49efc07e48fcd1605640b7603f899a2","sourceManifestHash":"0x151769afd5e71efcf1bad362473e77fb070311b103056baddcffd14c02436030","manifestHash":"0x6a1da63207a29511d34113b8743a83630e5c2bd093cd9bf3ed80b8d03682817f"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xd3ff62cee7ec1b63fca87905d59a7793126ba52dc3d2e5bde5fdfe33104c31e8","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x0509e8eabfd4b267b1c8fe005802bca073bd82ad9f11aede73cb9d7b249eb612","sourceManifestHash":"0x77fdee20a59787b29833280c8e305b2f38ce117e930c934f83f5a8cac1507bbe","manifestHash":"0x7075d429a66829be7aeae671e3d539da5fa5d95baa4564db03b048c29b5ffee7"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x2aa02be3eea3fe6c81306d7806dcac59354ebb003b19e22b549375db718caf9b","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x3220af55df332605d399c7c3d0d9377e2ec6853bc53d24341aae0afb1e96abbc","sourceManifestHash":"0xcf7a82d8da11cc890c0f38bb364a57fcaf2fd7a92b3b544d02b2639eef257c31","manifestHash":"0xdd90f9451eec33a1cd673ecd420ff5b19e05dff3fb890fa8ff19b936f9e2bcc8"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xe890d17ae7c3599e99b42489c7d8b6a4897e25dabb78e5e956a06f539d2db55a","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xe93c0a3171732c6e72014849f1e46002517f70d7d24d00f371826512d55624bf","sourceManifestHash":"0x28dcf34796f4ab79e724cac0bcd78974b316c824274142e6fd5055f713cfcaea","manifestHash":"0xe53e3b40cf2430c10cdb7c4824832077164c7b0f7d46a2d70275231d6d180424"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x439286bfe3d7d802935f4a5cd34aa42f598470c4b1d4a9acbcb67c098a60d95b","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xf3af2823592ba2e04ec83cf288b40b1254ae66c712b63f5e11d057ad187ced41","sourceManifestHash":"0xaae1d1d42ec78c8800e1f0de11f0254b9be8c599dece922c428c8e0841d6e6aa","manifestHash":"0x2c24f7b6c1a14f233905208393530bd087a75fcb3440f3ba865ff02b4891a961"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xf91e5ac4f2d6f1aec954b27e968f249101292dafb61dc58e20519cd042c65df5","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x6eae157824310c1d4931920372a153fcd7b5e1f6d56b04d0265880a45f4bfc19","sourceManifestHash":"0xf9ab5b71f11865e9a98f81841961e22cf2c56c7411822092e2bf114cd211e2ff","manifestHash":"0xf75cd2b956f1ff2e1dedbf640586bc757ecd03cf1fd451d9b6511e03e41bdf3d"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x16fbc3ce10df6b6c851b99d23ea2f9f6b311261a760ac110f60981c6ab8f6184","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x7f577d6ea5d77afcf440bb5522e629db42058861b72d17f54fd96e218926dfca","sourceManifestHash":"0xb80348aa56b446a29e6b1908ab91f6a93b7ba26cc8f8b502a23a84191f629ec4","manifestHash":"0x0021e8378498beb3b766daa613271c6fcdd6795ec3bf12fae4d027cfc2ddb4a3"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x061557694550a1323aebc36702e75bef93822bdec5de4be4dfc9c08c09279f8f","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xfc59f72d16250cb3855520741e5659990d14707e52d93c3fc37d62b0ad3edb4a","sourceManifestHash":"0x201c33c924021b5cb1127b619e3b410ae58cd2b840320f00f54866513ba5e673","manifestHash":"0x7902d4473cc52ae81ee41065d9f211dbff32461a9c9bda7f744c09671f1bddf6"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0x95767b52929f2aa48fb4b0682c49f8feb0d8b5a2f16661d5e01053d8ea31a10b","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0x4cb428855113fbd90c7442d4f192d10df06a2c620ea2992cd28fa64f94d4e318","sourceManifestHash":"0x1aca9cc58319bad6857b664183a58f23c2ad7180e1775af8dad4502efdb92f02","manifestHash":"0xcbc8d0d9635c26e47c395e7c988e956a1814e431a01e87a4846bfc4980e27b37"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xebcdd9e605afd3904447d3c7860b0d8466d33a7b2b4d2d1010157cd01b8bd907","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xa3f3c383bb10ab3d580638f081e3a40fe9a0b1adb9ee6e883a5be3d12f9f7245","sourceManifestHash":"0xc2aa35206fbe43e25a29e841c3ca7225fddd615c393cb37c093c5711ce7375e9","manifestHash":"0x14cd9a819db856e1358310b2b2f1d0d319d8fb788934a77c3aa7aa16415ff14a"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xed3c33806f0738fac580a96e54b30f839b3206553aeb9285d1bffbcf0aad6db9","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xd84e250979c667fd323b08cd3d88461084e4f8fc0db0aa75e86249ce0c989be3","sourceManifestHash":"0x65a8d12f6ae21dba40cf8b12556a363c388d15042bf1896700943a4f2c10c40b","manifestHash":"0x961858dfd3a04a1933d5bf93f86b56bf4328f3f4a6e626f8bf881c84fc1f26a9"},{"schemaVersion":"programmable.module-foundation.owner-publication.v1","publicationDigest":"0xaffec20545161afab138a3b23d8bf059d519be05a8b6f03944c3bbcac9d6830c","publisher":"0x9e1339Eaed0EfF31Eda7D714A341Eb09a7e4513e","requestDigest":"0xa4f01a480554a0ce47ded84807987741b7d3489f29afedbd16cde93f990a3a55","sourceManifestHash":"0x6aa0429963626309c6ab1a41e89ce76e3fab8d5e1f1676fe43758f035ba1e291","manifestHash":"0xbe2702afa39d2fdb4c77ad8f34c22a7961f8e91a8e9d845523959ae1d81e504a"}],"releases":[{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","releaseDigest":"0xe7438f0be60a448d36750488cac8329280e88f5dd4c587710a4236adb32e6fa4","manifestHash":"0x25b4aae769f7441c3b632e2f2f78701c4bc41c44deffe44144a46efc7f99909f","deploymentEvidenceDigest":"0x27a8ae53ee47b6f14eaa849270e9e2ffae60dcc9e8470a4dc88ea9183c9392a0","runtimeVerificationDigest":"0xdf7ae5868fe396a4d0679afd3fce42aafccfede48d7ef043952eacdc2b1873e9","factory":"0x917f83d675a02d24b70184ab54ac08eae87b4710","factoryCodeHash":"0x1f982b688febda0b9152d459addbee907d9c5639c3e075ca8e3f071767ee8093","moduleCodeHash":"0x5be365d8785b43fc8e47d75b0006d59cca48ab93ebf67c91d3aa9414066564f6","descriptorHash":"0x1bd5aa9a4e6ca7771b3946b1ad429fdc7d301f5774e341b9ccf53e1cdeb1ac75"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x6a1da63207a29511d34113b8743a83630e5c2bd093cd9bf3ed80b8d03682817f","factory":"0x98c5fd3e31e1f8acff28c3baa96492f81bbd9f22","factoryCodeHash":"0x05b2a83ee145e69282946770d72cc39b62c4f60afef794cafefbf80356412d4f","moduleCodeHash":"0x7830ae51675608ae97c10986c2a34f9e28d804572760a7b4e98e64eb8455ec0a","descriptorHash":"0xf3b591d0a918bc0b3139a5de3cbded34f743ff7cc3e038a6dc444b5ec8954d4b","releaseDigest":"0x021fdbe8077173437203460737e02fbcabd387b4cea78629473770739cdaa5d2","deploymentEvidenceDigest":"0x2ad6c837a9a1fbae6d846c9406ad2b0ef41756ffcf6fcd5b590cdd245dcb4a69","runtimeVerificationDigest":"0x90e3f96c7f5daedcba3e50cfa4b8a7b61d3fea5d399e7714164f3a963ee52e84"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x7075d429a66829be7aeae671e3d539da5fa5d95baa4564db03b048c29b5ffee7","factory":"0xfcabc1261d8d8e03d11763f41c0250cbe4fc2862","factoryCodeHash":"0x436345b1d5661528a107ba00951a92da71173e33aa0155e2f62d7a4248486c19","moduleCodeHash":"0x7830ae51675608ae97c10986c2a34f9e28d804572760a7b4e98e64eb8455ec0a","descriptorHash":"0x0dd9723667351b8da5ed1ab5c2a5c55213b8337c956fc34f229fe6f22c24fb76","releaseDigest":"0xae917d32470087a7a0ac7b8666eaa73d248df83efb49740de5946834932ebc77","deploymentEvidenceDigest":"0xfeeffee5d5e841905bb86a8552e789ab0b2f303daba17b9be7d5fada1080748f","runtimeVerificationDigest":"0x7d5f3a94b7a071c86b3f7d23491dcbd62b137c20d019f836ed0e06091d6e5a55"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xdd90f9451eec33a1cd673ecd420ff5b19e05dff3fb890fa8ff19b936f9e2bcc8","factory":"0xd168de00ab360d81fe6077b214f717451f2cb40d","factoryCodeHash":"0x8b718fcff2f2ba8803de61083e866accdccc684c2a2887622278d4a5de1f1778","moduleCodeHash":"0x7830ae51675608ae97c10986c2a34f9e28d804572760a7b4e98e64eb8455ec0a","descriptorHash":"0xe846ca2d2909f20b201e12101fc6400c06f53fa05575d48a78a95377ab0dbe26","releaseDigest":"0x37827f5d5e7b424d09435ffee592677f7f54b6eac373a2b0b17117ec7e484be7","deploymentEvidenceDigest":"0x959fb6e19aa13163ddaedf3dcfaa96ef09097323c4a15040523cb317ad09a3a6","runtimeVerificationDigest":"0xe6cad76e0ef0f12077c2ead4ce08eb515495abcc744425ec2590f15d14987b9d"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xe53e3b40cf2430c10cdb7c4824832077164c7b0f7d46a2d70275231d6d180424","factory":"0xe8433065c95e71bc1713a24b0cbd21cc038a63f3","factoryCodeHash":"0x3942de93456d4ebd2801a56ed7430d1e92fd72320c7b63f0f977ea0dd731901d","moduleCodeHash":"0x7830ae51675608ae97c10986c2a34f9e28d804572760a7b4e98e64eb8455ec0a","descriptorHash":"0xa7f9a598ecba1aa9770a4fb9deebcc17849074536b5383c3f7c8d31a359d40c5","releaseDigest":"0xadea44bc590ce6ff5e86750366a4626b7bf071779167c2032b7f57ba3ebc8584","deploymentEvidenceDigest":"0xd8adf52493382bebe0aab006e261f2db21456c224d7570dcd2ae84f2f2139414","runtimeVerificationDigest":"0x9af205bffc1573aefecb49f494651d188f3a775059353f174349d3888b6a8262"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x2c24f7b6c1a14f233905208393530bd087a75fcb3440f3ba865ff02b4891a961","factory":"0x3b96f767882a77515a1fede7aa4bd67a291b57c7","factoryCodeHash":"0xa9d30ca200777098f11c6de79c18f673ca1a0543ae2857ff09a6388466bf8382","moduleCodeHash":"0x30adccfedb5b928ef94c105aff3d75f15e617d7eb06bbb1beaea68dc6da5eaf8","descriptorHash":"0xb505ee7f5c2872807096748443081871fef43fcdf09cd8d1267f533394fce5df","releaseDigest":"0x3fc1070f3cc8fb99438353144fe5803a6a8747652717245d6bd86a2b51b066e9","deploymentEvidenceDigest":"0x12efdcc5888b72af69027a4a6503a3e3e79bba17bbb99d85a01b893bd298ad06","runtimeVerificationDigest":"0xd7e60721ec846659ab0e5edf617ae637bf98587d3fd645c389589f556fd83299"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xf75cd2b956f1ff2e1dedbf640586bc757ecd03cf1fd451d9b6511e03e41bdf3d","factory":"0xdd91aed3a380eb9bd243a72887b711b0fa41f986","factoryCodeHash":"0xe847bde4004808faf25fd50e88b672559ca3cc61998d0054233e1f94a6972279","moduleCodeHash":"0x30adccfedb5b928ef94c105aff3d75f15e617d7eb06bbb1beaea68dc6da5eaf8","descriptorHash":"0x50fd46b594b18fc9f3396134aeed2464f77ed1332c87988a726b5b1af47056bf","releaseDigest":"0xfded7524402695bd69874e47587f090dc789fffc5c2c724186714d585038ede9","deploymentEvidenceDigest":"0xf1fdcb65a430933faa40d3472b8ee6883b21c6e316081bd466252ffe0e35a4eb","runtimeVerificationDigest":"0xc50121d444851b21605c3a66dc16d11b5381798670e3dabefc3fd4e33e1ecafe"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x0021e8378498beb3b766daa613271c6fcdd6795ec3bf12fae4d027cfc2ddb4a3","factory":"0xd5daad1ca631e4f8b5b87348d2573eb7174d317f","factoryCodeHash":"0x2f0da00011e1ce999f81746a05a6d43583435f3840ecbb64e62cbd7a5b3d7bfa","moduleCodeHash":"0x2c33f95679115c4757c66dd94fbf62e1c6d151f9b60234f2fb7778095d0564de","descriptorHash":"0x561869a5adc7f71519b9d3055daa14540fbb8f4529214a06a52d965aaeaf5a3b","releaseDigest":"0x4fbb4423cadb0439b9717c05ba39575656f0489e4cd46553b624713105040b57","deploymentEvidenceDigest":"0x7c54efd58659f48088af59de06b77d9f2a8ecfaca1aa3cc82e9ba4641d22b9f1","runtimeVerificationDigest":"0x2d49c9b2768a0964e68c3a2f7e3c509b6e351146231d0ed8b5f7810d43785fe6"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x7902d4473cc52ae81ee41065d9f211dbff32461a9c9bda7f744c09671f1bddf6","factory":"0x05fc469142b72f85e743aae5b0ebd8802244b90d","factoryCodeHash":"0xee49eab3e5d6a98cdc751bf975f7e99198573ffda0629be753af320a10e82cb4","moduleCodeHash":"0x2c33f95679115c4757c66dd94fbf62e1c6d151f9b60234f2fb7778095d0564de","descriptorHash":"0x4afe5c2e705db41e79cccdd84f6283bb67d3a246d55c7f1455cfd3a35de05fa2","releaseDigest":"0xab1c410d03c0299b48e79cdef21f18e6929ec361a1585ee40357a0a4b8103823","deploymentEvidenceDigest":"0xdd7f23804d250bb6611ce2aafc996af84aef16572b693f807631c7dd359f13b6","runtimeVerificationDigest":"0xc0521df8fc8f97d6f81c31f8e7a8550a05159f68fbca4e3b27b70fd965bf4598"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xcbc8d0d9635c26e47c395e7c988e956a1814e431a01e87a4846bfc4980e27b37","factory":"0x62398f8030c18a519a4b329ed49d72d611fa8cbf","factoryCodeHash":"0x2cb3923d98496d11738223cfbed45706241290709af0b27d5ce4d007530615e4","moduleCodeHash":"0xebe528fcfe24d83785805e93727d23ebd90bb6cb7b6202a24778cfca17cbb8ea","descriptorHash":"0x44272a0adb9e27081fdf71cad94c9ef4a08f1714600fbb3d6967e82003accd3d","releaseDigest":"0x514b70edf62efff1fb997994d6770a821f552968a5f5952d1cd6d1e940dc4a14","deploymentEvidenceDigest":"0xcafea2b2fcb44698493e1c52c2f5a21ad77bd710914fa5ca2dee7a21ec977748","runtimeVerificationDigest":"0x5165629221fb0bb2b65ca9f5a98864147921e3acb620711c3a98960a70602509"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x14cd9a819db856e1358310b2b2f1d0d319d8fb788934a77c3aa7aa16415ff14a","factory":"0xa22c7ab955c88b1aa1c6a6f0ca17845601fcd76b","factoryCodeHash":"0x14e4f4d43e936db71a70e34711a8a926e21d579fb1b3e1ac6fc07d06939be4ff","moduleCodeHash":"0xebe528fcfe24d83785805e93727d23ebd90bb6cb7b6202a24778cfca17cbb8ea","descriptorHash":"0x9cadb0fc54019704854592ed7dca181eb07414878fe6f02942bddf4d673a15a9","releaseDigest":"0xda98f21b362da3a3e4d324c7516db5275f48667279544f1a2a81a34c1866c883","deploymentEvidenceDigest":"0x6d6c68aad65c96692b587dda9229a5666c72de0dd3ed348016f701ced40cf154","runtimeVerificationDigest":"0xc722c67a6e0feaf22f6eacab6534dc876d36708b3a79e8a9c44a94c75a31a1b1"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0x961858dfd3a04a1933d5bf93f86b56bf4328f3f4a6e626f8bf881c84fc1f26a9","factory":"0x67b12b11efdad3c4091722300e164f636565af68","factoryCodeHash":"0xfb552bb7cee75558038764a4e50ff97f21e12ae1f3570fc18fb4f4f113934332","moduleCodeHash":"0xebe528fcfe24d83785805e93727d23ebd90bb6cb7b6202a24778cfca17cbb8ea","descriptorHash":"0x9b4e9a71a99ed4b27cf49c51435718de3e94bad25e8aae2b456a8885fd170966","releaseDigest":"0xec96c9660ea9dd235115f4be1da8b6e6050ddbb4812c6d5ac7ba9f9ab2e21ee7","deploymentEvidenceDigest":"0x2a648fdef077e81a0d75f23cebc3313bbd21f3e19446ab27b97f46edb4249533","runtimeVerificationDigest":"0x54d0764503aaf3140aed5e225bb9f6b93c3f95f473188e69b4c9f1835463676c"},{"chainId":4663,"hostAdapterId":"programmable.module-foundation.host@1","manifestHash":"0xbe2702afa39d2fdb4c77ad8f34c22a7961f8e91a8e9d845523959ae1d81e504a","factory":"0x917f83d675a02d24b70184ab54ac08eae87b4710","factoryCodeHash":"0x1f982b688febda0b9152d459addbee907d9c5639c3e075ca8e3f071767ee8093","moduleCodeHash":"0x5be365d8785b43fc8e47d75b0006d59cca48ab93ebf67c91d3aa9414066564f6","descriptorHash":"0x1bd5aa9a4e6ca7771b3946b1ad429fdc7d301f5774e341b9ccf53e1cdeb1ac75","releaseDigest":"0x926d51294c7feab31dc1ac79d09a1d858595245dd5292fa4e624a5be332c81c0","deploymentEvidenceDigest":"0xe9e0394248532c7cf2a2dc125fa779a60402c79dc9676db797f8d5dc29408873","runtimeVerificationDigest":"0x58fb645bf2f73273661dc6d7b0ce6cf7a363ba0622cfed03904ea41177233bc2"}]}}}