@ubi.fun/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/LICENSE +10 -0
  2. package/README.md +279 -0
  3. package/dist/abi/AddressFeeSplitManager.d.cts +938 -0
  4. package/dist/abi/AddressFeeSplitManager.d.ts +939 -0
  5. package/dist/abi/AddressFeeSplitManager.d.ts.map +1 -0
  6. package/dist/abi/BidWall.d.cts +739 -0
  7. package/dist/abi/BidWall.d.ts +740 -0
  8. package/dist/abi/BidWall.d.ts.map +1 -0
  9. package/dist/abi/FairLaunch.d.cts +535 -0
  10. package/dist/abi/FairLaunch.d.ts +536 -0
  11. package/dist/abi/FairLaunch.d.ts.map +1 -0
  12. package/dist/abi/FeeEscrow.d.cts +281 -0
  13. package/dist/abi/FeeEscrow.d.ts +282 -0
  14. package/dist/abi/FeeEscrow.d.ts.map +1 -0
  15. package/dist/abi/Flaunch.d.cts +775 -0
  16. package/dist/abi/Flaunch.d.ts +776 -0
  17. package/dist/abi/Flaunch.d.ts.map +1 -0
  18. package/dist/abi/FlaunchPositionManager.d.cts +2170 -0
  19. package/dist/abi/FlaunchPositionManager.d.ts +2171 -0
  20. package/dist/abi/FlaunchPositionManager.d.ts.map +1 -0
  21. package/dist/abi/FlaunchZap.d.cts +300 -0
  22. package/dist/abi/FlaunchZap.d.ts +301 -0
  23. package/dist/abi/FlaunchZap.d.ts.map +1 -0
  24. package/dist/abi/InitialPrice.d.cts +252 -0
  25. package/dist/abi/InitialPrice.d.ts +253 -0
  26. package/dist/abi/InitialPrice.d.ts.map +1 -0
  27. package/dist/abi/Memecoin.d.cts +680 -0
  28. package/dist/abi/Memecoin.d.ts +681 -0
  29. package/dist/abi/Memecoin.d.ts.map +1 -0
  30. package/dist/abi/Multicall.d.cts +332 -0
  31. package/dist/abi/Multicall.d.ts +333 -0
  32. package/dist/abi/Multicall.d.ts.map +1 -0
  33. package/dist/abi/PoolManager.d.cts +1056 -0
  34. package/dist/abi/PoolManager.d.ts +1057 -0
  35. package/dist/abi/PoolManager.d.ts.map +1 -0
  36. package/dist/abi/PoolSwap.d.cts +89 -0
  37. package/dist/abi/PoolSwap.d.ts +90 -0
  38. package/dist/abi/PoolSwap.d.ts.map +1 -0
  39. package/dist/abi/Quoter.d.cts +485 -0
  40. package/dist/abi/Quoter.d.ts +486 -0
  41. package/dist/abi/Quoter.d.ts.map +1 -0
  42. package/dist/abi/ReferralEscrow.d.cts +459 -0
  43. package/dist/abi/ReferralEscrow.d.ts +460 -0
  44. package/dist/abi/ReferralEscrow.d.ts.map +1 -0
  45. package/dist/abi/TreasuryManager.d.cts +325 -0
  46. package/dist/abi/TreasuryManager.d.ts +326 -0
  47. package/dist/abi/TreasuryManager.d.ts.map +1 -0
  48. package/dist/abi/TreasuryManagerFactory.d.cts +433 -0
  49. package/dist/abi/TreasuryManagerFactory.d.ts +434 -0
  50. package/dist/abi/TreasuryManagerFactory.d.ts.map +1 -0
  51. package/dist/abi/UniversalRewardsDistributor.d.cts +191 -0
  52. package/dist/abi/UniversalRewardsDistributor.d.ts +192 -0
  53. package/dist/abi/UniversalRewardsDistributor.d.ts.map +1 -0
  54. package/dist/abi/XHandleClaims.d.cts +383 -0
  55. package/dist/abi/XHandleClaims.d.ts +384 -0
  56. package/dist/abi/XHandleClaims.d.ts.map +1 -0
  57. package/dist/abi/index.cjs +13541 -0
  58. package/dist/abi/index.cjs.map +1 -0
  59. package/dist/abi/index.d.cts +18 -0
  60. package/dist/abi/index.d.ts +19 -0
  61. package/dist/abi/index.d.ts.map +1 -0
  62. package/dist/abi/index.js +13522 -0
  63. package/dist/abi/index.js.map +1 -0
  64. package/dist/addresses/index.cjs +90 -0
  65. package/dist/addresses/index.cjs.map +1 -0
  66. package/dist/addresses/index.js +70 -0
  67. package/dist/addresses/index.js.map +1 -0
  68. package/dist/addresses.d.cts +48 -0
  69. package/dist/addresses.d.ts +49 -0
  70. package/dist/addresses.d.ts.map +1 -0
  71. package/dist/clients/BidWallClient.d.cts +44 -0
  72. package/dist/clients/BidWallClient.d.ts +45 -0
  73. package/dist/clients/BidWallClient.d.ts.map +1 -0
  74. package/dist/clients/FairLaunchClient.d.cts +47 -0
  75. package/dist/clients/FairLaunchClient.d.ts +48 -0
  76. package/dist/clients/FairLaunchClient.d.ts.map +1 -0
  77. package/dist/clients/FeeEscrowClient.d.cts +40 -0
  78. package/dist/clients/FeeEscrowClient.d.ts +41 -0
  79. package/dist/clients/FeeEscrowClient.d.ts.map +1 -0
  80. package/dist/clients/FlaunchClient.d.cts +35 -0
  81. package/dist/clients/FlaunchClient.d.ts +36 -0
  82. package/dist/clients/FlaunchClient.d.ts.map +1 -0
  83. package/dist/clients/FlaunchPositionManagerClient.d.cts +117 -0
  84. package/dist/clients/FlaunchPositionManagerClient.d.ts +118 -0
  85. package/dist/clients/FlaunchPositionManagerClient.d.ts.map +1 -0
  86. package/dist/clients/FlaunchZapClient.d.cts +127 -0
  87. package/dist/clients/FlaunchZapClient.d.ts +128 -0
  88. package/dist/clients/FlaunchZapClient.d.ts.map +1 -0
  89. package/dist/clients/InitialPriceClient.d.cts +32 -0
  90. package/dist/clients/InitialPriceClient.d.ts +33 -0
  91. package/dist/clients/InitialPriceClient.d.ts.map +1 -0
  92. package/dist/clients/MemecoinClient.d.cts +66 -0
  93. package/dist/clients/MemecoinClient.d.ts +67 -0
  94. package/dist/clients/MemecoinClient.d.ts.map +1 -0
  95. package/dist/clients/MulticallClient.d.cts +15 -0
  96. package/dist/clients/MulticallClient.d.ts +16 -0
  97. package/dist/clients/MulticallClient.d.ts.map +1 -0
  98. package/dist/clients/PoolManagerClient.d.cts +50 -0
  99. package/dist/clients/PoolManagerClient.d.ts +51 -0
  100. package/dist/clients/PoolManagerClient.d.ts.map +1 -0
  101. package/dist/clients/PoolSwapClient.d.cts +37 -0
  102. package/dist/clients/PoolSwapClient.d.ts +38 -0
  103. package/dist/clients/PoolSwapClient.d.ts.map +1 -0
  104. package/dist/clients/QuoterClient.d.cts +58 -0
  105. package/dist/clients/QuoterClient.d.ts +59 -0
  106. package/dist/clients/QuoterClient.d.ts.map +1 -0
  107. package/dist/clients/ReferralEscrowClient.d.cts +39 -0
  108. package/dist/clients/ReferralEscrowClient.d.ts +40 -0
  109. package/dist/clients/ReferralEscrowClient.d.ts.map +1 -0
  110. package/dist/clients/TreasuryManagerClient.d.cts +71 -0
  111. package/dist/clients/TreasuryManagerClient.d.ts +72 -0
  112. package/dist/clients/TreasuryManagerClient.d.ts.map +1 -0
  113. package/dist/clients/TreasuryManagerFactoryClient.d.cts +15 -0
  114. package/dist/clients/TreasuryManagerFactoryClient.d.ts +16 -0
  115. package/dist/clients/TreasuryManagerFactoryClient.d.ts.map +1 -0
  116. package/dist/clients/UniversalRewardsDistributorClient.d.cts +45 -0
  117. package/dist/clients/UniversalRewardsDistributorClient.d.ts +46 -0
  118. package/dist/clients/UniversalRewardsDistributorClient.d.ts.map +1 -0
  119. package/dist/clients/XHandleClaimsClient.d.cts +64 -0
  120. package/dist/clients/XHandleClaimsClient.d.ts +65 -0
  121. package/dist/clients/XHandleClaimsClient.d.ts.map +1 -0
  122. package/dist/helpers/chainIdToChain.d.cts +113 -0
  123. package/dist/helpers/chainIdToChain.d.ts +114 -0
  124. package/dist/helpers/chainIdToChain.d.ts.map +1 -0
  125. package/dist/helpers/hex.d.cts +3 -0
  126. package/dist/helpers/hex.d.ts +4 -0
  127. package/dist/helpers/hex.d.ts.map +1 -0
  128. package/dist/helpers/index.cjs +196 -0
  129. package/dist/helpers/index.cjs.map +1 -0
  130. package/dist/helpers/index.d.cts +3 -0
  131. package/dist/helpers/index.d.ts +4 -0
  132. package/dist/helpers/index.d.ts.map +1 -0
  133. package/dist/helpers/index.js +184 -0
  134. package/dist/helpers/index.js.map +1 -0
  135. package/dist/helpers/ipfs.d.cts +56 -0
  136. package/dist/helpers/ipfs.d.ts +57 -0
  137. package/dist/helpers/ipfs.d.ts.map +1 -0
  138. package/dist/hooks/FlaunchPositionManagerHooks.d.cts +28 -0
  139. package/dist/hooks/FlaunchPositionManagerHooks.d.ts +29 -0
  140. package/dist/hooks/FlaunchPositionManagerHooks.d.ts.map +1 -0
  141. package/dist/hooks/index.cjs +73 -0
  142. package/dist/hooks/index.cjs.map +1 -0
  143. package/dist/hooks/index.d.cts +1 -0
  144. package/dist/hooks/index.d.ts +2 -0
  145. package/dist/hooks/index.d.ts.map +1 -0
  146. package/dist/hooks/index.js +70 -0
  147. package/dist/hooks/index.js.map +1 -0
  148. package/dist/index.cjs +16808 -0
  149. package/dist/index.cjs.map +1 -0
  150. package/dist/index.d.cts +31 -0
  151. package/dist/index.d.ts +32 -0
  152. package/dist/index.d.ts.map +1 -0
  153. package/dist/index.js +16718 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/index.umd.cjs +2 -0
  156. package/dist/index.umd.cjs.map +1 -0
  157. package/dist/sdk/FlaunchSDK.d.cts +520 -0
  158. package/dist/sdk/FlaunchSDK.d.ts +521 -0
  159. package/dist/sdk/FlaunchSDK.d.ts.map +1 -0
  160. package/dist/sdk/calldata.d.cts +65 -0
  161. package/dist/sdk/calldata.d.ts +66 -0
  162. package/dist/sdk/calldata.d.ts.map +1 -0
  163. package/dist/sdk/drift.d.cts +20 -0
  164. package/dist/sdk/drift.d.ts +21 -0
  165. package/dist/sdk/drift.d.ts.map +1 -0
  166. package/dist/sdk/factory.d.cts +20 -0
  167. package/dist/sdk/factory.d.ts +21 -0
  168. package/dist/sdk/factory.d.ts.map +1 -0
  169. package/dist/types.d.cts +56 -0
  170. package/dist/types.d.ts +57 -0
  171. package/dist/types.d.ts.map +1 -0
  172. package/dist/utils/index.cjs +455 -0
  173. package/dist/utils/index.cjs.map +1 -0
  174. package/dist/utils/index.d.cts +4 -0
  175. package/dist/utils/index.d.ts +5 -0
  176. package/dist/utils/index.d.ts.map +1 -0
  177. package/dist/utils/index.js +431 -0
  178. package/dist/utils/index.js.map +1 -0
  179. package/dist/utils/parseSwap.d.cts +45 -0
  180. package/dist/utils/parseSwap.d.ts +46 -0
  181. package/dist/utils/parseSwap.d.ts.map +1 -0
  182. package/dist/utils/slippage.d.cts +11 -0
  183. package/dist/utils/slippage.d.ts +12 -0
  184. package/dist/utils/slippage.d.ts.map +1 -0
  185. package/dist/utils/swap.d.cts +49 -0
  186. package/dist/utils/swap.d.ts +50 -0
  187. package/dist/utils/swap.d.ts.map +1 -0
  188. package/dist/utils/univ4.d.cts +78 -0
  189. package/dist/utils/univ4.d.ts +79 -0
  190. package/dist/utils/univ4.d.ts.map +1 -0
  191. package/package.json +161 -0
@@ -0,0 +1,2 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@delvtech/drift-viem")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@delvtech/drift-viem"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ubifun={},e.drift,e.viem,e.axios,e.driftViem)}(this,function(e,t,n,a,i){"use strict";const r=5042,s=5042002,p="0x3600000000000000000000000000000000000000",y={[r]:p,[s]:p},o={[r]:"0xe07F7cA66EC795592385018Dd998F0B50b8A2834",[s]:"0x3fd667aaa89519772bb44e984de408bfcd40e285"},u={[r]:"0xC780c0f4aAc690908854D351b8bFda2812daeFDc",[s]:"0x88af0b76752ff31aa351cea2cc2e43a1b7c32fdc"},l={[r]:"0x93E5A7565008db9688BA5211Fa552d8b108B9c75",[s]:"0x55a0e1a458f1c13023dbd6b204e2a439c3b44663"},d={[r]:"0xdCDADa707264d9e2B0E8c2feC467860C97434Bd4",[s]:"0xd2ea5591fe0b5820b6de33afbc3b468d070038ea"},c={[r]:"0xC5DD30802fefab789Cd9b1e835Bd7301a8D23F8A",[s]:"0x04f947e5fc0ac42836f880d45705af7483a2c4c0"},m={[r]:"0x3A61B6E86fde5Fc657a48819837F346C7E2Fffa7",[s]:"0x396d41eb4d110d64491d01cd186548fdc82b1b4a"},T={[r]:"0xE25C132F379DB49C463328eF427E28DBCbD3a2F0",[s]:"0x093c10b780f7cf8fca9aa7dbc83a64cddf55215f"},b={[r]:"0xde10818344f5ab75ecfA772887cE5751D6Cb91C7",[s]:"0xA7d182B81aF7B40b6d09Da88A12a4f7ad770e162"},f={[r]:"0x678f0D1C045e820Ec1d4806749f2629e1035550e",[s]:"0x59b3269aaf9db83bd3029c84d8b5226fa5702f78"},h={[r]:"0xf25B9ceAba005CcCb0cefC4e323e6e519F111eB3",[s]:"0x51b6a4759f9c9a681349c857f6fd912cdfeb8fef"},w={[r]:"0xfC38298590893c39E46D319aEd9EC3bf6CB17A3E",[s]:"0x6fE2b9e1Da493E4584e742C03e1926a4CD8AC2A1"},g={[r]:"0x66003091e723778d7D3285BB6c24ff3F0Ddcc7F7",[s]:"0x7a8e9dA46db2be8436c4404476b40F07a31A6d95"},M={[r]:"0x8366a39CC670B4001A1121B8F6A443A643e40951",[s]:"0x5fb24c800133a0930280788c5eb3468764154309"},I={[r]:"0x4595D3CD7A6D98d83A719934e829db5076fF1d0d",[s]:"0xf517623f178Ba90e5b3299cb121D38F5A0733ac4"},_={[r]:"https://api.ubi.fun",[s]:"https://api-dev.ubi.fun"},v=[{type:"constructor",inputs:[{name:"params",type:"tuple",internalType:"struct PositionManager.ConstructorParams",components:[{name:"nativeToken",type:"address",internalType:"address"},{name:"poolManager",type:"address",internalType:"contract IPoolManager"},{name:"feeDistribution",type:"tuple",internalType:"struct FeeDistributor.FeeDistribution",components:[{name:"swapFee",type:"uint24",internalType:"uint24"},{name:"referrer",type:"uint24",internalType:"uint24"},{name:"protocol",type:"uint24",internalType:"uint24"},{name:"active",type:"bool",internalType:"bool"}]},{name:"initialPrice",type:"address",internalType:"contract IInitialPrice"},{name:"protocolOwner",type:"address",internalType:"address"},{name:"protocolFeeRecipient",type:"address",internalType:"address"},{name:"flayGovernance",type:"address",internalType:"address"},{name:"feeEscrow",type:"address",internalType:"address"},{name:"feeExemptions",type:"address",internalType:"contract FeeExemptions"},{name:"actionManager",type:"address",internalType:"contract TreasuryActionManager"},{name:"bidWall",type:"address",internalType:"contract BidWall"},{name:"fairLaunch",type:"address",internalType:"contract FairLaunch"}]}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"BURN_ADDRESS",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"MAX_FAIR_LAUNCH_PROTOCOL_ALLOCATION",inputs:[],outputs:[{name:"",type:"uint24",internalType:"uint24"}],stateMutability:"view"},{type:"function",name:"MAX_PROTOCOL_ALLOCATION",inputs:[],outputs:[{name:"",type:"uint24",internalType:"uint24"}],stateMutability:"view"},{type:"function",name:"actionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract TreasuryActionManager"}],stateMutability:"view"},{type:"function",name:"afterAddLiquidity",inputs:[{name:"_sender",type:"address",internalType:"address"},{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"",type:"tuple",internalType:"struct IPoolManager.ModifyLiquidityParams",components:[{name:"tickLower",type:"int24",internalType:"int24"},{name:"tickUpper",type:"int24",internalType:"int24"},{name:"liquidityDelta",type:"int256",internalType:"int256"},{name:"salt",type:"bytes32",internalType:"bytes32"}]},{name:"_delta",type:"int256",internalType:"BalanceDelta"},{name:"_feesAccrued",type:"int256",internalType:"BalanceDelta"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"selector_",type:"bytes4",internalType:"bytes4"},{name:"",type:"int256",internalType:"BalanceDelta"}],stateMutability:"nonpayable"},{type:"function",name:"afterDonate",inputs:[{name:"_sender",type:"address",internalType:"address"},{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"_amount0",type:"uint256",internalType:"uint256"},{name:"_amount1",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"selector_",type:"bytes4",internalType:"bytes4"}],stateMutability:"nonpayable"},{type:"function",name:"afterInitialize",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"",type:"uint160",internalType:"uint160"},{name:"",type:"int24",internalType:"int24"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"nonpayable"},{type:"function",name:"afterRemoveLiquidity",inputs:[{name:"_sender",type:"address",internalType:"address"},{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"",type:"tuple",internalType:"struct IPoolManager.ModifyLiquidityParams",components:[{name:"tickLower",type:"int24",internalType:"int24"},{name:"tickUpper",type:"int24",internalType:"int24"},{name:"liquidityDelta",type:"int256",internalType:"int256"},{name:"salt",type:"bytes32",internalType:"bytes32"}]},{name:"_delta",type:"int256",internalType:"BalanceDelta"},{name:"_feesAccrued",type:"int256",internalType:"BalanceDelta"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"selector_",type:"bytes4",internalType:"bytes4"},{name:"",type:"int256",internalType:"BalanceDelta"}],stateMutability:"nonpayable"},{type:"function",name:"afterSwap",inputs:[{name:"_sender",type:"address",internalType:"address"},{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"_params",type:"tuple",internalType:"struct IPoolManager.SwapParams",components:[{name:"zeroForOne",type:"bool",internalType:"bool"},{name:"amountSpecified",type:"int256",internalType:"int256"},{name:"sqrtPriceLimitX96",type:"uint160",internalType:"uint160"}]},{name:"_delta",type:"int256",internalType:"BalanceDelta"},{name:"_hookData",type:"bytes",internalType:"bytes"}],outputs:[{name:"selector_",type:"bytes4",internalType:"bytes4"},{name:"hookDeltaUnspecified_",type:"int128",internalType:"int128"}],stateMutability:"nonpayable"},{type:"function",name:"beforeAddLiquidity",inputs:[{name:"_sender",type:"address",internalType:"address"},{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"",type:"tuple",internalType:"struct IPoolManager.ModifyLiquidityParams",components:[{name:"tickLower",type:"int24",internalType:"int24"},{name:"tickUpper",type:"int24",internalType:"int24"},{name:"liquidityDelta",type:"int256",internalType:"int256"},{name:"salt",type:"bytes32",internalType:"bytes32"}]},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"selector_",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"beforeDonate",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"nonpayable"},{type:"function",name:"beforeInitialize",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"",type:"uint160",internalType:"uint160"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"beforeRemoveLiquidity",inputs:[{name:"_sender",type:"address",internalType:"address"},{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"",type:"tuple",internalType:"struct IPoolManager.ModifyLiquidityParams",components:[{name:"tickLower",type:"int24",internalType:"int24"},{name:"tickUpper",type:"int24",internalType:"int24"},{name:"liquidityDelta",type:"int256",internalType:"int256"},{name:"salt",type:"bytes32",internalType:"bytes32"}]},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"selector_",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"beforeSwap",inputs:[{name:"_sender",type:"address",internalType:"address"},{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"_params",type:"tuple",internalType:"struct IPoolManager.SwapParams",components:[{name:"zeroForOne",type:"bool",internalType:"bool"},{name:"amountSpecified",type:"int256",internalType:"int256"},{name:"sqrtPriceLimitX96",type:"uint160",internalType:"uint160"}]},{name:"_hookData",type:"bytes",internalType:"bytes"}],outputs:[{name:"selector_",type:"bytes4",internalType:"bytes4"},{name:"beforeSwapDelta_",type:"int256",internalType:"BeforeSwapDelta"},{name:"",type:"uint24",internalType:"uint24"}],stateMutability:"nonpayable"},{type:"function",name:"bidWall",inputs:[],outputs:[{name:"",type:"address",internalType:"contract BidWall"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"closeBidWall",inputs:[{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"fairLaunch",inputs:[],outputs:[{name:"",type:"address",internalType:"contract FairLaunch"}],stateMutability:"view"},{type:"function",name:"fairLaunchFeeCalculator",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeCalculator"}],stateMutability:"view"},{type:"function",name:"feeCalculator",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeCalculator"}],stateMutability:"view"},{type:"function",name:"feeEscrow",inputs:[],outputs:[{name:"",type:"address",internalType:"contract FeeEscrow"}],stateMutability:"view"},{type:"function",name:"feeExemptions",inputs:[],outputs:[{name:"",type:"address",internalType:"contract FeeExemptions"}],stateMutability:"view"},{type:"function",name:"feeSplit",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"},{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"bidWall_",type:"uint256",internalType:"uint256"},{name:"creator_",type:"uint256",internalType:"uint256"},{name:"protocol_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"flaunch",inputs:[{name:"_params",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"memecoin_",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunchContract",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFlaunch"}],stateMutability:"view"},{type:"function",name:"flaunchesAt",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"_flaunchTime",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"flayGovernance",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getFairLaunchFeeDistribution",inputs:[],outputs:[{name:"feeDistribution_",type:"tuple",internalType:"struct FeeDistributor.FeeDistribution",components:[{name:"swapFee",type:"uint24",internalType:"uint24"},{name:"referrer",type:"uint24",internalType:"uint24"},{name:"protocol",type:"uint24",internalType:"uint24"},{name:"active",type:"bool",internalType:"bool"}]},{name:"creatorAllocation_",type:"uint24",internalType:"uint24"}],stateMutability:"view"},{type:"function",name:"getFeeCalculator",inputs:[{name:"_isFairLaunch",type:"bool",internalType:"bool"}],outputs:[{name:"",type:"address",internalType:"contract IFeeCalculator"}],stateMutability:"view"},{type:"function",name:"getFlaunchingFee",inputs:[{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getFlaunchingMarketCap",inputs:[{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getHookPermissions",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Hooks.Permissions",components:[{name:"beforeInitialize",type:"bool",internalType:"bool"},{name:"afterInitialize",type:"bool",internalType:"bool"},{name:"beforeAddLiquidity",type:"bool",internalType:"bool"},{name:"afterAddLiquidity",type:"bool",internalType:"bool"},{name:"beforeRemoveLiquidity",type:"bool",internalType:"bool"},{name:"afterRemoveLiquidity",type:"bool",internalType:"bool"},{name:"beforeSwap",type:"bool",internalType:"bool"},{name:"afterSwap",type:"bool",internalType:"bool"},{name:"beforeDonate",type:"bool",internalType:"bool"},{name:"afterDonate",type:"bool",internalType:"bool"},{name:"beforeSwapReturnDelta",type:"bool",internalType:"bool"},{name:"afterSwapReturnDelta",type:"bool",internalType:"bool"},{name:"afterAddLiquidityReturnDelta",type:"bool",internalType:"bool"},{name:"afterRemoveLiquidityReturnDelta",type:"bool",internalType:"bool"}]}],stateMutability:"pure"},{type:"function",name:"getPoolFeeDistribution",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"feeDistribution_",type:"tuple",internalType:"struct FeeDistributor.FeeDistribution",components:[{name:"swapFee",type:"uint24",internalType:"uint24"},{name:"referrer",type:"uint24",internalType:"uint24"},{name:"protocol",type:"uint24",internalType:"uint24"},{name:"active",type:"bool",internalType:"bool"}]}],stateMutability:"view"},{type:"function",name:"initialPrice",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IInitialPrice"}],stateMutability:"view"},{type:"function",name:"maxReferrerAllocation",inputs:[],outputs:[{name:"",type:"uint24",internalType:"uint24"}],stateMutability:"view"},{type:"function",name:"minProtocolAllocation",inputs:[],outputs:[{name:"",type:"uint24",internalType:"uint24"}],stateMutability:"view"},{type:"function",name:"nativeToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"notifier",inputs:[],outputs:[{name:"",type:"address",internalType:"contract Notifier"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"poolFees",inputs:[{name:"_poolKey",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]}],outputs:[{name:"",type:"tuple",internalType:"struct InternalSwapPool.ClaimableFees",components:[{name:"amount0",type:"uint256",internalType:"uint256"},{name:"amount1",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"poolKey",inputs:[{name:"_token",type:"address",internalType:"address"}],outputs:[{name:"",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]}],stateMutability:"view"},{type:"function",name:"poolManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IPoolManager"}],stateMutability:"view"},{type:"function",name:"referralEscrow",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ReferralEscrow"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setFairLaunchFeeCalculator",inputs:[{name:"_feeCalculator",type:"address",internalType:"contract IFeeCalculator"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFairLaunchFeeDistribution",inputs:[{name:"_feeDistribution",type:"tuple",internalType:"struct FeeDistributor.FeeDistribution",components:[{name:"swapFee",type:"uint24",internalType:"uint24"},{name:"referrer",type:"uint24",internalType:"uint24"},{name:"protocol",type:"uint24",internalType:"uint24"},{name:"active",type:"bool",internalType:"bool"}]},{name:"_creatorAllocation",type:"uint24",internalType:"uint24"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFeeCalculator",inputs:[{name:"_feeCalculator",type:"address",internalType:"contract IFeeCalculator"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFeeDistribution",inputs:[{name:"_feeDistribution",type:"tuple",internalType:"struct FeeDistributor.FeeDistribution",components:[{name:"swapFee",type:"uint24",internalType:"uint24"},{name:"referrer",type:"uint24",internalType:"uint24"},{name:"protocol",type:"uint24",internalType:"uint24"},{name:"active",type:"bool",internalType:"bool"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFlaunch",inputs:[{name:"_flaunchContract",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setInitialPrice",inputs:[{name:"_initialPrice",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPoolFeeDistribution",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"},{name:"_feeDistribution",type:"tuple",internalType:"struct FeeDistributor.FeeDistribution",components:[{name:"swapFee",type:"uint24",internalType:"uint24"},{name:"referrer",type:"uint24",internalType:"uint24"},{name:"protocol",type:"uint24",internalType:"uint24"},{name:"active",type:"bool",internalType:"bool"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setProtocolFeeDistribution",inputs:[{name:"_protocol",type:"uint24",internalType:"uint24"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setReferralEscrow",inputs:[{name:"_referralEscrow",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"unlockCallback",inputs:[{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"event",name:"CreatorFeeAllocationUpdated",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_allocation",type:"uint24",indexed:!1,internalType:"uint24"}],anonymous:!1},{type:"event",name:"FairLaunchBurn",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_unsoldSupply",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"FairLaunchFeeCalculatorUpdated",inputs:[{name:"_feeCalculator",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"FairLaunchFeeDistributionUpdated",inputs:[{name:"_feeDistribution",type:"tuple",indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",components:[{name:"swapFee",type:"uint24",internalType:"uint24"},{name:"referrer",type:"uint24",internalType:"uint24"},{name:"protocol",type:"uint24",internalType:"uint24"},{name:"active",type:"bool",internalType:"bool"}]},{name:"_creatorAllocation",type:"uint24",indexed:!1,internalType:"uint24"}],anonymous:!1},{type:"event",name:"FeeCalculatorUpdated",inputs:[{name:"_feeCalculator",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"FeeDistributionUpdated",inputs:[{name:"_feeDistribution",type:"tuple",indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",components:[{name:"swapFee",type:"uint24",internalType:"uint24"},{name:"referrer",type:"uint24",internalType:"uint24"},{name:"protocol",type:"uint24",internalType:"uint24"},{name:"active",type:"bool",internalType:"bool"}]}],anonymous:!1},{type:"event",name:"HookFee",inputs:[{name:"id",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"feeAmount0",type:"uint128",indexed:!1,internalType:"uint128"},{name:"feeAmount1",type:"uint128",indexed:!1,internalType:"uint128"}],anonymous:!1},{type:"event",name:"HookSwap",inputs:[{name:"id",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"amount0",type:"int128",indexed:!1,internalType:"int128"},{name:"amount1",type:"int128",indexed:!1,internalType:"int128"},{name:"hookLPfeeAmount0",type:"uint128",indexed:!1,internalType:"uint128"},{name:"hookLPfeeAmount1",type:"uint128",indexed:!1,internalType:"uint128"}],anonymous:!1},{type:"event",name:"InitialPriceUpdated",inputs:[{name:"_initialPrice",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"PoolCreated",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_memecoin",type:"address",indexed:!1,internalType:"address"},{name:"_memecoinTreasury",type:"address",indexed:!1,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_currencyFlipped",type:"bool",indexed:!1,internalType:"bool"},{name:"_flaunchFee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_params",type:"tuple",indexed:!1,internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"PoolFeeDistributionUpdated",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_feeDistribution",type:"tuple",indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",components:[{name:"swapFee",type:"uint24",internalType:"uint24"},{name:"referrer",type:"uint24",internalType:"uint24"},{name:"protocol",type:"uint24",internalType:"uint24"},{name:"active",type:"bool",internalType:"bool"}]}],anonymous:!1},{type:"event",name:"PoolFeesDistributed",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_donateAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_creatorAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_bidWallAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_governanceAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_protocolAmount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PoolFeesReceived",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_amount0",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_amount1",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PoolFeesSwapped",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"zeroForOne",type:"bool",indexed:!1,internalType:"bool"},{name:"_amount0",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_amount1",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PoolPremine",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_premineAmount",type:"int256",indexed:!1,internalType:"int256"}],anonymous:!1},{type:"event",name:"PoolScheduled",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_flaunchesAt",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PoolStateUpdated",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_sqrtPriceX96",type:"uint160",indexed:!1,internalType:"uint160"},{name:"_tick",type:"int24",indexed:!1,internalType:"int24"},{name:"_protocolFee",type:"uint24",indexed:!1,internalType:"uint24"},{name:"_swapFee",type:"uint24",indexed:!1,internalType:"uint24"},{name:"_liquidity",type:"uint128",indexed:!1,internalType:"uint128"}],anonymous:!1},{type:"event",name:"PoolSwap",inputs:[{name:"poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"flAmount0",type:"int256",indexed:!1,internalType:"int256"},{name:"flAmount1",type:"int256",indexed:!1,internalType:"int256"},{name:"flFee0",type:"int256",indexed:!1,internalType:"int256"},{name:"flFee1",type:"int256",indexed:!1,internalType:"int256"},{name:"ispAmount0",type:"int256",indexed:!1,internalType:"int256"},{name:"ispAmount1",type:"int256",indexed:!1,internalType:"int256"},{name:"ispFee0",type:"int256",indexed:!1,internalType:"int256"},{name:"ispFee1",type:"int256",indexed:!1,internalType:"int256"},{name:"uniAmount0",type:"int256",indexed:!1,internalType:"int256"},{name:"uniAmount1",type:"int256",indexed:!1,internalType:"int256"},{name:"uniFee0",type:"int256",indexed:!1,internalType:"int256"},{name:"uniFee1",type:"int256",indexed:!1,internalType:"int256"}],anonymous:!1},{type:"event",name:"ReferralEscrowUpdated",inputs:[{name:"_referralEscrow",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"ReferrerFeePaid",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_recipient",type:"address",indexed:!1,internalType:"address"},{name:"_token",type:"address",indexed:!1,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"CallerIsNotBidWall",inputs:[]},{type:"error",name:"CallerNotCreator",inputs:[{name:"_caller",type:"address",internalType:"address"}]},{type:"error",name:"CannotBeInitializedDirectly",inputs:[]},{type:"error",name:"CannotModifyLiquidityDuringFairLaunch",inputs:[]},{type:"error",name:"CannotSellTokenDuringFairLaunch",inputs:[]},{type:"error",name:"CreatorFeeInvalid",inputs:[]},{type:"error",name:"HookNotImplemented",inputs:[]},{type:"error",name:"InsufficientFlaunchFee",inputs:[{name:"_paid",type:"uint256",internalType:"uint256"},{name:"_required",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidPool",inputs:[]},{type:"error",name:"LockFailure",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"NotPoolManager",inputs:[]},{type:"error",name:"NotSelf",inputs:[]},{type:"error",name:"ProtocolFeeInvalid",inputs:[]},{type:"error",name:"RecipientZeroAddress",inputs:[]},{type:"error",name:"ReferrerFeeInvalid",inputs:[]},{type:"error",name:"SwapFeeInvalid",inputs:[]},{type:"error",name:"TokenNotFlaunched",inputs:[{name:"_flaunchesAt",type:"uint256",internalType:"uint256"}]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnknownPool",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}]}],k=({amount:e,slippage:t,swapType:a})=>{if(null==e)return 0n;return(e<0n?-e:e)*("EXACT_IN"===a?BigInt(1e18)-n.parseEther(t):BigInt(1e18)+n.parseEther(t))/BigInt(1e18)};function x(e,t){const{flAmount0:n,flAmount1:a,flFee0:i,flFee1:r,ispAmount0:s,ispAmount1:p,ispFee0:y,ispFee1:o,uniAmount0:u,uniAmount1:l,uniFee0:d,uniFee1:c}=e,m=n+s+u,T=a+p+l,b=i+y+d,f=r+o+c;let h,w;t?(w=m<0?"BUY":"SELL",h=b<0):(w=T<0?"BUY":"SELL",h=f<0);const g=m<0?-m:m,M=T<0?-T:T,I=b<0?-b:b,_=f<0?-f:f,v={isInUSDC:h,amount:t?h?I:_:h?_:I};return"BUY"===w?{type:w,delta:{coinsBought:t?M-(v.isInUSDC?0n:v.amount):g-(v.isInUSDC?0n:v.amount),usdcSold:t?g-(v.isInUSDC?v.amount:0n):M-(v.isInUSDC?v.amount:0n),fees:v}}:{type:w,delta:{coinsSold:t?M-(v.isInUSDC?0n:v.amount):g-(v.isInUSDC?0n:v.amount),usdcBought:t?g-(v.isInUSDC?v.amount:0n):M-(v.isInUSDC?v.amount:0n),fees:v}}}const A=[{type:"constructor",inputs:[{name:"_protocolOwner",type:"address",internalType:"address"},{name:"_flaunchFeeExemption",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"MINIMUM_USDC_MARKET_CAP",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"NATIVE_SCALAR",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"flaunchFeeExemption",inputs:[],outputs:[{name:"",type:"address",internalType:"contract FlaunchFeeExemption"}],stateMutability:"view"},{type:"function",name:"flaunchFeeThreshold",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getFlaunchingFee",inputs:[{name:"_sender",type:"address",internalType:"address"},{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMarketCap",inputs:[{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"getSqrtPriceX96",inputs:[{name:"",type:"address",internalType:"address"},{name:"_flipped",type:"bool",internalType:"bool"},{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"sqrtPriceX96_",type:"uint160",internalType:"uint160"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setFlaunchFeeThreshold",inputs:[{name:"_flaunchFeeThreshold",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"event",name:"FlaunchFeeThresholdUpdated",inputs:[{name:"_flaunchFeeThreshold",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"MarketCapTooSmall",inputs:[{name:"_usdcMarketCap",type:"uint256",internalType:"uint256"},{name:"_usdcMarketCapMinimum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}];class F{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:A,address:e})}getFlaunchingFee(e){return this.contract.read("getFlaunchingFee",{_sender:e.sender,_initialPriceParams:e.initialPriceParams})}getSqrtPriceX96(e){return this.contract.read("getSqrtPriceX96",{_flipped:!e.usdcIsCurrencyZero,_initialPriceParams:e.initialPriceParams,0:n.zeroAddress})}}class P{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.drift=n,!e)throw new Error("Address is required");this.contract=n.contract({abi:v,address:e})}getFeeCalculator({forFairLaunch:e}){return this.contract.read("getFeeCalculator",{_isFairLaunch:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}poolKey(e){return this.contract.read("poolKey",{_token:e})}getPoolFeeDistribution(e){return this.contract.read("getPoolFeeDistribution",{_poolId:e})}async getFlaunchingFee(e){const t=new F(await this.contract.read("initialPrice"),this.drift),n=await t.getFlaunchingFee(e);return k({amount:n,slippage:((e.slippagePercent??0)/100).toFixed(18).toString(),swapType:"EXACT_OUT"})}async watchPoolCreated({onPoolCreated:e,startBlockNumber:t}){let n;void 0!==t&&e({logs:[],isFetchingFromStart:!0});let a=t?t-1n:await this.drift.getBlockNumber();const i=async()=>{try{const t=await this.drift.getBlockNumber();if(t>a){const n=await this.contract.getEvents("PoolCreated",{fromBlock:a+1n,toBlock:t}),i=await Promise.all([...n].reverse().map(async e=>{const t=await this.drift.getBlock(e.blockNumber);return{...e,timestamp:1e3*Number(t?.timestamp)}}));i.length>0?e({logs:i,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),a=t}}catch(e){console.error("Error polling events:",e)}};return n=setInterval(i,5e3),this.pollPoolCreatedNow=i,{cleanup:()=>{n&&clearInterval(n),this.pollPoolCreatedNow=void 0},pollPoolCreatedNow:i}}async parseSwapTx(e,t){try{const n=await this.drift.getTransaction({hash:e});if(!n)return;const a=await this.drift.getBlock(n.blockNumber),i=1e3*Number(a?.timestamp),r=(await this.contract.getEvents("PoolSwap",{fromBlock:n.blockNumber,toBlock:n.blockNumber})).find(t=>t.transactionHash===e);if(!r)return;if(void 0===t)return{...r,timestamp:i};const s=x(r.args,t);return{...r,timestamp:i,type:s.type,delta:s.delta}}catch(e){return void console.error("Error parsing swap transaction:",e)}}async watchPoolSwap({onPoolSwap:e,usdcIsCurrencyZero:t,startBlockNumber:n,filterByPoolId:a}){let i;void 0!==n&&e({logs:[],isFetchingFromStart:!0});let r=n?n-1n:await this.drift.getBlockNumber();const s=async()=>{try{const n=await this.drift.getBlockNumber();if(n>r){const i=await this.contract.getEvents("PoolSwap",{fromBlock:r+1n,toBlock:n,filter:{poolId:a}}),s=await Promise.all([...i].reverse().map(async e=>{const n=await this.drift.getBlock(e.blockNumber),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const i=x(e.args,t);return{...e,timestamp:a,type:i.type,delta:i.delta}}));s.length>0?e({logs:s,isFetchingFromStart:!1}):e({logs:[],isFetchingFromStart:!1}),r=n}}catch(e){console.error("Error polling events:",e)}};return i=setInterval(s,5e3),this.pollPoolSwapNow=s,{cleanup:()=>{i&&clearInterval(i),this.pollPoolSwapNow=void 0},pollPoolSwapNow:s}}}const C=e=>n.hexToBigInt(e),S=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),D=[{type:"constructor",inputs:[{name:"initialOwner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"}],outputs:[{name:"amount",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"burn",inputs:[{name:"from",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"clear",inputs:[{name:"currency",type:"address",internalType:"Currency"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"collectProtocolFees",inputs:[{name:"recipient",type:"address",internalType:"address"},{name:"currency",type:"address",internalType:"Currency"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"amountCollected",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"donate",inputs:[{name:"key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"amount0",type:"uint256",internalType:"uint256"},{name:"amount1",type:"uint256",internalType:"uint256"},{name:"hookData",type:"bytes",internalType:"bytes"}],outputs:[{name:"delta",type:"int256",internalType:"BalanceDelta"}],stateMutability:"nonpayable"},{type:"function",name:"extsload",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"extsload",inputs:[{name:"startSlot",type:"bytes32",internalType:"bytes32"},{name:"nSlots",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bytes32[]",internalType:"bytes32[]"}],stateMutability:"view"},{type:"function",name:"extsload",inputs:[{name:"slots",type:"bytes32[]",internalType:"bytes32[]"}],outputs:[{name:"",type:"bytes32[]",internalType:"bytes32[]"}],stateMutability:"view"},{type:"function",name:"exttload",inputs:[{name:"slots",type:"bytes32[]",internalType:"bytes32[]"}],outputs:[{name:"",type:"bytes32[]",internalType:"bytes32[]"}],stateMutability:"view"},{type:"function",name:"exttload",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"sqrtPriceX96",type:"uint160",internalType:"uint160"}],outputs:[{name:"tick",type:"int24",internalType:"int24"}],stateMutability:"nonpayable"},{type:"function",name:"isOperator",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"operator",type:"address",internalType:"address"}],outputs:[{name:"isOperator",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"mint",inputs:[{name:"to",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"modifyLiquidity",inputs:[{name:"key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"params",type:"tuple",internalType:"struct IPoolManager.ModifyLiquidityParams",components:[{name:"tickLower",type:"int24",internalType:"int24"},{name:"tickUpper",type:"int24",internalType:"int24"},{name:"liquidityDelta",type:"int256",internalType:"int256"},{name:"salt",type:"bytes32",internalType:"bytes32"}]},{name:"hookData",type:"bytes",internalType:"bytes"}],outputs:[{name:"callerDelta",type:"int256",internalType:"BalanceDelta"},{name:"feesAccrued",type:"int256",internalType:"BalanceDelta"}],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"protocolFeeController",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"protocolFeesAccrued",inputs:[{name:"currency",type:"address",internalType:"Currency"}],outputs:[{name:"amount",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"setOperator",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"approved",type:"bool",internalType:"bool"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"setProtocolFee",inputs:[{name:"key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"newProtocolFee",type:"uint24",internalType:"uint24"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setProtocolFeeController",inputs:[{name:"controller",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"settle",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"payable"},{type:"function",name:"settleFor",inputs:[{name:"recipient",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"payable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"swap",inputs:[{name:"key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"params",type:"tuple",internalType:"struct IPoolManager.SwapParams",components:[{name:"zeroForOne",type:"bool",internalType:"bool"},{name:"amountSpecified",type:"int256",internalType:"int256"},{name:"sqrtPriceLimitX96",type:"uint160",internalType:"uint160"}]},{name:"hookData",type:"bytes",internalType:"bytes"}],outputs:[{name:"swapDelta",type:"int256",internalType:"BalanceDelta"}],stateMutability:"nonpayable"},{type:"function",name:"sync",inputs:[{name:"currency",type:"address",internalType:"Currency"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"take",inputs:[{name:"currency",type:"address",internalType:"Currency"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transfer",inputs:[{name:"receiver",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"receiver",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unlock",inputs:[{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"result",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"updateDynamicLPFee",inputs:[{name:"key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"newDynamicLPFee",type:"uint24",internalType:"uint24"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Donate",inputs:[{name:"id",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"amount0",type:"uint256",indexed:!1,internalType:"uint256"},{name:"amount1",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Initialize",inputs:[{name:"id",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"currency0",type:"address",indexed:!0,internalType:"Currency"},{name:"currency1",type:"address",indexed:!0,internalType:"Currency"},{name:"fee",type:"uint24",indexed:!1,internalType:"uint24"},{name:"tickSpacing",type:"int24",indexed:!1,internalType:"int24"},{name:"hooks",type:"address",indexed:!1,internalType:"contract IHooks"},{name:"sqrtPriceX96",type:"uint160",indexed:!1,internalType:"uint160"},{name:"tick",type:"int24",indexed:!1,internalType:"int24"}],anonymous:!1},{type:"event",name:"ModifyLiquidity",inputs:[{name:"id",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"tickLower",type:"int24",indexed:!1,internalType:"int24"},{name:"tickUpper",type:"int24",indexed:!1,internalType:"int24"},{name:"liquidityDelta",type:"int256",indexed:!1,internalType:"int256"},{name:"salt",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"OperatorSet",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ProtocolFeeControllerUpdated",inputs:[{name:"protocolFeeController",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ProtocolFeeUpdated",inputs:[{name:"id",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"protocolFee",type:"uint24",indexed:!1,internalType:"uint24"}],anonymous:!1},{type:"event",name:"Swap",inputs:[{name:"id",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"amount0",type:"int128",indexed:!1,internalType:"int128"},{name:"amount1",type:"int128",indexed:!1,internalType:"int128"},{name:"sqrtPriceX96",type:"uint160",indexed:!1,internalType:"uint160"},{name:"liquidity",type:"uint128",indexed:!1,internalType:"uint128"},{name:"tick",type:"int24",indexed:!1,internalType:"int24"},{name:"fee",type:"uint24",indexed:!1,internalType:"uint24"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"caller",type:"address",indexed:!1,internalType:"address"},{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyUnlocked",inputs:[]},{type:"error",name:"CurrenciesOutOfOrderOrEqual",inputs:[{name:"currency0",type:"address",internalType:"address"},{name:"currency1",type:"address",internalType:"address"}]},{type:"error",name:"CurrencyNotSettled",inputs:[]},{type:"error",name:"DelegateCallNotAllowed",inputs:[]},{type:"error",name:"InvalidCaller",inputs:[]},{type:"error",name:"ManagerLocked",inputs:[]},{type:"error",name:"MustClearExactPositiveDelta",inputs:[]},{type:"error",name:"NonzeroNativeValue",inputs:[]},{type:"error",name:"PoolNotInitialized",inputs:[]},{type:"error",name:"ProtocolFeeCurrencySynced",inputs:[]},{type:"error",name:"ProtocolFeeTooLarge",inputs:[{name:"fee",type:"uint24",internalType:"uint24"}]},{type:"error",name:"SwapAmountCannotBeZero",inputs:[]},{type:"error",name:"TickSpacingTooLarge",inputs:[{name:"tickSpacing",type:"int24",internalType:"int24"}]},{type:"error",name:"TickSpacingTooSmall",inputs:[{name:"tickSpacing",type:"int24",internalType:"int24"}]},{type:"error",name:"UnauthorizedDynamicLPFeeUpdate",inputs:[]}];class O{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:D,address:e})}poolStateSlot({poolId:e}){const t=S(6n);return n.keccak256(n.encodePacked(["bytes32","bytes32"],[e,t]))}async poolSlot0({poolId:e}){const t=this.poolStateSlot({poolId:e}),n=await this.contract.read("extsload",{slot:t}),a=Array.isArray(n)?n[0]:n,i=BigInt(a),r=i&(1n<<160n)-1n,s=Number(i>>160n&0xffffffn);return{sqrtPriceX96:r,tick:s>8388607?s-16777216:s,protocolFee:Number(i>>184n&0xffffffn),lpFee:Number(i>>208n&0xffffffn)}}async positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"}),p=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),y=this.poolStateSlot({poolId:e}),o=S(C(y)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[p,o])),l=await this.contract.read("extsload",{startSlot:u,nSlots:3n});let d;if(Array.isArray(l))d=l;else{const e=l;d=[0,1,2].map(t=>n.sliceHex(e,32*t,32*(t+1)))}return{liquidity:n.hexToBigInt(d[0]),feeGrowthInside0LastX128:n.hexToBigInt(d[1]),feeGrowthInside1LastX128:n.hexToBigInt(d[2])}}}const E=[{type:"constructor",inputs:[{name:"_poolManager",type:"address",internalType:"contract IPoolManager"}],stateMutability:"nonpayable"},{type:"function",name:"DEFAULT_ADMIN_ROLE",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"closePosition",inputs:[{name:"_poolKey",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"_tokenFees",type:"uint256",internalType:"uint256"},{name:"_nativeIsZero",type:"bool",internalType:"bool"}],outputs:[{name:"",type:"tuple",internalType:"struct FairLaunch.FairLaunchInfo",components:[{name:"startsAt",type:"uint256",internalType:"uint256"},{name:"endsAt",type:"uint256",internalType:"uint256"},{name:"initialTick",type:"int24",internalType:"int24"},{name:"revenue",type:"uint256",internalType:"uint256"},{name:"supply",type:"uint256",internalType:"uint256"},{name:"closed",type:"bool",internalType:"bool"}]}],stateMutability:"nonpayable"},{type:"function",name:"createPosition",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"},{name:"_initialTick",type:"int24",internalType:"int24"},{name:"_flaunchesAt",type:"uint256",internalType:"uint256"},{name:"_initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"_fairLaunchDuration",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct FairLaunch.FairLaunchInfo",components:[{name:"startsAt",type:"uint256",internalType:"uint256"},{name:"endsAt",type:"uint256",internalType:"uint256"},{name:"initialTick",type:"int24",internalType:"int24"},{name:"revenue",type:"uint256",internalType:"uint256"},{name:"supply",type:"uint256",internalType:"uint256"},{name:"closed",type:"bool",internalType:"bool"}]}],stateMutability:"nonpayable"},{type:"function",name:"fairLaunchInfo",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"",type:"tuple",internalType:"struct FairLaunch.FairLaunchInfo",components:[{name:"startsAt",type:"uint256",internalType:"uint256"},{name:"endsAt",type:"uint256",internalType:"uint256"},{name:"initialTick",type:"int24",internalType:"int24"},{name:"revenue",type:"uint256",internalType:"uint256"},{name:"supply",type:"uint256",internalType:"uint256"},{name:"closed",type:"bool",internalType:"bool"}]}],stateMutability:"view"},{type:"function",name:"fillFromPosition",inputs:[{name:"_poolKey",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"_amountSpecified",type:"int256",internalType:"int256"},{name:"_nativeIsZero",type:"bool",internalType:"bool"}],outputs:[{name:"beforeSwapDelta_",type:"int256",internalType:"BeforeSwapDelta"},{name:"balanceDelta_",type:"int256",internalType:"BalanceDelta"},{name:"fairLaunchInfo_",type:"tuple",internalType:"struct FairLaunch.FairLaunchInfo",components:[{name:"startsAt",type:"uint256",internalType:"uint256"},{name:"endsAt",type:"uint256",internalType:"uint256"},{name:"initialTick",type:"int24",internalType:"int24"},{name:"revenue",type:"uint256",internalType:"uint256"},{name:"supply",type:"uint256",internalType:"uint256"},{name:"closed",type:"bool",internalType:"bool"}]}],stateMutability:"nonpayable"},{type:"function",name:"getRoleAdmin",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"grantRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"hasRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"inFairLaunchWindow",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"initialSupply",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"_supply",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"modifyRevenue",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"},{name:"_revenue",type:"int256",internalType:"int256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"poolManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IPoolManager"}],stateMutability:"view"},{type:"function",name:"renounceRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"callerConfirmation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"revokeRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"FairLaunchCreated",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_tokens",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_startsAt",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_endsAt",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"FairLaunchEnded",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_revenue",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_supply",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_endedAt",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RoleAdminChanged",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"previousAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"newAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RoleGranted",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleRevoked",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AccessControlBadConfirmation",inputs:[]},{type:"error",name:"AccessControlUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"},{name:"neededRole",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"CannotModifyLiquidityDuringFairLaunch",inputs:[]},{type:"error",name:"CannotSellTokenDuringFairLaunch",inputs:[]},{type:"error",name:"NotPositionManager",inputs:[]}];class U{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:E,address:e})}async fairLaunchDuration({poolId:e}){const{startsAt:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return Number(n-t)}fairLaunchInfo({poolId:e}){return this.contract.read("fairLaunchInfo",{_poolId:e})}async isFairLaunchActive({poolId:e}){const{closed:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return!t&&!((new Date).getTime()/1e3>n)}}const R=[{type:"constructor",inputs:[{name:"_nativeToken",type:"address",internalType:"address"},{name:"_poolManager",type:"address",internalType:"address"},{name:"_protocolOwner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DEFAULT_ADMIN_ROLE",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"checkStalePosition",inputs:[{name:"_poolKey",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"_currentTick",type:"int24",internalType:"int24"},{name:"_nativeIsZero",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"closeBidWall",inputs:[{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"deposit",inputs:[{name:"_poolKey",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"_ethSwapAmount",type:"uint256",internalType:"uint256"},{name:"_currentTick",type:"int24",internalType:"int24"},{name:"_nativeIsZero",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getRoleAdmin",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"grantRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"hasRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isBidWallEnabled",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"lastPoolTransaction",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"_timestamp",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"nativeToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"poolInfo",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"disabled",type:"bool",internalType:"bool"},{name:"initialized",type:"bool",internalType:"bool"},{name:"tickLower",type:"int24",internalType:"int24"},{name:"tickUpper",type:"int24",internalType:"int24"},{name:"pendingETHFees",type:"uint256",internalType:"uint256"},{name:"cumulativeSwapFees",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"poolManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IPoolManager"}],stateMutability:"view"},{type:"function",name:"position",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"amount0_",type:"uint256",internalType:"uint256"},{name:"amount1_",type:"uint256",internalType:"uint256"},{name:"pendingEth_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"renounceRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"callerConfirmation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"revokeRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setDisabledState",inputs:[{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"_disable",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setStaleTimeWindow",inputs:[{name:"_staleTimeWindow",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setSwapFeeThreshold",inputs:[{name:"swapFeeThreshold",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"staleTimeWindow",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"event",name:"BidWallClosed",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_recipient",type:"address",indexed:!1,internalType:"address"},{name:"_eth",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"BidWallDeposit",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_added",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_pending",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"BidWallDisabledStateUpdated",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_disabled",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"BidWallInitialized",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_eth",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_tickLower",type:"int24",indexed:!1,internalType:"int24"},{name:"_tickUpper",type:"int24",indexed:!1,internalType:"int24"}],anonymous:!1},{type:"event",name:"BidWallRepositioned",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_eth",type:"uint256",indexed:!1,internalType:"uint256"},{name:"_tickLower",type:"int24",indexed:!1,internalType:"int24"},{name:"_tickUpper",type:"int24",indexed:!1,internalType:"int24"}],anonymous:!1},{type:"event",name:"BidWallRewardsTransferred",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_recipient",type:"address",indexed:!1,internalType:"address"},{name:"_tokens",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"FixedSwapFeeThresholdUpdated",inputs:[{name:"_newSwapFeeThreshold",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleAdminChanged",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"previousAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"newAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RoleGranted",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleRevoked",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"StaleTimeWindowUpdated",inputs:[{name:"_staleTimeWindow",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AccessControlBadConfirmation",inputs:[]},{type:"error",name:"AccessControlUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"},{name:"neededRole",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"CallerIsNotCreator",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"NotPositionManager",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}];class L{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:R,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const H=[{type:"constructor",inputs:[{name:"_positionManager",type:"address",internalType:"contract PositionManager"},{name:"_flaunchContract",type:"address",internalType:"contract Flaunch"},{name:"_flETH",type:"address",internalType:"contract IFLETH"},{name:"_poolSwap",type:"address",internalType:"contract PoolSwap"},{name:"_treasuryManagerFactory",type:"address",internalType:"contract ITreasuryManagerFactory"},{name:"_merkleAirdrop",type:"address",internalType:"contract IMerkleAirdrop"},{name:"_whitelistFairLaunch",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"calculateFee",inputs:[{name:"_premineAmount",type:"uint256",internalType:"uint256"},{name:"_slippage",type:"uint256",internalType:"uint256"},{name:"_initialPriceParams",type:"bytes",internalType:"bytes"}],outputs:[{name:"ethRequired_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"},{name:"_permissions",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"flETH",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFLETH"}],stateMutability:"view"},{type:"function",name:"flaunch",inputs:[{name:"_flaunchParams",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]},{name:"_trustedFeeSigner",type:"address",internalType:"address"},{name:"_premineSwapHookData",type:"bytes",internalType:"bytes"},{name:"_whitelistParams",type:"tuple",internalType:"struct FlaunchZap.WhitelistParams",components:[{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"},{name:"maxTokens",type:"uint256",internalType:"uint256"}]},{name:"_airdropParams",type:"tuple",internalType:"struct FlaunchZap.AirdropParams",components:[{name:"airdropIndex",type:"uint256",internalType:"uint256"},{name:"airdropAmount",type:"uint256",internalType:"uint256"},{name:"airdropEndTime",type:"uint256",internalType:"uint256"},{name:"merkleRoot",type:"bytes32",internalType:"bytes32"},{name:"merkleIPFSHash",type:"string",internalType:"string"}]},{name:"_treasuryManagerParams",type:"tuple",internalType:"struct FlaunchZap.TreasuryManagerParams",components:[{name:"manager",type:"address",internalType:"address"},{name:"permissions",type:"address",internalType:"address"},{name:"initializeData",type:"bytes",internalType:"bytes"},{name:"depositData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"ethSpent_",type:"uint256",internalType:"uint256"},{name:"deployedManager_",type:"address",internalType:"address"}],stateMutability:"payable"},{type:"function",name:"flaunchContract",inputs:[],outputs:[{name:"",type:"address",internalType:"contract Flaunch"}],stateMutability:"view"},{type:"function",name:"merkleAirdrop",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IMerkleAirdrop"}],stateMutability:"view"},{type:"function",name:"poolSwap",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PoolSwap"}],stateMutability:"view"},{type:"function",name:"positionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PositionManager"}],stateMutability:"view"},{type:"function",name:"treasuryManagerFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITreasuryManagerFactory"}],stateMutability:"view"},{type:"function",name:"whitelistFairLaunch",inputs:[],outputs:[{name:"",type:"address",internalType:"contract WhitelistFairLaunch"}],stateMutability:"view"},{type:"error",name:"CreatorCannotBeZero",inputs:[]},{type:"error",name:"InsufficientMemecoinsForAirdrop",inputs:[]}],B=["https://ipfs.io/ipfs/","https://dweb.link/ipfs/"];let N=0;const q=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7),n=B[N];return N=(N+1)%B.length,`${n}${t}`}return e},z=e=>{if(e.startsWith("ipfs://")){const t=e.slice(7);return B.map(e=>`${e}${t}`)}return[e]},K=5242880,W=async e=>{if(!/^https?:\/\//i.test(e))throw new Error(`Unsupported tokenURI protocol: ${e.slice(0,64)}`);return(await a.get(e,{timeout:15e3,maxRedirects:3,maxContentLength:K,maxBodyLength:K})).data},Z=async e=>{let t;for(const n of e)try{return await W(n)}catch(e){t=e}throw t},X=async e=>{const{bytes:t,mimeType:n}=(e=>{const t=e.split(",")[1]||e,n=atob(t),a=new Uint8Array(n.length);for(let e=0;e<n.length;e++)a[e]=n.charCodeAt(e);let i="image/png";return e.startsWith("data:")&&(i=e.split(";")[0].split(":")[1]),{bytes:a,mimeType:i}})(e.base64Image),i=new FormData;i.append("image",new Blob([t],{type:n}),`image.${n.split("/")[1]??"png"}`),i.append("name",e.name),i.append("symbol",e.symbol),i.append("description",e.description),e.websiteUrl&&i.append("website",e.websiteUrl),e.discordUrl&&i.append("discord",e.discordUrl),e.twitterUrl&&i.append("twitter",e.twitterUrl),e.telegramUrl&&i.append("telegram",e.telegramUrl);try{const t=await a.post(`${e.apiUrl}/upload`,i);return{tokenUri:t.data.tokenUri,image:t.data.image}}catch(e){if(a.isAxiosError(e))throw new Error(`Failed to upload token metadata: ${e.response?.data?.error||e.message}`);throw e}},Q=async(e,t,n)=>{const a=_[n.chainId];if(!a)throw new Error(`No ubi.fun API for chain ${n.chainId}; pin the metadata yourself and pass flaunch({ tokenUri })`);const{tokenUri:i}=await X({apiUrl:a,name:e,symbol:t,base64Image:n.metadata.base64Image,description:n.metadata.description,websiteUrl:n.metadata.websiteUrl,discordUrl:n.metadata.discordUrl,twitterUrl:n.metadata.twitterUrl,telegramUrl:n.metadata.telegramUrl});return i},V={MIN_TICK:-887220,MAX_TICK:887220},$=2n**192n,G=e=>{const t=n.concat([n.pad(e.currency0,{size:32}),n.pad(e.currency1,{size:32}),n.pad(n.toHex(e.fee),{size:32}),n.pad(n.toHex(e.tickSpacing),{size:32}),n.pad(e.hooks,{size:32})]);return n.keccak256(t)},Y=e=>{const[t,n]=e.currency0.toLowerCase()<e.currency1.toLowerCase()?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},j=({tick:e,tickSpacing:t,roundDown:n=!0})=>{if(e%t===0)return e;let a=Math.trunc(e/t)*t;return e<0&&e%t!==0&&(a-=t),n||(a+=t),a},J=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},ee=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},te=e=>{const t=e<0?BigInt(-e):BigInt(e);if(t>V.MAX_TICK)throw new Error("Tick out of range");let n=0n!=(1n&t)?0xfffcb933bd6fad37aa2d162d1a594001n:0x100000000000000000000000000000000n;0n!=(2n&t)&&(n=0xfff97272373d413259a46990580e213an*n>>128n),0n!=(4n&t)&&(n=0xfff2e50f5f656932ef12357cf3c7fdccn*n>>128n),0n!=(8n&t)&&(n=0xffe5caca7e10e4e61c3624eaa0941cd0n*n>>128n),0n!=(16n&t)&&(n=0xffcb9843d60f6159c9db58835c926644n*n>>128n),0n!=(32n&t)&&(n=0xff973b41fa98c081472e6896dfb254c0n*n>>128n),0n!=(64n&t)&&(n=0xff2ea16466c96a3843ec78b326b52861n*n>>128n),0n!=(128n&t)&&(n=0xfe5dee046a99a2a811c461f1969c3053n*n>>128n),0n!=(256n&t)&&(n=0xfcbe86c7900a88aedcffc83b479aa3a4n*n>>128n),0n!=(512n&t)&&(n=0xf987a7253ac413176f2b074cf7815e54n*n>>128n),0n!=(1024n&t)&&(n=0xf3392b0822b70005940c7a398e4b70f3n*n>>128n),0n!=(2048n&t)&&(n=0xe7159475a2c29b7443b29c7fa6e889d9n*n>>128n),0n!=(4096n&t)&&(n=0xd097f3bdfd2022b8845ad8f792aa5825n*n>>128n),0n!=(8192n&t)&&(n=0xa9f746462d870fdf8a65dc1f90e061e5n*n>>128n),0n!=(16384n&t)&&(n=0x70d869a156d2a1b890bb3df62baf32f7n*n>>128n),0n!=(32768n&t)&&(n=0x31be135f97d08fd981231505542fcfa6n*n>>128n),0n!=(65536n&t)&&(n=0x9aa508b5b7a84e1c677de54f3e99bc9n*n>>128n),0n!=(131072n&t)&&(n=0x5d6af8dedb81196699c329225ee604n*n>>128n),0n!=(262144n&t)&&(n=0x2216e584f5fa1ea926041bedfe98n*n>>128n),0n!=(524288n&t)&&(n=0x48a170391f7dc42444e8fa2n*n>>128n),e>0&&(n=(2n**256n-1n)/n);const a=n>>32n;return n%(1n<<32n)==0n?a:a+1n},ne=(e,t,n,a)=>{const i=te(a),r=te(t),s=te(n);let p=0n,y=0n;return i<=r?p=J(r,s,e):i<s?(p=J(i,s,e),y=ee(r,i,e)):y=ee(r,s,e),{amount0:p,amount1:y}};function ae(e,t,n){if(e>t&&([e,t]=[t,e]),e===t)return 0n;return n*e*t/(2n**96n*(t-e))}function ie(e,t,n){if(e>t&&([e,t]=[t,e]),e===t)return 0n;return n*2n**96n/(t-e)}function re(e){return e&&n.isAddress(e)&&e!==n.zeroAddress?n.encodeAbiParameters([{type:"address"}],[e]):"0x"}function se(e,t){return Y({currency0:p,currency1:e,fee:0,tickSpacing:60,hooks:t})}function pe(e){return e.toLowerCase()>p.toLowerCase()}function ye(e,t){return"buy"===e?pe(t):!pe(t)}const oe=4295128740n,ue=1461446703485210103287273052203988822378723970341n;function le({current:e,zeroForOne:t,amountIn:n,amountOut:a}){if(0n===e||n<=0n||a<=0n)return e;const i=t?a*$/(n*e):n*$/(a*e);return t?i<e?i:e:i>e?i:e}function de({current:e,zeroForOne:t,slippageBps:n}){if(!Number.isInteger(n)||n<0||n>=1e4)throw new Error(`slippageBps must be an integer in [0, 10000), got ${n}`);const a=function(e){if(e<2n)return e;let t=e,n=(t+e/t)/2n;for(;n<t;)t=n,n=(t+e/t)/2n;return t}(BigInt(t?1e4-n:1e4+n)*10n**18n/10000n),i=e*a/10n**9n;return t?i>oe?i:oe:i<ue?i:ue}class ce{constructor(e,n,a=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,this.chainId=e,this.drift=a,!n)throw new Error("Address is required");this.contract=a.contract({abi:H,address:n})}valueRequiredToFlaunch(e){const t=e.slippagePercent??0;if(!Number.isFinite(t)||t<0||t>100)throw new Error(`slippagePercent must be between 0 and 100, got ${t}`);return this.contract.read("calculateFee",{_premineAmount:e.premineAmount??0n,_slippage:BigInt(Math.round(100*t)),_initialPriceParams:e.initialPriceParams})}}class me extends ce{constructor(e,n,a=t.createDrift()){super(e,n,a)}async flaunch(e){if(e.fairLaunchPercent<0||e.fairLaunchPercent>95)throw new Error("fairLaunchPercent must be between 0 and 95");if(!Number.isFinite(e.creatorFeeAllocationPercent)||e.creatorFeeAllocationPercent<0||e.creatorFeeAllocationPercent>100)throw new Error(`creatorFeeAllocationPercent must be between 0 and 100, got ${e.creatorFeeAllocationPercent}`);if(e.fairLaunchPercent>0&&e.fairLaunchDuration<=0)throw new Error("fairLaunchDuration (seconds) is required when fairLaunchPercent > 0");const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(Math.round(100*e.fairLaunchPercent)),r=Math.round(100*e.creatorFeeAllocationPercent),s=await this.valueRequiredToFlaunch({premineAmount:e.premineAmount??0n,initialPriceParams:a,slippagePercent:e.premineAmount?5:0}),p={manager:e.treasuryManagerParams?.manager??n.zeroAddress,permissions:e.treasuryManagerParams?.permissions??n.zeroAddress,initializeData:e.treasuryManagerParams?.initializeData??"0x",depositData:e.treasuryManagerParams?.depositData??"0x"};return this.contract.write("flaunch",{_flaunchParams:{name:e.name,symbol:e.symbol,tokenUri:e.tokenUri,initialTokenFairLaunch:this.TOTAL_SUPPLY*i/10000n,fairLaunchDuration:BigInt(e.fairLaunchDuration),premineAmount:e.premineAmount??0n,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt??0n,initialPriceParams:a,feeCalculatorParams:"0x"},_trustedFeeSigner:n.zeroAddress,_premineSwapHookData:re(e.premineReferrer),_treasuryManagerParams:p,_whitelistParams:e.whitelistParams??{merkleRoot:n.zeroHash,merkleIPFSHash:"",maxTokens:0n},_airdropParams:e.airdropParams??{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:n.zeroHash,merkleIPFSHash:""}},{value:s})}async flaunchIPFS(e){const t=await Q(e.name,e.symbol,{chainId:this.chainId,metadata:e.metadata});return this.flaunch({...e,tokenUri:t})}async flaunchWithSplitManager(e){const t=10000000n,a=e.splitReceivers.map(e=>{if(!Number.isFinite(e.percent)||e.percent<=0||e.percent>=100)throw new Error(`splitReceiver percent must be in (0, 100), got ${e.percent} for ${e.address}`);return{recipient:e.address,share:(t=e.percent,BigInt(Math.round(1e5*t)))};var t}),i=a.reduce((e,t)=>e+t.share,0n);if(i>=t)throw new Error("splitReceivers total 100% or more; the creator must keep a share");const r=[{recipient:e.creator,share:t-i},...a],s=n.encodeAbiParameters([{type:"tuple",name:"params",components:[{type:"uint256",name:"creatorShare"},{type:"uint256",name:"ownerShare"},{type:"tuple[]",name:"recipientShares",components:[{type:"address",name:"recipient"},{type:"uint256",name:"share"}]}]}],[{creatorShare:0n,ownerShare:0n,recipientShares:r}]);return this.flaunch({...e,treasuryManagerParams:{manager:b[this.chainId],initializeData:s,depositData:"0x"}})}async flaunchIPFSWithSplitManager(e){const t=await Q(e.name,e.symbol,{chainId:this.chainId,metadata:e.metadata});return this.flaunchWithSplitManager({...e,tokenUri:t})}}const Te=[{type:"constructor",inputs:[{name:"_memecoinImplementation",type:"address",internalType:"address"},{name:"_baseURI",type:"string",internalType:"string"}],stateMutability:"nonpayable"},{type:"function",name:"MAX_CREATOR_ALLOCATION",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"MAX_FAIR_LAUNCH_TOKENS",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"MAX_SCHEDULE_DURATION",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"account",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"baseURI",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"burn",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"flaunch",inputs:[{name:"_params",type:"tuple",internalType:"struct PositionManager.FlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"initialTokenFairLaunch",type:"uint256",internalType:"uint256"},{name:"fairLaunchDuration",type:"uint256",internalType:"uint256"},{name:"premineAmount",type:"uint256",internalType:"uint256"},{name:"creator",type:"address",internalType:"address"},{name:"creatorFeeAllocation",type:"uint24",internalType:"uint24"},{name:"flaunchAt",type:"uint256",internalType:"uint256"},{name:"initialPriceParams",type:"bytes",internalType:"bytes"},{name:"feeCalculatorParams",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"memecoin_",type:"address",internalType:"address"},{name:"memecoinTreasury_",type:"address",internalType:"address payable"},{name:"tokenId_",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"getApproved",inputs:[{name:"id",type:"uint256",internalType:"uint256"}],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_positionManager",type:"address",internalType:"contract PositionManager"},{name:"_memecoinTreasuryImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isApprovedForAll",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"operator",type:"address",internalType:"address"}],outputs:[{name:"result",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"memecoin",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"memecoinImplementation",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"memecoinTreasury",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address payable"}],stateMutability:"view"},{type:"function",name:"memecoinTreasuryImplementation",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nextTokenId",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"id",type:"uint256",internalType:"uint256"}],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"poolId",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bytes32",internalType:"PoolId"}],stateMutability:"view"},{type:"function",name:"positionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PositionManager"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"isApproved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setBaseURI",inputs:[{name:"_baseURI",type:"string",internalType:"string"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMemecoinImplementation",inputs:[{name:"_memecoinImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMemecoinMetadata",inputs:[{name:"_memecoin",type:"address",internalType:"address"},{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMemecoinTreasuryImplementation",inputs:[{name:"_memecoinTreasuryImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"result",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"tokenId",inputs:[{name:"_memecoin",type:"address",internalType:"address"}],outputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokenURI",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"payable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"isApproved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"BaseURIUpdated",inputs:[{name:"_newBaseURI",type:"string",indexed:!1,internalType:"string"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MemecoinImplementationUpdated",inputs:[{name:"_newImplementation",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"MemecoinTreasuryImplementationUpdated",inputs:[{name:"_newImplementation",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AccountBalanceOverflow",inputs:[]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"BalanceQueryForZeroAddress",inputs:[]},{type:"error",name:"CallerIsNotPositionManager",inputs:[]},{type:"error",name:"CreatorFeeAllocationInvalid",inputs:[{name:"_allocation",type:"uint24",internalType:"uint24"},{name:"_maxAllocation",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidFlaunchSchedule",inputs:[]},{type:"error",name:"InvalidInitialSupply",inputs:[{name:"_initialSupply",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotOwnerNorApproved",inputs:[]},{type:"error",name:"PremineExceedsInitialAmount",inputs:[{name:"_buyAmount",type:"uint256",internalType:"uint256"},{name:"_initialSupply",type:"uint256",internalType:"uint256"}]},{type:"error",name:"TokenAlreadyExists",inputs:[]},{type:"error",name:"TokenDoesNotExist",inputs:[]},{type:"error",name:"TransferFromIncorrectOwner",inputs:[]},{type:"error",name:"TransferToNonERC721ReceiverImplementer",inputs:[]},{type:"error",name:"TransferToZeroAddress",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}];class be{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Te,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}memecoin(e){return this.contract.read("memecoin",{_tokenId:e})}}const fe=[{type:"constructor",inputs:[],stateMutability:"nonpayable"},{type:"function",name:"CLOCK_MODE",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"burn",inputs:[{name:"value",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"burnFrom",inputs:[{name:"account",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"checkpoints",inputs:[{name:"account",type:"address",internalType:"address"},{name:"pos",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"tuple",internalType:"struct ERC20VotesUpgradeable.Checkpoint",components:[{name:"fromBlock",type:"uint32",internalType:"uint32"},{name:"votes",type:"uint224",internalType:"uint224"}]}],stateMutability:"view"},{type:"function",name:"clock",inputs:[],outputs:[{name:"",type:"uint48",internalType:"uint48"}],stateMutability:"view"},{type:"function",name:"creator",inputs:[],outputs:[{name:"creator_",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"decreaseAllowance",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"subtractedValue",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"delegate",inputs:[{name:"delegatee",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegateBySig",inputs:[{name:"delegatee",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"expiry",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegates",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"flaunch",inputs:[],outputs:[{name:"",type:"address",internalType:"contract Flaunch"}],stateMutability:"view"},{type:"function",name:"getPastTotalSupply",inputs:[{name:"timepoint",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPastVotes",inputs:[{name:"account",type:"address",internalType:"address"},{name:"timepoint",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getVotes",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"increaseAllowance",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"addedValue",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"tokenUri_",type:"string",internalType:"string"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"mint",inputs:[{name:"_to",type:"address",internalType:"address"},{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"numCheckpoints",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint32",internalType:"uint32"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMetadata",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"_interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"tokenURI",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"treasury",inputs:[],outputs:[{name:"",type:"address",internalType:"address payable"}],stateMutability:"view"},{type:"function",name:"version",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DelegateChanged",inputs:[{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"fromDelegate",type:"address",indexed:!0,internalType:"address"},{name:"toDelegate",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DelegateVotesChanged",inputs:[{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"previousBalance",type:"uint256",indexed:!1,internalType:"uint256"},{name:"newBalance",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint8",indexed:!1,internalType:"uint8"}],anonymous:!1},{type:"event",name:"MetadataUpdated",inputs:[{name:"_name",type:"string",indexed:!1,internalType:"string"},{name:"_symbol",type:"string",indexed:!1,internalType:"string"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"CallerNotFlaunch",inputs:[]},{type:"error",name:"MintAddressIsZero",inputs:[]},{type:"error",name:"Permit2AllowanceIsFixedAtInfinity",inputs:[]}];class he{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:fe,address:e})}name(){return this.contract.read("name",{})}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}decimals(){return this.contract.read("decimals")}totalSupply(){return this.contract.read("totalSupply")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}allowance(e,t){return this.contract.read("allowance",{owner:e,spender:t})}}class we extends he{constructor(e,n=t.createDrift()){super(e,n)}approve(e,t){return this.contract.write("approve",{spender:e,amount:t})}}const ge=[{type:"constructor",inputs:[{name:"_poolManager",type:"address",internalType:"contract IPoolManager"}],stateMutability:"nonpayable"},{type:"function",name:"_quoteExactInput",inputs:[{name:"params",type:"tuple",internalType:"struct IV4Quoter.QuoteExactParams",components:[{name:"exactCurrency",type:"address",internalType:"Currency"},{name:"path",type:"tuple[]",internalType:"struct PathKey[]",components:[{name:"intermediateCurrency",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"},{name:"hookData",type:"bytes",internalType:"bytes"}]},{name:"exactAmount",type:"uint128",internalType:"uint128"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"_quoteExactInputSingle",inputs:[{name:"params",type:"tuple",internalType:"struct IV4Quoter.QuoteExactSingleParams",components:[{name:"poolKey",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"zeroForOne",type:"bool",internalType:"bool"},{name:"exactAmount",type:"uint128",internalType:"uint128"},{name:"hookData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"_quoteExactOutput",inputs:[{name:"params",type:"tuple",internalType:"struct IV4Quoter.QuoteExactParams",components:[{name:"exactCurrency",type:"address",internalType:"Currency"},{name:"path",type:"tuple[]",internalType:"struct PathKey[]",components:[{name:"intermediateCurrency",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"},{name:"hookData",type:"bytes",internalType:"bytes"}]},{name:"exactAmount",type:"uint128",internalType:"uint128"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"_quoteExactOutputSingle",inputs:[{name:"params",type:"tuple",internalType:"struct IV4Quoter.QuoteExactSingleParams",components:[{name:"poolKey",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"zeroForOne",type:"bool",internalType:"bool"},{name:"exactAmount",type:"uint128",internalType:"uint128"},{name:"hookData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"poolManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IPoolManager"}],stateMutability:"view"},{type:"function",name:"quoteExactInput",inputs:[{name:"params",type:"tuple",internalType:"struct IV4Quoter.QuoteExactParams",components:[{name:"exactCurrency",type:"address",internalType:"Currency"},{name:"path",type:"tuple[]",internalType:"struct PathKey[]",components:[{name:"intermediateCurrency",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"},{name:"hookData",type:"bytes",internalType:"bytes"}]},{name:"exactAmount",type:"uint128",internalType:"uint128"}]}],outputs:[{name:"amountOut",type:"uint256",internalType:"uint256"},{name:"gasEstimate",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"quoteExactInputSingle",inputs:[{name:"params",type:"tuple",internalType:"struct IV4Quoter.QuoteExactSingleParams",components:[{name:"poolKey",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"zeroForOne",type:"bool",internalType:"bool"},{name:"exactAmount",type:"uint128",internalType:"uint128"},{name:"hookData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"amountOut",type:"uint256",internalType:"uint256"},{name:"gasEstimate",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"quoteExactOutput",inputs:[{name:"params",type:"tuple",internalType:"struct IV4Quoter.QuoteExactParams",components:[{name:"exactCurrency",type:"address",internalType:"Currency"},{name:"path",type:"tuple[]",internalType:"struct PathKey[]",components:[{name:"intermediateCurrency",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"},{name:"hookData",type:"bytes",internalType:"bytes"}]},{name:"exactAmount",type:"uint128",internalType:"uint128"}]}],outputs:[{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"gasEstimate",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"quoteExactOutputSingle",inputs:[{name:"params",type:"tuple",internalType:"struct IV4Quoter.QuoteExactSingleParams",components:[{name:"poolKey",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"zeroForOne",type:"bool",internalType:"bool"},{name:"exactAmount",type:"uint128",internalType:"uint128"},{name:"hookData",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"gasEstimate",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"unlockCallback",inputs:[{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"},{type:"error",name:"NotEnoughLiquidity",inputs:[{name:"poolId",type:"bytes32",internalType:"PoolId"}]},{type:"error",name:"NotPoolManager",inputs:[]},{type:"error",name:"NotSelf",inputs:[]},{type:"error",name:"QuoteSwap",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UnexpectedCallSuccess",inputs:[]},{type:"error",name:"UnexpectedRevertBytes",inputs:[{name:"revertData",type:"bytes",internalType:"bytes"}]}];class Me{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:ge,address:n})}async getBuyQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:n,referrer:a}){return(await this.contract.simulateWrite("quoteExactInputSingle",{params:{poolKey:se(e,n),zeroForOne:ye("buy",e),exactAmount:t,hookData:re(a)}})).amountOut}async getSellQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:n,referrer:a}){return(await this.contract.simulateWrite("quoteExactInputSingle",{params:{poolKey:se(e,n),zeroForOne:ye("sell",e),exactAmount:t,hookData:re(a)}})).amountOut}async getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:n,referrer:a}){return(await this.contract.simulateWrite("quoteExactOutputSingle",{params:{poolKey:se(e,n),zeroForOne:ye("buy",e),exactAmount:t,hookData:re(a)}})).amountIn}}const Ie=[{type:"constructor",inputs:[{name:"_nativeToken",type:"address",internalType:"address"},{name:"_indexer",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"allocateFees",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"},{name:"_recipient",type:"address",internalType:"address"},{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"balances",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"indexer",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IndexerSubscriber"}],stateMutability:"view"},{type:"function",name:"nativeToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setIndexer",inputs:[{name:"_indexer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"totalFeesAllocated",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],outputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"withdrawFees",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_unwrap",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Deposit",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_payee",type:"address",indexed:!1,internalType:"address"},{name:"_token",type:"address",indexed:!1,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Withdrawal",inputs:[{name:"_sender",type:"address",indexed:!1,internalType:"address"},{name:"_recipient",type:"address",indexed:!1,internalType:"address"},{name:"_token",type:"address",indexed:!1,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"PoolIdNotIndexed",inputs:[]},{type:"error",name:"RecipientZeroAddress",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}];class _e{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ie,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}}class ve extends _e{constructor(e,n=t.createDrift()){super(e,n)}withdrawFees(e){return this.contract.write("withdrawFees",{_recipient:e,_unwrap:!1})}}const ke=[{type:"constructor",inputs:[{name:"_nativeToken",type:"address",internalType:"address"},{name:"_protocolOwner",type:"address",internalType:"address"},{name:"_unwrapNativeClaims",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"DEFAULT_ADMIN_ROLE",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allocations",inputs:[{name:"_user",type:"address",internalType:"address"},{name:"_token",type:"address",internalType:"address"}],outputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"assignTokens",inputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"},{name:"_user",type:"address",internalType:"address"},{name:"_token",type:"address",internalType:"address"},{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"claimTokens",inputs:[{name:"_tokens",type:"address[]",internalType:"address[]"},{name:"_recipient",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"getRoleAdmin",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"grantRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"hasRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"nativeToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"poolSwap",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PoolSwap"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"renounceRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"callerConfirmation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"revokeRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPoolSwap",inputs:[{name:"_poolSwap",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"unwrapNativeClaims",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleAdminChanged",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"previousAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"newAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RoleGranted",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleRevoked",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"TokensAssigned",inputs:[{name:"_poolId",type:"bytes32",indexed:!0,internalType:"PoolId"},{name:"_user",type:"address",indexed:!0,internalType:"address"},{name:"_token",type:"address",indexed:!0,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"TokensClaimed",inputs:[{name:"_user",type:"address",indexed:!0,internalType:"address"},{name:"_recipient",type:"address",indexed:!1,internalType:"address"},{name:"_token",type:"address",indexed:!0,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AccessControlBadConfirmation",inputs:[]},{type:"error",name:"AccessControlUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"},{name:"neededRole",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"MismatchedTokensAndLimits",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"NotPositionManager",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}];class xe{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:ke,address:e})}allocations(e,t){return this.contract.read("allocations",{_user:e,_token:t})}}class Ae extends xe{constructor(e,n=t.createDrift()){super(e,n)}claimTokens(e,t){return this.contract.write("claimTokens",{_tokens:e,_recipient:t})}}const Fe=[{type:"constructor",inputs:[{name:"_manager",type:"address",internalType:"contract IPoolManager"}],stateMutability:"nonpayable"},{type:"function",name:"manager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IPoolManager"}],stateMutability:"view"},{type:"function",name:"swap",inputs:[{name:"_key",type:"tuple",internalType:"struct PoolKey",components:[{name:"currency0",type:"address",internalType:"Currency"},{name:"currency1",type:"address",internalType:"Currency"},{name:"fee",type:"uint24",internalType:"uint24"},{name:"tickSpacing",type:"int24",internalType:"int24"},{name:"hooks",type:"address",internalType:"contract IHooks"}]},{name:"_params",type:"tuple",internalType:"struct IPoolManager.SwapParams",components:[{name:"zeroForOne",type:"bool",internalType:"bool"},{name:"amountSpecified",type:"int256",internalType:"int256"},{name:"sqrtPriceLimitX96",type:"uint160",internalType:"uint160"}]},{name:"_referrer",type:"address",internalType:"address"}],outputs:[{name:"delta_",type:"int256",internalType:"BalanceDelta"}],stateMutability:"payable"},{type:"function",name:"unlockCallback",inputs:[{name:"rawData",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"nonpayable"}];class Pe{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Fe,address:e})}}class Ce extends Pe{constructor(e,n=t.createDrift()){super(e,n)}swap(e){return this.contract.write("swap",{_key:e.poolKey,_params:{zeroForOne:e.zeroForOne,amountSpecified:e.amountSpecified,sqrtPriceLimitX96:e.sqrtPriceLimitX96},_referrer:e.referrer??n.zeroAddress})}}const Se=[{type:"constructor",inputs:[{name:"_usdc",type:"address",internalType:"address"},{name:"_signer",type:"address",internalType:"address"},{name:"_protocolOwner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"bind",inputs:[{name:"_handleHash",type:"bytes32",internalType:"bytes32"},{name:"_wallet",type:"address",internalType:"address"},{name:"_deadline",type:"uint256",internalType:"uint256"},{name:"_signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"bindNonce",inputs:[{name:"_handleHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"_nonce",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"claim",inputs:[{name:"_handleHash",type:"bytes32",internalType:"bytes32"},{name:"_manager",type:"address",internalType:"address"}],outputs:[{name:"amount_",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"escrowAddress",inputs:[{name:"_handleHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"escrowOf",inputs:[{name:"_handleHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"_escrow",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setSigner",inputs:[{name:"_signer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"signer",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"sweep",inputs:[{name:"_handleHash",type:"bytes32",internalType:"bytes32"},{name:"_token",type:"address",internalType:"contract IERC20"}],outputs:[{name:"amount_",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"usdc",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IERC20"}],stateMutability:"view"},{type:"function",name:"walletOf",inputs:[{name:"_handleHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"_wallet",type:"address",internalType:"address"}],stateMutability:"view"},{type:"event",name:"EscrowDeployed",inputs:[{name:"_handleHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"_escrow",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"HandleBound",inputs:[{name:"_handleHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"_wallet",type:"address",indexed:!0,internalType:"address"},{name:"_nonce",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"HandleClaimed",inputs:[{name:"_handleHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"_wallet",type:"address",indexed:!0,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"SignerUpdated",inputs:[{name:"_signer",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"DeadlineExpired",inputs:[{name:"_deadline",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ECDSAInvalidSignature",inputs:[]},{type:"error",name:"ECDSAInvalidSignatureLength",inputs:[{name:"length",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ECDSAInvalidSignatureS",inputs:[{name:"s",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"HandleNotBound",inputs:[{name:"_handleHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidSignature",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"ZeroAddress",inputs:[]}],De=/^@?[A-Za-z0-9_]{1,15}$/;function Oe(e){return e.trim().replace(/^@/,"").toLowerCase()}function Ee(e){const t=e.trim();if(!De.test(t))throw new Error(`Invalid X handle "${e}": expected 1-15 letters, digits or underscores, with an optional leading @`);return n.keccak256(n.stringToBytes(Oe(t)))}class Ue{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Se,address:e})}escrowAddress(e){return this.contract.read("escrowAddress",{_handleHash:Ee(e)})}boundWallet(e){return this.contract.read("walletOf",{_handleHash:Ee(e)})}bindNonce(e){return this.contract.read("bindNonce",{_handleHash:Ee(e)})}}class Re extends Ue{constructor(e,n=t.createDrift()){super(e,n)}bind(e){return this.contract.write("bind",{_handleHash:Ee(e.handle),_wallet:e.wallet,_deadline:e.deadline,_signature:e.signature})}claim(e,t){return this.contract.write("claim",{_handleHash:Ee(e),_manager:t})}sweep(e,t){return this.contract.write("sweep",{_handleHash:Ee(e),_token:t})}}const Le=[{type:"function",name:"acceptRoot",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claim",inputs:[{name:"_account",type:"address",internalType:"address"},{name:"_reward",type:"address",internalType:"address"},{name:"_claimable",type:"uint256",internalType:"uint256"},{name:"_proof",type:"bytes32[]",internalType:"bytes32[]"}],outputs:[{name:"amount",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"claimed",inputs:[{name:"_account",type:"address",internalType:"address"},{name:"_reward",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"ipfsHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"isUpdater",inputs:[{name:"_updater",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pendingRoot",inputs:[],outputs:[{name:"root",type:"bytes32",internalType:"bytes32"},{name:"ipfsHash",type:"bytes32",internalType:"bytes32"},{name:"validAt",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"revokePendingRoot",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"root",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"setOwner",inputs:[{name:"_newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setRoot",inputs:[{name:"_newRoot",type:"bytes32",internalType:"bytes32"},{name:"_newIpfsHash",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setRootUpdater",inputs:[{name:"_updater",type:"address",internalType:"address"},{name:"_active",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTimelock",inputs:[{name:"_newTimelock",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"submitRoot",inputs:[{name:"_newRoot",type:"bytes32",internalType:"bytes32"},{name:"_newIpfsHash",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"timelock",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}];class He{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Le,address:e})}root(){return this.contract.read("root")}pendingRoot(){return this.contract.read("pendingRoot")}claimed(e,t){return this.contract.read("claimed",{_account:e,_reward:t})}}class Be extends He{constructor(e,n=t.createDrift()){super(e,n)}claim(e){return this.contract.write("claim",{_account:e.account,_reward:e.reward,_claimable:e.claimable,_proof:e.proof})}}const Ne=[{type:"constructor",inputs:[{name:"_protocolOwner",type:"address",internalType:"address"},{name:"_feeEscrow",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DEFAULT_ADMIN_ROLE",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"approveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"approvedManagerImplementation",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"_approved",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"deployAndInitializeManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"deployManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[{name:"manager_",type:"address",internalType:"address payable"}],stateMutability:"nonpayable"},{type:"function",name:"feeEscrow",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeEscrow"}],stateMutability:"view"},{type:"function",name:"getRoleAdmin",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"grantRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"hasRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"managerImplementation",inputs:[{name:"_manager",type:"address",internalType:"address"}],outputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"renounceRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"callerConfirmation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"revokeRole",inputs:[{name:"role",type:"bytes32",internalType:"bytes32"},{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"unapproveManager",inputs:[{name:"_managerImplementation",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"ManagerDeployed",inputs:[{name:"_manager",type:"address",indexed:!0,internalType:"address"},{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationApproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ManagerImplementationUnapproved",inputs:[{name:"_managerImplementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleAdminChanged",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"previousAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"newAdminRole",type:"bytes32",indexed:!0,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RoleGranted",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RoleRevoked",inputs:[{name:"role",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"sender",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AccessControlBadConfirmation",inputs:[]},{type:"error",name:"AccessControlUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"},{name:"neededRole",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnknownManagerImplemention",inputs:[]}];class qe{constructor(e,n,a=t.createDrift(),i){if(!n)throw new Error("Address is required");this.contract=a.contract({abi:Ne,address:n}),this.chainId=e,this.publicClient=i}async getManagerDeployedAddressFromTx(e){if(!this.publicClient)throw new Error("Public client is required");const t=await this.publicClient.waitForTransactionReceipt({hash:e}),a=n.parseEventLogs({abi:Ne,eventName:"ManagerDeployed",logs:t.logs}).find(e=>e.address.toLowerCase()===this.contract.address.toLowerCase());if(!a)throw new Error("ManagerDeployed event not found in transaction logs");return a.args._manager}}class ze extends qe{constructor(e,n,a=t.createDrift(),i){super(e,n,a,i)}}const Ke=[{type:"receive",stateMutability:"payable"},{type:"function",name:"balances",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"amount_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"claim",inputs:[],outputs:[{name:"amount_",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"deposit",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"feeEscrowRegistry",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeEscrowRegistry"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialized",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidCreator",inputs:[{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"managerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"permissions",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IManagerPermissions"}],stateMutability:"view"},{type:"function",name:"rescue",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_recipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPermissions",inputs:[{name:"_permissions",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"tokenTimelock",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_unlockedAt",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferManagerOwnership",inputs:[{name:"_newManagerOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"treasuryManagerFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract TreasuryManagerFactory"}],stateMutability:"view"},{type:"event",name:"ManagerOwnershipTransferred",inputs:[{name:"_previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"_newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"PermissionsUpdated",inputs:[{name:"_permissions",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"TreasuryEscrowed",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_owner",type:"address",indexed:!1,internalType:"address"},{name:"_sender",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"TreasuryReclaimed",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_sender",type:"address",indexed:!1,internalType:"address"},{name:"_recipient",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"TreasuryTimelocked",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_unlockedAt",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"FlaunchContractNotValid",inputs:[]},{type:"error",name:"InvalidCreator",inputs:[]},{type:"error",name:"NotInitialized",inputs:[]},{type:"error",name:"NotManagerOwner",inputs:[]},{type:"error",name:"TokenTimelocked",inputs:[{name:"_unlockedAt",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UnknownFlaunchToken",inputs:[]}];class We{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ke,address:e})}permissions(){return this.contract.read("permissions")}managerOwner(){return this.contract.read("managerOwner")}balances(e){return this.contract.read("balances",{_recipient:e})}}class Ze extends We{constructor(e,n=t.createDrift()){super(e,n)}deposit(e,t,n){return this.contract.write("deposit",{_flaunchToken:e,_creator:t,_data:n})}setPermissions(e){return this.contract.write("setPermissions",{_permissions:e})}transferManagerOwnership(e){return this.contract.write("transferManagerOwnership",{_newManagerOwner:e})}claim(){return this.contract.write("claim")}}const Xe=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call3[]",name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bool",name:"allowFailure",type:"bool"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call3Value[]",name:"calls",type:"tuple[]"}],name:"aggregate3Value",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"getBasefee",outputs:[{internalType:"uint256",name:"basefee",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getChainId",outputs:[{internalType:"uint256",name:"chainid",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall3.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall3.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"payable",type:"function"}];class Qe{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:Xe,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map(e=>({target:e.target,allowFailure:!0,callData:e.callData}))})}}class Ve{constructor(e,n=t.createDrift(),a){this.TICK_SPACING=60,this.chainId=e,this.drift=n,this.publicClient=a,this.resolveIPFS=q,this.readPositionManager=new P(u[this.chainId],n),this.readFeeEscrow=new _e(f[this.chainId],n),this.readReferralEscrow=new xe(h[this.chainId],n),this.readFlaunchZap=new ce(this.chainId,o[this.chainId],n),this.readPoolManager=new O(M[this.chainId],n),this.readFairLaunch=new U(d[this.chainId],n),this.readBidWall=new L(c[this.chainId],n),this.readFlaunch=new be(l[this.chainId],n),this.readQuoter=new Me(this.chainId,I[this.chainId],n),this.readXHandleClaims=new Ue(w[this.chainId],n),this.readUbiPool=new He(g[this.chainId],n)}isValidCoin(e){return this.readPositionManager.isValidCoin(e)}getPositionManagerAddress(){return this.readPositionManager.contract.address}getFlaunchAddress(){return this.readFlaunch.contract.address}getFairLaunchAddress(){return this.readFairLaunch.contract.address}getBidWallAddress(){return this.readBidWall.contract.address}async getFlaunchTokenIdForMemecoin(e){const t=await this.readFlaunch.tokenId(e);return{flaunchAddress:this.getFlaunchAddress(),tokenId:t}}tokenUriCandidates(e){return this.resolveIPFS===q?z(e):[this.resolveIPFS(e)]}async getCoinMetadata(e){const t=new he(e,this.drift),n=await t.name(),a=await t.symbol(),i=await t.tokenURI(),r=await Z(this.tokenUriCandidates(i));return{name:n,symbol:a,description:r.description??"",image:r.image?this.resolveIPFS(r.image):"",external_link:r.websiteUrl??r.website??"",collaborators:r.collaborators??[],discordUrl:r.discordUrl??"",twitterUrl:r.twitterUrl??r.twitter??"",telegramUrl:r.telegramUrl??r.telegram??""}}async getCoinMetadataFromTokenId(e,t){const n=new be(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e,t=9,n=500){if(!Number.isInteger(t)||t<1)throw new Error(`batchSize must be a positive integer, got ${t}`);if(!Number.isFinite(n)||n<0)throw new Error(`batchDelay must be >= 0, got ${n}`);const a=new Qe(this.drift),i=e.map(e=>this.readFlaunch.contract.encodeFunctionData("memecoin",{_tokenId:e.tokenId})),r=(await a.aggregate3(i.map((t,n)=>({target:e[n].flaunch,callData:t})))).map(e=>this.readFlaunch.contract.decodeFunctionReturn("memecoin",e.returnData)),s=[];r.forEach(()=>{s.push(this.drift.adapter.encodeFunctionData({abi:fe,fn:"name"})),s.push(this.drift.adapter.encodeFunctionData({abi:fe,fn:"symbol"})),s.push(this.drift.adapter.encodeFunctionData({abi:fe,fn:"tokenURI"}))});const p=await a.aggregate3(s.map((e,t)=>({target:r[Math.floor(t/3)],callData:e}))),y=[];for(let e=0;e<r.length;e++){const t=this.drift.adapter.decodeFunctionReturn({abi:fe,fn:"name",data:p[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:fe,fn:"symbol",data:p[3*e+1].returnData}),a=this.drift.adapter.decodeFunctionReturn({abi:fe,fn:"tokenURI",data:p[3*e+2].returnData});y.push({name:t,symbol:n,tokenURI:a,coinAddress:r[e]})}const o=[];for(let e=0;e<y.length;e+=t){const a=y.slice(e,e+t),i=await Promise.all(a.map(async({name:e,symbol:t,tokenURI:n,coinAddress:a})=>{const i=await Z(this.tokenUriCandidates(n));return{coinAddress:a,name:e,symbol:t,description:i.description??"",image:i.image?this.resolveIPFS(i.image):"",external_link:i.websiteUrl??i.website??"",collaborators:i.collaborators??[],discordUrl:i.discordUrl??"",twitterUrl:i.twitterUrl??i.twitter??"",telegramUrl:i.telegramUrl??i.telegram??""}}));o.push(...i),e+t<y.length&&await new Promise(e=>setTimeout(e,n))}return o}watchPoolCreated(e){return this.readPositionManager.watchPoolCreated(e)}async getPoolCreatedFromTx(e){if(!this.publicClient)throw new Error("Public client is required to fetch transaction data");const t=await this.publicClient.getTransactionReceipt({hash:e});if(!t)throw new Error(`Transaction not found: ${e}`);for(const e of t.logs)try{const t=n.decodeEventLog({abi:v,data:e.data,topics:e.topics});if("PoolCreated"===t.eventName)return{poolId:t.args._poolId,memecoin:t.args._memecoin,memecoinTreasury:t.args._memecoinTreasury,tokenId:t.args._tokenId,currencyFlipped:t.args._currencyFlipped,flaunchFee:t.args._flaunchFee,params:t.args._params}}catch(e){continue}return null}async watchPoolSwap(e){return this.readPositionManager.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?await this.poolId(e.filterByCoin):void 0,usdcIsCurrencyZero:e.filterByCoin?this.usdcIsCurrencyZero(e.filterByCoin):void 0})}positionInfo(e){return this.readPoolManager.positionInfo(e)}async currentTick(e){const t=await this.poolId(e);return(await this.readPoolManager.poolSlot0({poolId:t})).tick}async currentSqrtPriceX96(e){const t=await this.poolId(e);return(await this.readPoolManager.poolSlot0({poolId:t})).sqrtPriceX96}async coinPriceInUSDC(e){const t=this.usdcIsCurrencyZero(e),n=await this.currentTick(e),a=Math.pow(1.0001,n);return((t?1/a:a)*Math.pow(10,12)).toFixed(18)}async coinMarketCapInUSDC(e){const t=await this.coinPriceInUSDC(e);return(1e11*parseFloat(t)).toFixed(2)}async fairLaunchInfo(e){const t=await this.poolId(e);return this.readFairLaunch.fairLaunchInfo({poolId:t})}async isFairLaunchActive(e){const t=await this.poolId(e);return this.readFairLaunch.isFairLaunchActive({poolId:t})}async fairLaunchDuration(e){const t=await this.poolId(e);return this.readFairLaunch.fairLaunchDuration({poolId:t})}async initialTick(e){const t=await this.poolId(e);return(await this.readFairLaunch.fairLaunchInfo({poolId:t})).initialTick}async fairLaunchUSDCOnlyPosition(e){const t=await this.poolId(e),n=await this.initialTick(e),a=await this.currentTick(e),i=this.usdcIsCurrencyZero(e);let r,s;i?(r=j({tick:n+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),s=r+this.TICK_SPACING):(s=j({tick:n-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),r=s-this.TICK_SPACING);const{liquidity:p}=await this.readPoolManager.positionInfo({poolId:t,owner:this.getFairLaunchAddress(),tickLower:r,tickUpper:s,salt:""}),{amount0:y,amount1:o}=ne(p,r,s,a),[u,l]=i?[y,o]:[o,y];return{usdcAmount:u,coinAmount:l,tickLower:r,tickUpper:s}}async fairLaunchCoinOnlyPosition(e){const t=await this.poolId(e),n=await this.initialTick(e),a=await this.currentTick(e),i=this.usdcIsCurrencyZero(e);let r,s;i?(r=V.MIN_TICK,s=j({tick:n-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(r=j({tick:n+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),s=V.MAX_TICK);const{liquidity:p}=await this.readPoolManager.positionInfo({poolId:t,owner:this.getFairLaunchAddress(),tickLower:r,tickUpper:s,salt:""}),{amount0:y,amount1:o}=ne(p,r,s,a),[u,l]=i?[y,o]:[o,y];return{usdcAmount:u,coinAmount:l,tickLower:r,tickUpper:s}}async bidWallPosition(e){const t=await this.poolId(e),n=this.usdcIsCurrencyZero(e),{amount0_:a,amount1_:i,pendingEth_:r}=await this.readBidWall.position({poolId:t}),{tickLower:s,tickUpper:p}=await this.readBidWall.poolInfo({poolId:t}),[y,o]=n?[a,i]:[i,a];return{usdcAmount:y,coinAmount:o,pendingUsdc:r,tickLower:s,tickUpper:p}}creatorRevenue(e){return this.readFeeEscrow.balances(e)}referralBalance(e,t){return this.readReferralEscrow.allocations(e,t)}splitBalance(e,t){return new We(e,this.drift).balances(t)}async treasuryManagerInfo(e){const t=new We(e,this.drift),[n,a]=await Promise.all([t.managerOwner(),t.permissions()]);return{managerOwner:n,permissions:a}}async getUbiEntitlement(e){const t=_[this.chainId];if(!t)throw new Error(`No ubi.fun API for chain ${this.chainId}`);return(await a.get(`${t}/ubi/${e.toLowerCase()}`)).data}async claimableUbi(e){const t=await this.getUbiEntitlement(e);if(!t.cumulativeWei||!t.proof)return{claimable:0n,entitlement:t};if(t.root){const e=await this.readUbiPool.root();if(t.root.toLowerCase()!==e.toLowerCase())return{claimable:0n,entitlement:t}}const n=BigInt(t.cumulativeWei),a=await this.readUbiPool.claimed(e,p);return{claimable:n>a?n-a:0n,entitlement:t}}async poolId(e){return G(se(e,this.getPositionManagerAddress()))}getFlaunchingFee(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readPositionManager.getFlaunchingFee({sender:e.sender,initialPriceParams:a,slippagePercent:e.slippagePercent})}valueRequiredToFlaunch(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]);return this.readFlaunchZap.valueRequiredToFlaunch({premineAmount:e.premineAmount,initialPriceParams:a,slippagePercent:e.slippagePercent})}getSellQuoteExactInput({coinAddress:e,amountIn:t,referrer:n}){return this.readQuoter.getSellQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:this.getPositionManagerAddress(),referrer:n})}getBuyQuoteExactInput({coinAddress:e,amountIn:t,referrer:n}){return this.readQuoter.getBuyQuoteExactInput({coinAddress:e,amountIn:t,positionManagerAddress:this.getPositionManagerAddress(),referrer:n})}getBuyQuoteExactOutput({coinAddress:e,amountOut:t,referrer:n}){return this.readQuoter.getBuyQuoteExactOutput({coinAddress:e,coinOut:t,positionManagerAddress:this.getPositionManagerAddress(),referrer:n})}usdcIsCurrencyZero(e){return pe(e)}setIPFSResolver(e){this.resolveIPFS=e}async parseSwapTx(e){return this.readPositionManager.parseSwapTx(e.txHash,e.usdcIsCurrencyZero)}async getCoinInfo(e){const t=new he(e,this.drift),[a,i]=await Promise.all([t.totalSupply(),t.decimals()]);return{totalSupply:a,decimals:i,formattedTotalSupplyInDecimals:parseFloat(n.formatUnits(a,i))}}isFlaunchTokenApprovedForAll(e,t){return this.drift.read({abi:n.erc721Abi,address:this.getFlaunchAddress(),fn:"isApprovedForAll",args:{owner:e,operator:t}})}}class $e extends Ve{constructor(e,n=t.createDrift(),a){super(e,n,a),this.readWriteFeeEscrow=new ve(f[this.chainId],n),this.readWriteReferralEscrow=new Ae(h[this.chainId],n),this.readWriteFlaunchZap=new me(this.chainId,o[this.chainId],n),this.readWritePoolSwap=new Ce(m[this.chainId],n),this.readWriteXHandleClaims=new Re(w[this.chainId],n),this.readWriteUbiPool=new Be(g[this.chainId],n),this.readWriteTreasuryManagerFactory=new ze(this.chainId,T[this.chainId],n,this.publicClient)}flaunch(e){return this.readWriteFlaunchZap.flaunch(e)}flaunchIPFS(e){return this.readWriteFlaunchZap.flaunchIPFS(e)}flaunchWithSplitManager(e){return this.readWriteFlaunchZap.flaunchWithSplitManager(e)}flaunchIPFSWithSplitManager(e){return this.readWriteFlaunchZap.flaunchIPFSWithSplitManager(e)}createUBI(e){return this.flaunch(e)}createUBIIPFS(e){return this.flaunchIPFS(e)}createUBIWithSplitManager(e){return this.flaunchWithSplitManager(e)}createUBIIPFSWithSplitManager(e){return this.flaunchIPFSWithSplitManager(e)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new he(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async usdcBalance(){const e=await this.drift.getSignerAddress(),t=new he(p,this.drift);return await t.contract.cache.clear(),t.balanceOf(e)}async swapAllowance(e){const t=await this.drift.getSignerAddress(),n=new he(e,this.drift);return await n.contract.cache.clear(),n.allowance(t,this.readWritePoolSwap.contract.address)}approveSwapInput(e,t){return new we(e,this.drift).approve(this.readWritePoolSwap.contract.address,t)}async buyCoin(e){return this.executeSwap({coinAddress:e.coinAddress,side:"buy",amountIn:e.amountIn,slippagePercent:e.slippagePercent,referrer:e.referrer})}async sellCoin(e){return this.executeSwap({coinAddress:e.coinAddress,side:"sell",amountIn:e.amountIn,slippagePercent:e.slippagePercent,referrer:e.referrer})}async executeSwap(e){const t="buy"===e.side?p:e.coinAddress,n=await this.swapAllowance(t);if(n<e.amountIn)throw new Error(`Insufficient ${"buy"===e.side?"USDC":"coin"} allowance to PoolSwap: have ${n}, need ${e.amountIn}. Call approveSwapInput first.`);const a=await this.currentSqrtPriceX96(e.coinAddress);if(0n===a)throw new Error("Pool has no observed price yet; try again after the first swap");const i="buy"===e.side?await this.getBuyQuoteExactInput({coinAddress:e.coinAddress,amountIn:e.amountIn,referrer:e.referrer}):await this.getSellQuoteExactInput({coinAddress:e.coinAddress,amountIn:e.amountIn,referrer:e.referrer}),r=ye(e.side,e.coinAddress);return this.readWritePoolSwap.swap({poolKey:se(e.coinAddress,this.getPositionManagerAddress()),zeroForOne:r,amountSpecified:-e.amountIn,sqrtPriceLimitX96:de({current:le({current:a,zeroForOne:r,amountIn:e.amountIn,amountOut:i}),zeroForOne:r,slippageBps:Math.round(100*(e.slippagePercent??5))}),referrer:e.referrer})}async withdrawCreatorRevenue(e){const t=e?.recipient??await this.drift.getSignerAddress();return this.readWriteFeeEscrow.withdrawFees(t)}claimReferralBalance(e,t){return this.readWriteReferralEscrow.claimTokens(e,t)}claimSplitEarnings(e){return new Ze(e,this.drift).claim()}async claimUbi(e){const t=e??await this.drift.getSignerAddress(),{claimable:n,entitlement:a}=await this.claimableUbi(t);if(0n===n||!a.cumulativeWei||!a.proof)throw new Error("Nothing claimable for this address right now");return this.readWriteUbiPool.claim({account:t,reward:p,claimable:BigInt(a.cumulativeWei),proof:a.proof})}treasuryManagerSetPermissions(e,t){return new Ze(e,this.drift).setPermissions(t)}treasuryManagerTransferOwnership(e,t){return new Ze(e,this.drift).transferManagerOwnership(t)}setFlaunchTokenApprovalForAll(e,t){return this.drift.write({abi:n.erc721Abi,address:this.getFlaunchAddress(),fn:"setApprovalForAll",args:{operator:e,approved:t}})}async addToTreasuryManager(e,t,n,a="0x"){const i=new Ze(e,this.drift),r={flaunch:this.getFlaunchAddress(),tokenId:t},s=n??await this.drift.getSignerAddress();return i.deposit(r,s,a)}}const Ge=n.defineChain({id:r,name:"Arc",nativeCurrency:{name:"USD Coin",symbol:"USDC",decimals:18},rpcUrls:{default:{http:["https://rpc.blockdaemon.mainnet.arc.io"]}},blockExplorers:{default:{name:"Arc Explorer",url:"https://explorer.arc.io"}}}),Ye=n.defineChain({id:s,name:"Arc Testnet",testnet:!0,nativeCurrency:{name:"USD Coin",symbol:"USDC",decimals:18},rpcUrls:{default:{http:["https://arc-testnet.drpc.org","https://rpc.testnet.arc.network"]}},blockExplorers:{default:{name:"Arcscan",url:"https://testnet.arcscan.app"}}}),je={[Ge.id]:Ge,[Ye.id]:Ye};function Je(e){const{publicClient:n,walletClient:a}=e;if(!n.chain)throw new Error("publicClient must be configured with a chain");return a?t.createDrift({adapter:i.viemAdapter({publicClient:n,walletClient:a})}):t.createDrift({adapter:i.viemAdapter({publicClient:n})})}function et(e){const{publicClient:t,walletClient:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;return n?new $e(a,Je({publicClient:t,walletClient:n}),t):new Ve(a,Je({publicClient:t}),t)}const tt=n.parseAbi(["function call(address to, uint256 value, bytes data)"]);function nt(e,t){if(!e.chain)throw new Error("publicClient must be configured with a chain");return n.createWalletClient({chain:e.chain,transport:n.http()}).extend(e=>({get account(){return{address:t,type:"json-rpc"}},getAddresses:async()=>[t],requestAddresses:async()=>[t],async writeContract(e){const t=e.address,a=e.value??0n,i=n.encodeFunctionData({abi:e.abi,functionName:e.functionName,args:e.args});return n.encodeFunctionData({abi:tt,functionName:"call",args:[t,a,i]})},async sendTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:tt,functionName:"call",args:[t,a,i]})},async signTransaction(e){const t=e.to,a=e.value??0n,i=e.data??"0x";return n.encodeFunctionData({abi:tt,functionName:"call",args:[t,a,i]})}}))}function at(e){const{publicClient:t,walletAddress:n}=e;if(!t.chain)throw new Error("publicClient must be configured with a chain");const a=t.chain.id;if(n){const e=Je({publicClient:t,walletClient:nt(t,n)});return new $e(a,e)}{const e=Je({publicClient:t});return new Ve(a,e)}}function it(e){const t=n.decodeFunctionData({abi:tt,data:e});return{to:t.args[0],value:t.args[1],data:t.args[2]}}const rt={ReadFlaunchSDK:Ve,ReadWriteFlaunchSDK:$e},st={ReadUbiSDK:Ve,ReadWriteUbiSDK:$e};e.ARC_MAINNET_CHAIN_ID=r,e.ARC_TESTNET_CHAIN_ID=s,e.AddressFeeSplitManagerAbi=[{type:"constructor",inputs:[{name:"_treasuryManagerFactory",type:"address",internalType:"address"},{name:"_feeEscrowRegistry",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"MAX_CREATOR_SHARE",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"MAX_OWNER_SHARE",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"VALID_SHARE_TOTAL",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"amountClaimed",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"_claimed",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"balances",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"balance_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"claim",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"claimableOwnerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"creator",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_creator",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"creatorFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"creatorShare",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"creatorTotalClaimed",inputs:[{name:"_creator",type:"address",internalType:"address"}],outputs:[{name:"_claimed",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deposit",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"feeEscrowRegistry",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFeeEscrowRegistry"}],stateMutability:"view"},{type:"function",name:"flaunchTokenInternalIds",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_internalId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCreatorFee",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"creatorFee_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getOwnerFee",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"ownerFee_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPoolId",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]}],outputs:[{name:"poolId_",type:"bytes32",internalType:"PoolId"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initialized",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"internalIds",inputs:[{name:"_internalId",type:"uint256",internalType:"uint256"}],outputs:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"isValidCreator",inputs:[{name:"_creator",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidRecipient",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"managerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"managerOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nextInternalId",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"ownerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"ownerShare",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingCreatorFees",inputs:[{name:"_recipient",type:"address",internalType:"address"}],outputs:[{name:"balance_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingOwnerFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permissions",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IManagerPermissions"}],stateMutability:"view"},{type:"function",name:"recipientShare",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rescue",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_recipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setCreator",inputs:[{name:"_flaunchToken",type:"tuple",internalType:"struct ITreasuryManager.FlaunchToken",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"_creator",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPermissions",inputs:[{name:"_permissions",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"splitFees",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokenPoolId",inputs:[{name:"_internalId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_poolId",type:"bytes32",internalType:"PoolId"}],stateMutability:"view"},{type:"function",name:"tokenTimelock",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_unlockedAt",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokenTotalClaimed",inputs:[{name:"_flaunch",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"_claimed",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"tokens",inputs:[{name:"_creator",type:"address",internalType:"address"}],outputs:[{name:"flaunchTokens_",type:"tuple[]",internalType:"struct ITreasuryManager.FlaunchToken[]",components:[{name:"flaunch",type:"address",internalType:"contract Flaunch"},{name:"tokenId",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"transferManagerOwnership",inputs:[{name:"_newManagerOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferRecipientShare",inputs:[{name:"_newRecipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"treasuryManagerFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract TreasuryManagerFactory"}],stateMutability:"view"},{type:"event",name:"CreatorShareInitialized",inputs:[{name:"_creatorShare",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"CreatorUpdated",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_creator",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"ETHReceivedFromUnknownSource",inputs:[{name:"_sender",type:"address",indexed:!0,internalType:"address"},{name:"_amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ManagerInitialized",inputs:[{name:"_owner",type:"address",indexed:!1,internalType:"address"},{name:"_params",type:"tuple",indexed:!1,internalType:"struct AddressFeeSplitManager.InitializeParams",components:[{name:"creatorShare",type:"uint256",internalType:"uint256"},{name:"ownerShare",type:"uint256",internalType:"uint256"},{name:"recipientShares",type:"tuple[]",internalType:"struct AddressFeeSplitManager.RecipientShare[]",components:[{name:"recipient",type:"address",internalType:"address"},{name:"share",type:"uint256",internalType:"uint256"}]}]}],anonymous:!1},{type:"event",name:"ManagerOwnershipTransferred",inputs:[{name:"_previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"_newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnerShareInitialized",inputs:[{name:"_ownerShare",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PermissionsUpdated",inputs:[{name:"_permissions",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"RecipientAdded",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_share",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RecipientShareTransferred",inputs:[{name:"_oldRecipient",type:"address",indexed:!0,internalType:"address"},{name:"_newRecipient",type:"address",indexed:!0,internalType:"address"},{name:"_share",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"RevenueClaimed",inputs:[{name:"_recipient",type:"address",indexed:!0,internalType:"address"},{name:"_amountClaimed",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"TreasuryEscrowed",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_owner",type:"address",indexed:!1,internalType:"address"},{name:"_sender",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"TreasuryReclaimed",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_sender",type:"address",indexed:!1,internalType:"address"},{name:"_recipient",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"TreasuryTimelocked",inputs:[{name:"_flaunch",type:"address",indexed:!0,internalType:"address"},{name:"_tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"_unlockedAt",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"CreatorShareAlreadyInitialized",inputs:[]},{type:"error",name:"FlaunchContractNotValid",inputs:[]},{type:"error",name:"InsufficientSharesToTransfer",inputs:[]},{type:"error",name:"InvalidClaimer",inputs:[]},{type:"error",name:"InvalidCreator",inputs:[]},{type:"error",name:"InvalidCreatorAddress",inputs:[]},{type:"error",name:"InvalidCreatorShare",inputs:[]},{type:"error",name:"InvalidOwnerShare",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidRecipientShareTotal",inputs:[{name:"_share",type:"uint256",internalType:"uint256"},{name:"_validShare",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidShareTotal",inputs:[]},{type:"error",name:"InvalidShareTransferRecipient",inputs:[]},{type:"error",name:"NotInitialized",inputs:[]},{type:"error",name:"NotManagerOwner",inputs:[]},{type:"error",name:"OwnerShareAlreadyInitialized",inputs:[]},{type:"error",name:"Reentrancy",inputs:[]},{type:"error",name:"TokenTimelocked",inputs:[{name:"_unlockedAt",type:"uint256",internalType:"uint256"}]},{type:"error",name:"UnableToSendRevenue",inputs:[{name:"_reason",type:"bytes",internalType:"bytes"}]},{type:"error",name:"UnknownFlaunchToken",inputs:[]},{type:"error",name:"UnknownPoolId",inputs:[]}],e.AddressFeeSplitManagerAddress=b,e.ApiBaseUrl=_,e.BidWallAddress=c,e.BidwallAbi=R,e.FairLaunchAbi=E,e.FairLaunchAddress=d,e.FeeEscrowAbi=Ie,e.FeeEscrowAddress=f,e.FlaunchAbi=Te,e.FlaunchAddress=l,e.FlaunchPositionManagerAbi=v,e.FlaunchPositionManagerAddress=u,e.FlaunchSDK=rt,e.FlaunchZapAbi=H,e.FlaunchZapAddress=o,e.HANDLE_RE=De,e.InitialPriceAbi=A,e.MemecoinAbi=fe,e.MulticallAbi=Xe,e.NativeTokenAddress=y,e.PoolManagerAbi=D,e.PoolManagerAddress=M,e.PoolSwapAbi=Fe,e.PoolSwapAddress=m,e.Q192=$,e.Q96=2n**96n,e.QuoterAbi=ge,e.QuoterAddress=I,e.ReadFlaunchSDK=Ve,e.ReadUbiSDK=Ve,e.ReadWriteFlaunchSDK=$e,e.ReadWriteUbiSDK=$e,e.ReferralEscrowAbi=ke,e.ReferralEscrowAddress=h,e.TICK_SPACING=60,e.TickFinder=V,e.TreasuryManagerAbi=Ke,e.TreasuryManagerFactoryAbi=Ne,e.TreasuryManagerFactoryAddress=T,e.USDC_ADDRESS=p,e.UbiSDK=st,e.UniversalRewardsDistributorAbi=Le,e.UniversalRewardsDistributorAddress=g,e.XHandleClaimsAbi=Se,e.XHandleClaimsAddress=w,e.arc=Ge,e.arcTestnet=Ye,e.bytes32ToUint256=C,e.calculateUnderlyingTokenBalances=ne,e.chainIdToChain=je,e.coinPoolKey=se,e.createCallDataWalletClient=nt,e.createDrift=Je,e.createFlaunch=et,e.createFlaunchCalldata=at,e.createUBICalldata=at,e.createUbiSDK=et,e.decodeCallData=it,e.encodedCallAbi=tt,e.expectedEndSqrtPriceX96=le,e.fetchTokenUriMetadata=W,e.fetchTokenUriMetadataWithFallback=Z,e.generateTokenUri=Q,e.getAmountWithSlippage=k,e.getAmountsForLiquidity=e=>{if(0n===e.liquidity)return{amount0:0n,amount1:0n};const t=te(e.currentTick);let n=te(e.tickLower),a=te(e.tickUpper);n>a&&([n,a]=[a,n]);let i=0n,r=0n;return t<=n?i=J(n,a,e.liquidity):t<a?(i=J(t,a,e.liquidity),r=ee(n,t,e.liquidity)):r=ee(n,a,e.liquidity),{amount0:i,amount1:r}},e.getLiquidityFromAmounts=e=>{const t=te(e.currentTick);let n=te(e.tickLower),a=te(e.tickUpper);if(n>a&&([n,a]=[a,n]),t<=n)return ae(n,a,e.amount0);if(t<a){const i=ae(t,a,e.amount0),r=ie(n,t,e.amount1);return i<r?i:r}return ie(n,a,e.amount1)},e.getNearestUsableTick=({tick:e,tickSpacing:t})=>{const n=Math.round(e/t)*t;return Math.max(V.MIN_TICK,Math.min(V.MAX_TICK,n))},e.getPoolId=G,e.getSqrtPriceX96FromTick=te,e.getValidTick=j,e.handleHashOf=Ee,e.maxLiquidityForAmount0Precise=ae,e.maxLiquidityForAmount1=ie,e.normalizeHandle=Oe,e.orderPoolKey=Y,e.parseCall=async function(e){return it(await e())},e.parseSwapData=x,e.priceRatioToTick=({priceInput:e,isDirection1Per0:t,decimals0:n,decimals1:a,spacing:i,shouldGetNearestUsableTick:r=!0})=>{if(!e||isNaN(Number(e)))return 0;const s=Number(e);try{let e;e=t?s/Math.pow(10,n-a):1/s/Math.pow(10,n-a);const p=Math.log(e)/Math.log(1.0001);return r?j({tick:Math.round(p),tickSpacing:i}):Math.round(p)}catch(e){console.error("Error converting price to tick:",e);const t=Math.floor(Math.log(s)/Math.log(1.0001));return r?j({tick:t,tickSpacing:i}):t}},e.referrerHookData=re,e.resolveIPFS=q,e.resolveIPFSCandidates=z,e.sqrtPriceLimit=de,e.swapDirection=ye,e.uint256ToBytes32=S,e.uploadToUbiApi=X,e.usdcIsCurrencyZero=pe});
2
+ //# sourceMappingURL=index.umd.cjs.map