@flaunch/sdk 0.3.1 → 0.4.1
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.
- package/README.md +78 -0
- package/dist/abi/BidWallV1_1.d.ts +740 -0
- package/dist/abi/BidWallV1_1.d.ts.map +1 -0
- package/dist/abi/FairLaunchV1_1.d.ts +522 -0
- package/dist/abi/FairLaunchV1_1.d.ts.map +1 -0
- package/dist/abi/FastFlaunchZap.d.ts +30 -20
- package/dist/abi/FastFlaunchZap.d.ts.map +1 -1
- package/dist/abi/FlaunchPositionManagerV1_1.d.ts +2053 -0
- package/dist/abi/FlaunchPositionManagerV1_1.d.ts.map +1 -0
- package/dist/abi/FlaunchV1_1.d.ts +850 -0
- package/dist/abi/FlaunchV1_1.d.ts.map +1 -0
- package/dist/abi/FlaunchZap.d.ts +330 -0
- package/dist/abi/FlaunchZap.d.ts.map +1 -0
- package/dist/abi/Multicall.d.ts +333 -0
- package/dist/abi/Multicall.d.ts.map +1 -0
- package/dist/abi/RevenueManager.d.ts +648 -0
- package/dist/abi/RevenueManager.d.ts.map +1 -0
- package/dist/abi/TreasuryManagerFactory.d.ts +434 -0
- package/dist/abi/TreasuryManagerFactory.d.ts.map +1 -0
- package/dist/abi/index.cjs +27 -58
- package/dist/abi/index.cjs.map +1 -1
- package/dist/abi/index.js +27 -58
- package/dist/abi/index.js.map +1 -1
- package/dist/addresses/index.cjs +127 -91
- package/dist/addresses/index.cjs.map +1 -1
- package/dist/addresses/index.js +121 -92
- package/dist/addresses/index.js.map +1 -1
- package/dist/addresses.d.ts +7 -0
- package/dist/addresses.d.ts.map +1 -1
- package/dist/clients/BidWallClient.d.ts +20 -0
- package/dist/clients/BidWallClient.d.ts.map +1 -1
- package/dist/clients/BidWallV1_1Client.d.ts +46 -0
- package/dist/clients/BidWallV1_1Client.d.ts.map +1 -0
- package/dist/clients/FairLaunchClient.d.ts +20 -0
- package/dist/clients/FairLaunchClient.d.ts.map +1 -1
- package/dist/clients/FairLaunchV1_1Client.d.ts +50 -0
- package/dist/clients/FairLaunchV1_1Client.d.ts.map +1 -0
- package/dist/clients/FastFlaunchClient.d.ts +40 -0
- package/dist/clients/FastFlaunchClient.d.ts.map +1 -1
- package/dist/clients/FlaunchClient.d.ts +26 -0
- package/dist/clients/FlaunchClient.d.ts.map +1 -1
- package/dist/clients/FlaunchPositionManagerV1_1Client.d.ts +90 -0
- package/dist/clients/FlaunchPositionManagerV1_1Client.d.ts.map +1 -0
- package/dist/clients/FlaunchV1_1Client.d.ts +31 -0
- package/dist/clients/FlaunchV1_1Client.d.ts.map +1 -0
- package/dist/clients/FlaunchZapClient.d.ts +70 -0
- package/dist/clients/FlaunchZapClient.d.ts.map +1 -0
- package/dist/clients/MemecoinClient.d.ts +27 -0
- package/dist/clients/MemecoinClient.d.ts.map +1 -1
- package/dist/clients/MulticallClient.d.ts +16 -0
- package/dist/clients/MulticallClient.d.ts.map +1 -0
- package/dist/clients/Permit2Client.d.ts +17 -0
- package/dist/clients/Permit2Client.d.ts.map +1 -1
- package/dist/clients/QuoterClient.d.ts +39 -3
- package/dist/clients/QuoterClient.d.ts.map +1 -1
- package/dist/clients/RevenueManagerClient.d.ts +68 -0
- package/dist/clients/RevenueManagerClient.d.ts.map +1 -0
- package/dist/clients/StateViewClient.d.ts +30 -0
- package/dist/clients/StateViewClient.d.ts.map +1 -1
- package/dist/clients/TreasuryManagerFactoryClient.d.ts +24 -0
- package/dist/clients/TreasuryManagerFactoryClient.d.ts.map +1 -0
- package/dist/helpers/chainIdToChain.d.ts +5 -0
- package/dist/helpers/chainIdToChain.d.ts.map +1 -0
- package/dist/helpers/index.cjs +5310 -0
- package/dist/helpers/index.cjs.map +1 -1
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +5313 -4
- package/dist/helpers/index.js.map +1 -1
- package/dist/hooks/FlaunchPositionManagerHooks.d.ts +42 -0
- package/dist/hooks/FlaunchPositionManagerHooks.d.ts.map +1 -1
- package/dist/hooks/index.cjs +95 -0
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +94 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.cjs.js +17284 -11191
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +17282 -11197
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/sdk/FlaunchSDK.d.ts +342 -15
- package/dist/sdk/FlaunchSDK.d.ts.map +1 -1
- package/dist/utils/universalRouter.d.ts +2 -0
- package/dist/utils/universalRouter.d.ts.map +1 -1
- package/package.json +8 -3
package/dist/index.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@uniswap/v3-sdk")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@uniswap/v3-sdk"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.v3Sdk)}(this,(function(e,t,n,a,i){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(a);const o=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_payee",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",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"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",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"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",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:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"premineInfo",outputs:[{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"},{internalType:"bool",name:"_unwrap",type:"bool"}],name:"withdrawFees",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],p=e=>e.startsWith("ipfs://")?`https://gateway.pinata.cloud/ipfs/${e.slice(7)}`:e,y=async e=>{try{const t={pinataOptions:{cidVersion:1},pinataMetadata:{name:e.name||null,keyvalues:e.metadata||{}},pinataContent:e.json},n=await s.default.post("https://api.pinata.cloud/pinning/pinJSONToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"application/json"}});return{IpfsHash:n.data.IpfsHash,PinSize:n.data.PinSize,Timestamp:n.data.Timestamp,isDuplicate:n.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload JSON to IPFS: ${e.response?.data?.message||e.message}`);throw e}},u=async e=>{try{const t=new FormData,n=e.base64Image.split(",")[1]||e.base64Image,a=atob(n),i=[];for(let e=0;e<a.length;e+=1024){const t=a.slice(e,e+1024),n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);const r=new Uint8Array(n);i.push(r)}let r="image/png";e.base64Image.startsWith("data:")&&(r=e.base64Image.split(";")[0].split(":")[1]);const o=new Blob(i,{type:r}),p=e.name||`image.${r.split("/")[1]}`,y=new File([o],p,{type:r});t.append("file",y);const u={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(u));const l={cidVersion:1};t.append("pinataOptions",JSON.stringify(l));const d=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:d.data.IpfsHash,PinSize:d.data.PinSize,Timestamp:d.data.Timestamp,isDuplicate:d.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to IPFS: ${e.response?.data?.message||e.message}`);throw e}},l=async(e,t)=>{const n=await u({pinataConfig:t.pinataConfig,base64Image:t.metadata.base64Image}),a={name:e,description:t.metadata.description,image:`ipfs://${n.IpfsHash}`,external_link:t.metadata.websiteUrl,collaborators:[],discordUrl:t.metadata.discordUrl,twitterUrl:t.metadata.twitterUrl,telegramUrl:t.metadata.telegramUrl};return`ipfs://${(await y({pinataConfig:t.pinataConfig,json:a})).IpfsHash}`};class d{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:o,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}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({blockNumber: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 watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero: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({blockNumber:e.blockNumber}),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const{flAmount0:i,flAmount1:r,flFee0:s,flFee1:o,ispAmount0:p,ispAmount1:y,ispFee0:u,ispFee1:l,uniAmount0:d,uniAmount1:c,uniFee0:m,uniFee1:T}=e.args,b=i+p+d,h=r+y+c,f=s+u+m,g=o+l+T;let w,I;t?(I=b<0?"BUY":"SELL",w=f<0):(I=h<0?"BUY":"SELL",w=g<0);const x=b<0?-b:b,k=h<0?-h:h,v=f<0?-f:f,P=g<0?-g:g,F={isInFLETH:w,amount:t?w?v:P:w?P:v};return"BUY"===I?{...e,timestamp:a,type:I,delta:{coinsBought:t?k-(F.isInFLETH?0n:F.amount):x-(F.isInFLETH?0n:F.amount),flETHSold:t?x-(F.isInFLETH?F.amount:0n):k-(F.isInFLETH?F.amount:0n),fees:F}}:{...e,timestamp:a,type:I,delta:{coinsSold:t?k-(F.isInFLETH?0n:F.amount):x-(F.isInFLETH?0n:F.amount),flETHBought:t?x-(F.isInFLETH?F.amount:0n):k-(F.isInFLETH?F.amount:0n),fees:F}}})));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}}}class c extends d{constructor(e,n=t.createDrift()){super(e,n)}flaunch({flaunchingETHFees:e,name:t,symbol:a,tokenUri:i,fairLaunchPercent:r,initialMarketCapUSD:s,creator:o,creatorFeeAllocationPercent:p,flaunchAt:y,premineAmount:u}){const l=n.parseUnits(s.toString(),6),d=n.encodeAbiParameters([{type:"uint256"}],[l]),c=BigInt(100*r),m=100*p;return this.contract.write("flaunch",{_params:{name:t,symbol:a,tokenUri:i,initialTokenFairLaunch:this.TOTAL_SUPPLY*c/10000n,premineAmount:u??0n,creator:o,creatorFeeAllocation:m,flaunchAt:y??0n,initialPriceParams:d,feeCalculatorParams:"0x"}},{value:e,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({flaunchingETHFees:e,name:t,symbol:n,fairLaunchPercent:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o,premineAmount:p,metadata:y,pinataConfig:u}){const d=await l(t,{metadata:y,pinataConfig:u});return this.flaunch({flaunchingETHFees:e,name:t,symbol:n,tokenUri:d,fairLaunchPercent:a,initialMarketCapUSD:i,creator:r,creatorFeeAllocationPercent:s,flaunchAt:o,premineAmount:p})}}const m=e=>n.hexToBigInt(e),T=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),b=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyUnlocked",type:"error"},{inputs:[{internalType:"address",name:"currency0",type:"address"},{internalType:"address",name:"currency1",type:"address"}],name:"CurrenciesOutOfOrderOrEqual",type:"error"},{inputs:[],name:"CurrencyNotSettled",type:"error"},{inputs:[],name:"DelegateCallNotAllowed",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"ManagerLocked",type:"error"},{inputs:[],name:"MustClearExactPositiveDelta",type:"error"},{inputs:[],name:"NonzeroNativeValue",type:"error"},{inputs:[],name:"PoolNotInitialized",type:"error"},{inputs:[],name:"ProtocolFeeCurrencySynced",type:"error"},{inputs:[{internalType:"uint24",name:"fee",type:"uint24"}],name:"ProtocolFeeTooLarge",type:"error"},{inputs:[],name:"SwapAmountCannotBeZero",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooLarge",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooSmall",type:"error"},{inputs:[],name:"UnauthorizedDynamicLPFeeUpdate",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Donate",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"Currency",name:"currency0",type:"address"},{indexed:!0,internalType:"Currency",name:"currency1",type:"address"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"},{indexed:!1,internalType:"int24",name:"tickSpacing",type:"int24"},{indexed:!1,internalType:"contract IHooks",name:"hooks",type:"address"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Initialize",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"int256",name:"liquidityDelta",type:"int256"},{indexed:!1,internalType:"bytes32",name:"salt",type:"bytes32"}],name:"ModifyLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"OperatorSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"protocolFeeController",type:"address"}],name:"ProtocolFeeControllerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"protocolFee",type:"uint24"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"}],name:"Swap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"caller",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"allowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"clear",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"collectProtocolFees",outputs:[{internalType:"uint256",name:"amountCollected",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"donate",outputs:[{internalType:"BalanceDelta",name:"delta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"extsload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"startSlot",type:"bytes32"},{internalType:"uint256",name:"nSlots",type:"uint256"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"exttload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"exttload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"initialize",outputs:[{internalType:"int24",name:"tick",type:"int24"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isOperator",outputs:[{internalType:"bool",name:"isOperator",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"modifyLiquidity",outputs:[{internalType:"BalanceDelta",name:"callerDelta",type:"int256"},{internalType:"BalanceDelta",name:"feesAccrued",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFeeController",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"protocolFeesAccrued",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setOperator",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newProtocolFee",type:"uint24"}],name:"setProtocolFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"controller",type:"address"}],name:"setProtocolFeeController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"settle",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"}],name:"settleFor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"swap",outputs:[{internalType:"BalanceDelta",name:"swapDelta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"sync",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"take",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlock",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newDynamicLPFee",type:"uint24"}],name:"updateDynamicLPFee",outputs:[],stateMutability:"nonpayable",type:"function"}];class h{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:b,address:e})}poolStateSlot({poolId:e}){const t=T(6n);return n.keccak256(n.encodePacked(["bytes32","bytes32"],[e,t]))}async poolSlot0({poolId:e}){const t=this.poolStateSlot({poolId:e});let n={sqrtPriceX96:0n,tick:0,protocolFee:0,lpFee:0};try{const e=await this.contract.read("extsload",{slot:t}),a=Array.isArray(e)?e[0]:e,i=BigInt(a),r=i&BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),s=i>>160n,o=BigInt("0xFFFFFF"),p=Number(s&o),y=p>8388607?p-16777216:p,u=i>>184n,l=BigInt("0xFFFFFF"),d=Number(u&l),c=i>>208n,m=BigInt("0xFFFFFF");n={sqrtPriceX96:r,tick:y,protocolFee:d,lpFee:Number(c&m)}}catch(e){console.error(e)}return n}async positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"}),o=n.keccak256(n.encodePacked(["address","int24","int24","bytes32"],[t,a,i,s])),p=this.poolStateSlot({poolId:e}),y=T(m(p)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[o,y])),l=await this.contract.read("extsload",{startSlot:u,nSlots:3n});console.log({data:l});return{liquidity:n.hexToBigInt(l[0]),feeGrowthInside0LastX128:n.hexToBigInt(l[1]),feeGrowthInside1LastX128:n.hexToBigInt(l[2])}}async getStateSlot(e){const t=await this.contract.read("extsload",{slot:e});return Array.isArray(t)?t[0]:t}}const f=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getFeeGrowthGlobals",outputs:[{internalType:"uint256",name:"feeGrowthGlobal0",type:"uint256"},{internalType:"uint256",name:"feeGrowthGlobal1",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],name:"getFeeGrowthInside",outputs:[{internalType:"uint256",name:"feeGrowthInside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"bytes32",name:"positionId",type:"bytes32"}],name:"getPositionInfo",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"address",name:"owner",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"bytes32",name:"salt",type:"bytes32"}],name:"getPositionInfo",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"bytes32",name:"positionId",type:"bytes32"}],name:"getPositionLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getSlot0",outputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{internalType:"int24",name:"tick",type:"int24"},{internalType:"uint24",name:"protocolFee",type:"uint24"},{internalType:"uint24",name:"lpFee",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int16",name:"tick",type:"int16"}],name:"getTickBitmap",outputs:[{internalType:"uint256",name:"tickBitmap",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickFeeGrowthOutside",outputs:[{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickInfo",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"},{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickLiquidity",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"}];class g{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:f,address:e})}poolSlot0({poolId:e}){return this.contract.read("getSlot0",{poolId:e})}positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"});return this.contract.read("getPositionInfo",{poolId:e,owner:t,tickLower:a,tickUpper:i,salt:s})}getTickLiquidity({poolId:e,tick:t}){return this.contract.read("getTickLiquidity",{poolId:e,tick:t})}}const w=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_startsAt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endsAt",type:"uint256"}],name:"FairLaunchCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_revenue",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_supply",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endedAt",type:"uint256"}],name:"FairLaunchEnded",type:"event"},{inputs:[],name:"FAIR_LAUNCH_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_tokenFees",type:"uint256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"closePosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int24",name:"_initialTick",type:"int24"},{internalType:"uint256",name:"_flaunchesAt",type:"uint256"},{internalType:"uint256",name:"_initialTokenFairLaunch",type:"uint256"}],name:"createPosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchInfo",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int256",name:"_amountSpecified",type:"int256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"fillFromPosition",outputs:[{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"BalanceDelta",name:"balanceDelta_",type:"int256"},{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"fairLaunchInfo_",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"inFairLaunchWindow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int256",name:"_revenue",type:"int256"}],name:"modifyRevenue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}];class I{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:w,address:e})}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 x=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class k{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:x,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const v=[{type:"constructor",inputs:[{name:"_positionManager",type:"address",internalType:"contract PositionManager"}],stateMutability:"nonpayable"},{type:"function",name:"FAIR_LAUNCH_SUPPLY",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"USDC_MARKET_CAP",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"flaunch",inputs:[{name:"_params",type:"tuple",internalType:"struct FastFlaunchZap.FastFlaunchParams",components:[{name:"name",type:"string",internalType:"string"},{name:"symbol",type:"string",internalType:"string"},{name:"tokenUri",type:"string",internalType:"string"},{name:"creator",type:"address",internalType:"address"}]}],outputs:[{name:"memecoin_",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"positionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract PositionManager"}],stateMutability:"view"}];class P{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:v,address:e})}}class F extends P{constructor(e,n=t.createDrift()){super(e,n)}fastFlaunch({name:e,symbol:t,tokenUri:n,creator:a}){return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:n,creator:a}})}async fastFlaunchIPFS({name:e,symbol:t,creator:n,metadata:a,pinataConfig:i}){const r=await l(e,{metadata:a,pinataConfig:i});return this.fastFlaunch({name:e,symbol:t,tokenUri:r,creator:n})}}const M=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStatus",outputs:[{internalType:"bool",name:"_started",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class C{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:M,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const A=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerNotFlaunch",type:"error"},{inputs:[],name:"MintAddressIsZero",type:"error"},{inputs:[],name:"Permit2AllowanceIsFixedAtInfinity",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainMint",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegator",type:"address"},{indexed:!0,internalType:"address",name:"fromDelegate",type:"address"},{indexed:!0,internalType:"address",name:"toDelegate",type:"address"}],name:"DelegateChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegate",type:"address"},{indexed:!1,internalType:"uint256",name:"previousBalance",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newBalance",type:"uint256"}],name:"DelegateVotesChanged",type:"event"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_name",type:"string"},{indexed:!1,internalType:"string",name:"_symbol",type:"string"}],name:"MetadataUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"CLOCK_MODE",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"burnFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint32",name:"pos",type:"uint32"}],name:"checkpoints",outputs:[{components:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint224",name:"votes",type:"uint224"}],internalType:"struct ERC20VotesUpgradeable.Checkpoint",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"clock",outputs:[{internalType:"uint48",name:"",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[],name:"creator",outputs:[{internalType:"address",name:"creator_",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainBurn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"}],name:"delegate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"delegateBySig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"flaunch",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastTotalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"getVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"string",name:"tokenUri_",type:"string"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"numCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}];class S{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:A,address:e})}name(){return this.contract.read("name")}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}}const _=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"NotEnoughLiquidity",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"QuoteSwap",type:"error"},{inputs:[],name:"UnexpectedCallSuccess",type:"error"},{inputs:[{internalType:"bytes",name:"revertData",type:"bytes"}],name:"UnexpectedRevertBytes",type:"error"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactInput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactInputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactOutput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactOutputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"}];function E(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const B="2.23.11";let D=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,O=`viem@${B}`;class L extends Error{constructor(e,t={}){const n=t.cause instanceof L?t.cause.details:t.cause?.message?t.cause.message:t.details,a=t.cause instanceof L&&t.cause.docsPath||t.docsPath,i=D?.({...t,docsPath:a});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...O?[`Version: ${O}`]:[]].join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=a,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=B}walk(e){return U(this,e)}}function U(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?U(e.cause,t):t?null:e}class z extends L{constructor({max:e,min:t,signed:n,size:a,value:i}){super(`Number "${i}" is not in safe ${a?`${8*a}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class N extends L{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function H(e,{strict:t=!0}={}){return!!e&&("string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")))}function G(e){return H(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function R(e,{dir:t="left"}={}){let n="string"==typeof e?e.replace("0x",""):e,a=0;for(let e=0;e<n.length-1&&"0"===n["left"===t?e:n.length-e-1].toString();e++)a++;return n="left"===t?n.slice(a):n.slice(0,n.length-a),"string"==typeof e?(1===n.length&&"right"===t&&(n=`${n}0`),`0x${n.length%2==1?`0${n}`:n}`):n}class q extends L{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}}class $ extends L{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:"SizeExceedsPaddingSizeError"})}}function K(e,{dir:t,size:n=32}={}){return"string"==typeof e?function(e,{dir:t,size:n=32}={}){if(null===n)return e;const a=e.replace("0x","");if(a.length>2*n)throw new $({size:Math.ceil(a.length/2),targetSize:n,type:"hex"});return`0x${a["right"===t?"padEnd":"padStart"](2*n,"0")}`}(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new $({size:e.length,targetSize:n,type:"bytes"});const a=new Uint8Array(n);for(let i=0;i<n;i++){const r="right"===t;a[r?i:n-i-1]=e[r?i:e.length-i-1]}return a}(e,{dir:t,size:n})}const V=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function X(e,t={}){return"number"==typeof e||"bigint"==typeof e?Q(e,t):"string"==typeof e?function(e,t={}){const n=Z.encode(e);return W(n,t)}(e,t):"boolean"==typeof e?function(e,t={}){const n=`0x${Number(e)}`;if("number"==typeof t.size)return ae(n,{size:t.size}),K(n,{size:t.size});return n}(e,t):W(e,t)}function W(e,t={}){let n="";for(let t=0;t<e.length;t++)n+=V[e[t]];const a=`0x${n}`;return"number"==typeof t.size?(ae(a,{size:t.size}),K(a,{dir:"right",size:t.size})):a}function Q(e,t={}){const{signed:n,size:a}=t,i=BigInt(e);let r;a?r=n?(1n<<8n*BigInt(a)-1n)-1n:2n**(8n*BigInt(a))-1n:"number"==typeof e&&(r=BigInt(Number.MAX_SAFE_INTEGER));const s="bigint"==typeof r&&n?-r-1n:0;if(r&&i>r||i<s){const t="bigint"==typeof e?"n":"";throw new z({max:r?`${r}${t}`:void 0,min:`${s}${t}`,signed:n,size:a,value:`${e}${t}`})}const o=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?K(o,{size:a}):o}const Z=new TextEncoder;const j=new TextEncoder;function Y(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=Q(e,t);return te(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return ae(n,{size:t.size}),K(n,{size:t.size});return n}(e,t):H(e)?te(e,t):ne(e,t)}const J={zero:48,nine:57,A:65,F:70,a:97,f:102};function ee(e){return e>=J.zero&&e<=J.nine?e-J.zero:e>=J.A&&e<=J.F?e-(J.A-10):e>=J.a&&e<=J.f?e-(J.a-10):void 0}function te(e,t={}){let n=e;t.size&&(ae(n,{size:t.size}),n=K(n,{dir:"right",size:t.size}));let a=n.slice(2);a.length%2&&(a=`0${a}`);const i=a.length/2,r=new Uint8Array(i);for(let e=0,t=0;e<i;e++){const n=ee(a.charCodeAt(t++)),i=ee(a.charCodeAt(t++));if(void 0===n||void 0===i)throw new L(`Invalid byte sequence ("${a[t-2]}${a[t-1]}" in "${a}").`);r[e]=16*n+i}return r}function ne(e,t={}){const n=j.encode(e);return"number"==typeof t.size?(ae(n,{size:t.size}),K(n,{dir:"right",size:t.size})):n}function ae(e,{size:t}){if(G(e)>t)throw new N({givenSize:G(e),maxSize:t})}function ie(e,t={}){const{signed:n}=t;t.size&&ae(e,{size:t.size});const a=BigInt(e);if(!n)return a;const i=(e.length-2)/2;return a<=(1n<<8n*BigInt(i)-1n)-1n?a:a-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function re(e,t={}){return Number(ie(e,t))}function se(e,t){return({exclude:n,format:a})=>({exclude:n,format:e=>{const i=t(e);if(n)for(const e of n)delete i[e];return{...i,...a(e)}},type:e})}const oe={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function pe(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?re(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?re(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?oe[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=e.authorizationList.map((e=>({contractAddress:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)})))),t.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof t.v){if(0n===t.v||27n===t.v)return 0;if(1n===t.v||28n===t.v)return 1;if(t.v>=35n)return t.v%2n===0n?1:0}})(),"legacy"===t.type&&(delete t.accessList,delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,delete t.yParity),"eip2930"===t.type&&(delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas),"eip1559"===t.type&&delete t.maxFeePerBlobGas,t}const ye=se("transaction",pe);function ue(e){const t=(e.transactions??[]).map((e=>"string"==typeof e?e:pe(e)));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const le=se("block",ue);const de={"0x0":"reverted","0x1":"success"};function ce(e){const t={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map((e=>function(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}(e))):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?re(e.transactionIndex):null,status:e.status?de[e.status]:null,type:e.type?oe[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const me=se("transactionReceipt",ce);const Te=2n**256n-1n;function be(e){return`0x${e.reduce(((e,t)=>e+t.replace("0x","")),"")}`}class he extends L{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class fe extends L{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class ge extends L{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const we={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new ge({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new fe({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new he({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new he({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function Ie(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(we);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function xe(e,t="hex"){const n=ke(e),a=Ie(new Uint8Array(n.length));return n.encode(a),"hex"===t?W(a.bytes):a.bytes}function ke(e){return Array.isArray(e)?function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=ve(t);return{length:t<=55?1+t:1+n+t,encode(a){t<=55?a.pushByte(192+t):(a.pushByte(247+n),1===n?a.pushUint8(t):2===n?a.pushUint16(t):3===n?a.pushUint24(t):a.pushUint32(t));for(const{encode:t}of e)t(a)}}}(e.map((e=>ke(e)))):function(e){const t="string"==typeof e?te(e):e,n=ve(t.length),a=1===t.length&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length;return{length:a,encode(e){1===t.length&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),1===n?e.pushUint8(t.length):2===n?e.pushUint16(t.length):3===n?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}(e)}function ve(e){if(e<256)return 1;if(e<65536)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new L("Length is too large.")}const Pe={ether:-9,wei:9};function Fe(e,t="wei"){return function(e,t){let n=e.toString();const a=n.startsWith("-");a&&(n=n.slice(1)),n=n.padStart(t,"0");let[i,r]=[n.slice(0,n.length-t),n.slice(n.length-t)];return r=r.replace(/(0+)$/,""),`${a?"-":""}${i||"0"}${r?`.${r}`:""}`}(e,Pe[t])}function Me(e){const t=Object.entries(e).map((([e,t])=>void 0===t||!1===t?null:[e,t])).filter(Boolean),n=t.reduce(((e,[t])=>Math.max(e,t.length)),0);return t.map((([e,t])=>` ${`${e}:`.padEnd(n+1)} ${t}`)).join("\n")}class Ce extends L{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class Ae extends L{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Me(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class Se extends L{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function _e(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>te(e))):e.blobs,i=[];for(const e of a)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?i:i.map((e=>W(e)))}function Ee(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>te(e))):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map((e=>te(e))):e.commitments,r=[];for(let e=0;e<a.length;e++){const n=a[e],s=i[e];r.push(Uint8Array.from(t.computeBlobKzgProof(n,s)))}return"bytes"===n?r:r.map((e=>W(e)))}function Be(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function De(e,...t){if(!((n=e)instanceof Uint8Array||ArrayBuffer.isView(n)&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Oe(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Le(e,t){De(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Ue(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ze(e,t){return e<<32-t|e>>>t}const Ne=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function He(e){for(let n=0;n<e.length;n++)e[n]=(t=e[n])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function Ge(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),De(e),e}class Re{clone(){return this._cloneInto()}}function qe(e){const t=t=>e().update(Ge(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function $e(e,t,n){return e&t^e&n^t&n}class Ke extends Re{constructor(e,t,n,a){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=a,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Ue(this.buffer)}update(e){Oe(this);const{view:t,buffer:n,blockLen:a}=this,i=(e=Ge(e)).length;for(let r=0;r<i;){const s=Math.min(a-this.pos,i-r);if(s!==a)n.set(e.subarray(r,r+s),this.pos),this.pos+=s,r+=s,this.pos===a&&(this.process(t,0),this.pos=0);else{const t=Ue(e);for(;a<=i-r;r+=a)this.process(t,r)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){Oe(this),Le(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:a,isLE:i}=this;let{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>a-r&&(this.process(n,0),r=0);for(let e=r;e<a;e++)t[e]=0;!function(e,t,n,a){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,a);const i=BigInt(32),r=BigInt(4294967295),s=Number(n>>i&r),o=Number(n&r),p=a?4:0,y=a?0:4;e.setUint32(t+p,s,a),e.setUint32(t+y,o,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=Ue(e),o=this.outputLen;if(o%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const p=o/4,y=this.get();if(p>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<p;e++)s.setUint32(4*e,y[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:a,finished:i,destroyed:r,pos:s}=this;return e.length=a,e.pos=s,e.finished=i,e.destroyed=r,a%t&&e.buffer.set(n),e}}const Ve=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Xe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),We=new Uint32Array(64);class Qe extends Ke{constructor(){super(64,32,8,!1),this.A=0|Xe[0],this.B=0|Xe[1],this.C=0|Xe[2],this.D=0|Xe[3],this.E=0|Xe[4],this.F=0|Xe[5],this.G=0|Xe[6],this.H=0|Xe[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:o}=this;return[e,t,n,a,i,r,s,o]}set(e,t,n,a,i,r,s,o){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|a,this.E=0|i,this.F=0|r,this.G=0|s,this.H=0|o}process(e,t){for(let n=0;n<16;n++,t+=4)We[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=We[e-15],n=We[e-2],a=ze(t,7)^ze(t,18)^t>>>3,i=ze(n,17)^ze(n,19)^n>>>10;We[e]=i+We[e-7]+a+We[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:o,G:p,H:y}=this;for(let e=0;e<64;e++){const t=y+(ze(s,6)^ze(s,11)^ze(s,25))+((u=s)&o^~u&p)+Ve[e]+We[e]|0,l=(ze(n,2)^ze(n,13)^ze(n,22))+$e(n,a,i)|0;y=p,p=o,o=s,s=r+t|0,r=i,i=a,a=n,n=t+l|0}var u;n=n+this.A|0,a=a+this.B|0,i=i+this.C|0,r=r+this.D|0,s=s+this.E|0,o=o+this.F|0,p=p+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,o,p,y)}roundClean(){We.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Ze=qe((()=>new Qe));function je(e){const{commitment:t,version:n=1}=e,a=e.to??("string"==typeof t?"hex":"bytes"),i=function(e,t){const n=t||"hex",a=Ze(H(e,{strict:!1})?Y(e):e);return"bytes"===n?a:X(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:W(i)}const Ye=4096,Je=131072,et=761855;class tt extends L{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class nt extends L{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class at extends L{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class it extends L{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function rt(e){const{data:t,kzg:n,to:a}=e,i=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?te(e.data):e.data,a=G(n);if(!a)throw new nt;if(a>et)throw new tt({maxSize:et,size:a});const i=[];let r=!0,s=0;for(;r;){const e=Ie(new Uint8Array(Je));let t=0;for(;t<Ye;){const a=n.slice(s,s+31);if(e.pushByte(0),e.pushBytes(a),a.length<31){e.pushByte(128),r=!1;break}t++,s+=31}i.push(e)}return"bytes"===t?i.map((e=>e.bytes)):i.map((e=>W(e.bytes)))}({data:t,to:a}),r=e.commitments??_e({blobs:i,kzg:n,to:a}),s=e.proofs??Ee({blobs:i,commitments:r,kzg:n,to:a}),o=[];for(let e=0;e<i.length;e++)o.push({blob:i[e],commitment:r[e],proof:s[e]});return o}class st extends L{constructor({address:e}){super(`Address "${e}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class ot extends L{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class pt extends L{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${Fe(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(pt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class yt extends L{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${Fe(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${Fe(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(yt,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class ut extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const e=this.keys().next().value;e&&this.delete(e)}return this}}const lt=BigInt(2**32-1),dt=BigInt(32);function ct(e,t=!1){return t?{h:Number(e<),l:Number(e>>dt<)}:{h:0|Number(e>>dt<),l:0|Number(e<)}}function mt(e,t=!1){let n=new Uint32Array(e.length),a=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:r,l:s}=ct(e[i],t);[n[i],a[i]]=[r,s]}return[n,a]}const Tt=[],bt=[],ht=[],ft=BigInt(0),gt=BigInt(1),wt=BigInt(2),It=BigInt(7),xt=BigInt(256),kt=BigInt(113);for(let e=0,t=gt,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],Tt.push(2*(5*a+n)),bt.push((e+1)*(e+2)/2%64);let i=ft;for(let e=0;e<7;e++)t=(t<<gt^(t>>It)*kt)%xt,t&wt&&(i^=gt<<(gt<<BigInt(e))-gt);ht.push(i)}const[vt,Pt]=mt(ht,!0),Ft=(e,t,n)=>n>32?((e,t,n)=>t<<n-32|e>>>64-n)(e,t,n):((e,t,n)=>e<<n|t>>>32-n)(e,t,n),Mt=(e,t,n)=>n>32?((e,t,n)=>e<<n-32|t>>>64-n)(e,t,n):((e,t,n)=>t<<n|e>>>32-n)(e,t,n);class Ct extends Re{constructor(e,t,n,a=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=a,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Be(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var r;this.state=new Uint8Array(200),this.state32=(r=this.state,new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)))}keccak(){Ne||He(this.state32),function(e,t=24){const n=new Uint32Array(10);for(let a=24-t;a<24;a++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const a=(t+8)%10,i=(t+2)%10,r=n[i],s=n[i+1],o=Ft(r,s,1)^n[a],p=Mt(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=o,e[t+n+1]^=p}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=bt[n],r=Ft(t,i,a),s=Mt(t,i,a),o=Tt[n];t=e[o],i=e[o+1],e[o]=r,e[o+1]=s}for(let t=0;t<50;t+=10){for(let a=0;a<10;a++)n[a]=e[t+a];for(let a=0;a<10;a++)e[t+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=vt[a],e[1]^=Pt[a]}n.fill(0)}(this.state32,this.rounds),Ne||He(this.state32),this.posOut=0,this.pos=0}update(e){Oe(this);const{blockLen:t,state:n}=this,a=(e=Ge(e)).length;for(let i=0;i<a;){const r=Math.min(t-this.pos,a-i);for(let t=0;t<r;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:n,blockLen:a}=this;e[n]^=t,128&t&&n===a-1&&this.keccak(),e[a-1]^=128,this.keccak()}writeInto(e){Oe(this,!1),De(e),this.finish();const t=this.state,{blockLen:n}=this;for(let a=0,i=e.length;a<i;){this.posOut>=n&&this.keccak();const r=Math.min(n-this.posOut,i-a);e.set(t.subarray(this.posOut,this.posOut+r),a),this.posOut+=r,a+=r}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Be(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Le(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:a,rounds:i,enableXOF:r}=this;return e||(e=new Ct(t,n,a,r,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=n,e.outputLen=a,e.enableXOF=r,e.destroyed=this.destroyed,e}}const At=((e,t,n)=>qe((()=>new Ct(t,e,n))))(1,136,32);const St=new ut(8192);function _t(e,t){if(St.has(`${e}.${t}`))return St.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=function(e,t){const n=t||"hex",a=At(H(e,{strict:!1})?Y(e):e);return"bytes"===n?a:X(a)}(ne(n),"bytes"),i=(t?n.substring(`${t}0x`.length):n).split("");for(let e=0;e<40;e+=2)a[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(15&a[e>>1])>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());const r=`0x${i.join("")}`;return St.set(`${e}.${t}`,r),r}const Et=/^0x[a-fA-F0-9]{40}$/,Bt=new ut(8192);function Dt(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(Bt.has(a))return Bt.get(a);const i=!(!Et.test(e)||e.toLowerCase()!==e&&n&&_t(e)!==e);return Bt.set(a,i),i}function Ot(e,t,n,{strict:a}={}){return H(e,{strict:!1})?function(e,t,n,{strict:a}={}){Lt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&Ut(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){Lt(e,t);const i=e.slice(t,n);a&&Ut(i,t,n);return i}(e,t,n,{strict:a})}function Lt(e,t){if("number"==typeof t&&t>0&&t>G(e)-1)throw new q({offset:t,position:"start",size:G(e)})}function Ut(e,t,n){if("number"==typeof t&&"number"==typeof n&&G(e)!==n-t)throw new q({offset:n,position:"end",size:G(e)})}function zt(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:a,to:i}=e;if(t<=0)throw new ot({chainId:t});if(i&&!Dt(i))throw new st({address:i});if(a&&a>Te)throw new pt({maxFeePerGas:a});if(n&&a&&n>a)throw new yt({maxFeePerGas:a,maxPriorityFeePerGas:n})}function Nt(e){if(!e||0===e.length)return[];const t=[];for(let n=0;n<e.length;n++){const{address:a,storageKeys:i}=e[n];for(let e=0;e<i.length;e++)if(i[e].length-2!=64)throw new Se({storageKey:i[e]});if(!Dt(a,{strict:!1}))throw new st({address:a});t.push([a,i])}return t}function Ht(e,t){const n=function(e){if(e.type)return e.type;if(void 0!==e.authorizationList)return"eip7702";if(void 0!==e.blobs||void 0!==e.blobVersionedHashes||void 0!==e.maxFeePerBlobGas||void 0!==e.sidecars)return"eip4844";if(void 0!==e.maxFeePerGas||void 0!==e.maxPriorityFeePerGas)return"eip1559";if(void 0!==e.gasPrice)return void 0!==e.accessList?"eip2930":"legacy";throw new Ae({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:o,maxPriorityFeePerGas:p,accessList:y,data:u}=e;zt(e);const l=Nt(y),d=[X(n),i?X(i):"0x",p?X(p):"0x",o?X(o):"0x",a?X(a):"0x",r??"0x",s?X(s):"0x",u??"0x",l,...Gt(e,t)];return be(["0x02",xe(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:o,accessList:p,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new ot({chainId:t});if(r&&!Dt(r))throw new st({address:r});if(n||i)throw new L("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>Te)throw new pt({maxFeePerGas:a})}(e);const u=Nt(p),l=[X(n),r?X(r):"0x",y?X(y):"0x",a?X(a):"0x",s??"0x",o?X(o):"0x",i??"0x",u,...Gt(e,t)];return be(["0x01",xe(l)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new nt;for(const e of t){const t=G(e),n=re(Ot(e,0,1));if(32!==t)throw new at({hash:e,size:t});if(1!==n)throw new it({hash:e,version:n})}}zt(e)}(e);let d=e.blobVersionedHashes,c=e.sidecars;if(e.blobs&&(void 0===d||void 0===c)){const t="string"==typeof e.blobs[0]?e.blobs:e.blobs.map((e=>W(e))),n=e.kzg,a=_e({blobs:t,kzg:n});if(void 0===d&&(d=function(e){const{commitments:t,version:n}=e,a=e.to??("string"==typeof t[0]?"hex":"bytes"),i=[];for(const e of t)i.push(je({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=rt({blobs:t,commitments:a,proofs:Ee({blobs:t,commitments:a,kzg:n})})}}const m=Nt(u),T=[X(n),i?X(i):"0x",y?X(y):"0x",p?X(p):"0x",a?X(a):"0x",r??"0x",s?X(s):"0x",l??"0x",m,o?X(o):"0x",d??[],...Gt(e,t)],b=[],h=[],f=[];if(c)for(let e=0;e<c.length;e++){const{blob:t,commitment:n,proof:a}=c[e];b.push(t),h.push(n),f.push(a)}return be(["0x03",xe(c?[T,b,h,f]:T)])}(e,t):"eip7702"===n?function(e,t){const{authorizationList:n,chainId:a,gas:i,nonce:r,to:s,value:o,maxFeePerGas:p,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{authorizationList:t}=e;if(t)for(const e of t){const{contractAddress:t,chainId:n}=e;if(!Dt(t))throw new st({address:t});if(n<0)throw new ot({chainId:n})}zt(e)}(e);const d=Nt(u),c=function(e){if(!e||0===e.length)return[];const t=[];for(const n of e){const{contractAddress:e,chainId:a,nonce:i,...r}=n;t.push([a?X(a):"0x",e,i?X(i):"0x",...Gt({},r)])}return t}(n);return be(["0x04",xe([X(a),r?X(r):"0x",y?X(y):"0x",p?X(p):"0x",i?X(i):"0x",s??"0x",o?X(o):"0x",l??"0x",d,c,...Gt(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:o,gasPrice:p}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!Dt(r))throw new st({address:r});if(void 0!==t&&t<=0)throw new ot({chainId:t});if(n||i)throw new L("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>Te)throw new pt({maxFeePerGas:a})}(e);let y=[r?X(r):"0x",p?X(p):"0x",a?X(a):"0x",s??"0x",o?X(o):"0x",i??"0x"];if(t){const e=(()=>{if(t.v>=35n){return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n)}if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new Ce({v:t.v});return e})(),a=R(t.r),i=R(t.s);y=[...y,X(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,X(n),"0x","0x"]);return xe(y)}(e,t)}function Gt(e,t){const n=t??e,{v:a,yParity:i}=n;if(void 0===n.r)return[];if(void 0===n.s)return[];if(void 0===a&&void 0===i)return[];const r=R(n.r),s=R(n.s);return["number"==typeof i?i?X(1):"0x":0n===a?"0x":1n===a?X(1):27n===a?"0x":X(1),"0x00"===r?"0x":r,"0x00"===s?"0x":s]}const Rt={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function qt(e,t){return function(e){return"deposit"===e.type||void 0!==e.sourceHash}(e)?function(e){!function(e){const{from:t,to:n}=e;if(t&&!Dt(t))throw new st({address:t});if(n&&!Dt(n))throw new st({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:o,value:p}=e;return be(["0x7e",xe([t,a,o??"0x",s?X(s):"0x",p?X(p):"0x",i?X(i):"0x",r?"0x1":"0x",n??"0x"])])}(e):Ht(e,t)}const $t={contracts:Rt,formatters:{block:le({format(e){const t=e.transactions?.map((e=>{if("string"==typeof e)return e;const t=pe(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?ie(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}));return{transactions:t,stateRoot:e.stateRoot}}}),transaction:ye({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?ie(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:me({format:e=>({l1GasPrice:e.l1GasPrice?ie(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?ie(e.l1GasUsed):null,l1Fee:e.l1Fee?ie(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:qt}},Kt=1,Vt=E({...$t,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...$t.contracts,disputeGameFactory:{[Kt]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[Kt]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[Kt]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[Kt]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),Xt=11155111,Wt=E({...$t,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...$t.contracts,disputeGameFactory:{[Xt]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[Xt]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[Xt]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[Xt]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:Xt});E({id:53456,name:"BirdLayer",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.birdlayer.xyz","https://rpc1.birdlayer.xyz"],webSocket:["wss://rpc.birdlayer.xyz/ws"]}},blockExplorers:{default:{name:"BirdLayer Explorer",url:"https://scan.birdlayer.xyz"}}});const Qt=1;E({...$t,id:60808,name:"BOB",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.gobob.xyz"],webSocket:["wss://rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Explorer",url:"https://explorer.gobob.xyz"}},contracts:{...$t.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:23131},l2OutputOracle:{[Qt]:{address:"0xdDa53E23f8a32640b04D7256e651C1db98dB11C1",blockCreated:4462615}},portal:{[Qt]:{address:"0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",blockCreated:4462615}}},sourceId:1});const Zt=11155111;E({...$t,id:808813,name:"BOB Sepolia",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://bob-sepolia.rpc.gobob.xyz"],webSocket:["wss://bob-sepolia.rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Sepolia Explorer",url:"https://bob-sepolia.explorer.gobob.xyz"}},contracts:{...$t.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:35677},l2OutputOracle:{[Zt]:{address:"0x14D0069452b4AE2b250B395b8adAb771E4267d2f",blockCreated:4462615}},portal:{[Zt]:{address:"0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4",blockCreated:4462615}}},testnet:!0,sourceId:Zt});E({id:44,name:"Crab Network",nativeCurrency:{decimals:18,name:"Crab Network Native Token",symbol:"CRAB"},rpcUrls:{default:{http:["https://crab-rpc.darwinia.network"],webSocket:["wss://crab-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://crab-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:3032593}}}),E({id:66665,name:"Creator",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.creatorchain.io"]}},blockExplorers:{default:{name:"Explorer",url:"https://explorer.creatorchain.io"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11"}},testnet:!0}),E({id:53457,name:"DODOchain Testnet",nativeCurrency:{decimals:18,name:"DODO",symbol:"DODO"},rpcUrls:{default:{http:["https://dodochain-testnet.alt.technology"],webSocket:["wss://dodochain-testnet.alt.technology/ws"]}},blockExplorers:{default:{name:"DODOchain Testnet (Sepolia) Explorer",url:"https://testnet-scan.dodochain.com"}},testnet:!0});E({...$t,id:3397901,network:"funkiSepolia",name:"Funki Sepolia Sandbox",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://funki-testnet.alt.technology"]}},blockExplorers:{default:{name:"Funki Sepolia Sandbox Explorer",url:"https://sepolia-sandbox.funkichain.com/"}},testnet:!0,contracts:{...$t.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204}},sourceId:11155111});const jt=17e3;E({...$t,name:"Garnet Testnet",testnet:!0,id:17069,sourceId:jt,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.garnetchain.com"],webSocket:["wss://rpc.garnetchain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.garnetchain.com"}},contracts:{...$t.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[jt]:{address:"0x57ee40586fbE286AfC75E67cb69511A6D9aF5909",blockCreated:1274684}},l2OutputOracle:{[jt]:{address:"0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B",blockCreated:1274684}},l1StandardBridge:{[jt]:{address:"0x09bcDd311FE398F80a78BE37E489f5D440DB95DE",blockCreated:1274684}}}});E({id:701,name:"Koi Network",nativeCurrency:{decimals:18,name:"Koi Network Native Token",symbol:"KRING"},rpcUrls:{default:{http:["https://koi-rpc.darwinia.network"],webSocket:["wss://koi-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://koi-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:180001}},testnet:!0});const Yt=11155111;E({...$t,name:"Pyrope Testnet",testnet:!0,id:695569,sourceId:Yt,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.pyropechain.com"],webSocket:["wss://rpc.pyropechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://pyrope.blockscout.com"}},contracts:{...$t.contracts,l1StandardBridge:{[Yt]:{address:"0xC24932c31D9621aE9e792576152B7ef010cFC2F8"}}}});const Jt=1;E({...$t,name:"Redstone",id:690,sourceId:1,nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.redstonechain.com"],webSocket:["wss://rpc.redstonechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.redstone.xyz"}},contracts:{...$t.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Jt]:{address:"0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae",blockCreated:19578329}},l2OutputOracle:{[Jt]:{address:"0xa426A052f657AEEefc298b3B5c35a470e4739d69",blockCreated:19578337}},l1StandardBridge:{[Jt]:{address:"0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69",blockCreated:19578331}}}});const en={[Vt.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[Wt.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},tn={[Vt.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[Wt.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},nn={[Vt.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[Wt.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},an={[Vt.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[Wt.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},rn={[Vt.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[Wt.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},sn={[Vt.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[Wt.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},on={[Vt.id]:"0xd79e27f51ddf9df5ee76106ee192530f474b02f6",[Wt.id]:"0x251e97446a7019E5DA4860d4CF47291321C693D0"},pn={[Vt.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[Wt.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},yn={[Vt.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[Wt.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},un={[Vt.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[Wt.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},ln={[Vt.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[Wt.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},dn={[Vt.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[Wt.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},cn={[Vt.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[Wt.id]:{currency0:n.zeroAddress,currency1:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",fee:0,tickSpacing:30,hooks:n.zeroAddress}};class mn{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:_,address:n})}async getSellQuoteExactInput(e,t){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:en[this.chainId],hookData:"0x",intermediateCurrency:tn[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:nn[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput(e,t){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:nn[this.chainId],intermediateCurrency:tn[this.chainId]},{fee:0,tickSpacing:60,hooks:en[this.chainId],hookData:"0x",intermediateCurrency:e}]}})).amountOut}async getBuyQuoteExactOutput(e,t){return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:nn[this.chainId]},{intermediateCurrency:tn[this.chainId],fee:0,tickSpacing:60,hooks:en[this.chainId],hookData:"0x"}],exactCurrency:e,exactAmount:t}})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:cn[this.chainId].fee,tickSpacing:cn[this.chainId].tickSpacing,hooks:cn[this.chainId].hooks,hookData:"0x",intermediateCurrency:cn[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const Tn={MIN_TICK:-887220,MAX_TICK:887220},bn=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)},hn=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},fn=({tick:e,tickSpacing:t,roundDown:n})=>{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},gn=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},wn=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},In=e=>BigInt(i.TickMath.getSqrtRatioAtTick(e).toString()),xn=(e,t,n,a)=>{const i=In(a),r=In(t),s=In(n);let o=0n,p=0n;return i<=r?o=gn(r,s,e):i<s?(o=gn(i,s,e),p=wn(r,i,e)):p=wn(r,s,e),{amount0:o,amount1:p}},kn=[{inputs:[{components:[{internalType:"address",name:"permit2",type:"address"},{internalType:"address",name:"weth9",type:"address"},{internalType:"address",name:"v2Factory",type:"address"},{internalType:"address",name:"v3Factory",type:"address"},{internalType:"bytes32",name:"pairInitCodeHash",type:"bytes32"},{internalType:"bytes32",name:"poolInitCodeHash",type:"bytes32"},{internalType:"address",name:"v4PoolManager",type:"address"},{internalType:"address",name:"v3NFTPositionManager",type:"address"},{internalType:"address",name:"v4PositionManager",type:"address"}],internalType:"struct RouterParameters",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BalanceTooLow",type:"error"},{inputs:[],name:"ContractLocked",type:"error"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"DeltaNotNegative",type:"error"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"DeltaNotPositive",type:"error"},{inputs:[],name:"ETHNotAccepted",type:"error"},{inputs:[{internalType:"uint256",name:"commandIndex",type:"uint256"},{internalType:"bytes",name:"message",type:"bytes"}],name:"ExecutionFailed",type:"error"},{inputs:[],name:"FromAddressIsNotOwner",type:"error"},{inputs:[],name:"InputLengthMismatch",type:"error"},{inputs:[],name:"InsufficientBalance",type:"error"},{inputs:[],name:"InsufficientETH",type:"error"},{inputs:[],name:"InsufficientToken",type:"error"},{inputs:[{internalType:"bytes4",name:"action",type:"bytes4"}],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidBips",type:"error"},{inputs:[{internalType:"uint256",name:"commandType",type:"uint256"}],name:"InvalidCommandType",type:"error"},{inputs:[],name:"InvalidEthSender",type:"error"},{inputs:[],name:"InvalidPath",type:"error"},{inputs:[],name:"InvalidReserves",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"NotAuthorizedForToken",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"OnlyMintAllowed",type:"error"},{inputs:[],name:"SliceOutOfBounds",type:"error"},{inputs:[],name:"TransactionDeadlinePassed",type:"error"},{inputs:[],name:"UnsafeCast",type:"error"},{inputs:[{internalType:"uint256",name:"action",type:"uint256"}],name:"UnsupportedAction",type:"error"},{inputs:[],name:"V2InvalidPath",type:"error"},{inputs:[],name:"V2TooLittleReceived",type:"error"},{inputs:[],name:"V2TooMuchRequested",type:"error"},{inputs:[],name:"V3InvalidAmountOut",type:"error"},{inputs:[],name:"V3InvalidCaller",type:"error"},{inputs:[],name:"V3InvalidSwap",type:"error"},{inputs:[],name:"V3TooLittleReceived",type:"error"},{inputs:[],name:"V3TooMuchRequested",type:"error"},{inputs:[{internalType:"uint256",name:"minAmountOutReceived",type:"uint256"},{internalType:"uint256",name:"amountReceived",type:"uint256"}],name:"V4TooLittleReceived",type:"error"},{inputs:[{internalType:"uint256",name:"maxAmountInRequested",type:"uint256"},{internalType:"uint256",name:"amountRequested",type:"uint256"}],name:"V4TooMuchRequested",type:"error"},{inputs:[],name:"V3_POSITION_MANAGER",outputs:[{internalType:"contract INonfungiblePositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"V4_POSITION_MANAGER",outputs:[{internalType:"contract IPositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"commands",type:"bytes"},{internalType:"bytes[]",name:"inputs",type:"bytes[]"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"commands",type:"bytes"},{internalType:"bytes[]",name:"inputs",type:"bytes[]"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"msgSender",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],vn=[{type:"tuple",components:[{type:"address",name:"currencyIn"},{type:"tuple[]",name:"path",components:[{type:"address",name:"intermediateCurrency"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"},{type:"bytes",name:"hookData"}]},{type:"uint128",name:"amountIn"},{type:"uint128",name:"amountOutMinimum"}]}],Pn=[{type:"tuple",components:[{type:"address",name:"currencyOut"},{type:"tuple[]",name:"path",components:[{type:"address",name:"intermediateCurrency"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"},{type:"bytes",name:"hookData"}]},{type:"uint128",name:"amountOut"},{type:"uint128",name:"amountInMaximum"}]}],Fn="07",Mn="09",Cn="0c",An="0f",Sn="10",_n="04",En="0a",Bn=(e,t,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)},Dn=n.zeroAddress,On={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}]},Ln=[{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"}],name:"AllowanceExpired",type:"error"},{inputs:[],name:"ExcessiveInvalidation",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InsufficientAllowance",type:"error"},{inputs:[{internalType:"uint256",name:"maxAmount",type:"uint256"}],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"uint256",name:"signatureDeadline",type:"uint256"}],name:"SignatureExpired",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"address",name:"spender",type:"address"}],name:"Lockdown",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint48",name:"newNonce",type:"uint48"},{indexed:!1,internalType:"uint48",name:"oldNonce",type:"uint48"}],name:"NonceInvalidation",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"},{indexed:!1,internalType:"uint48",name:"nonce",type:"uint48"}],name:"Permit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"uint256",name:"word",type:"uint256"},{indexed:!1,internalType:"uint256",name:"mask",type:"uint256"}],name:"UnorderedNonceInvalidation",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint48",name:"newNonce",type:"uint48"}],name:"invalidateNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"wordPos",type:"uint256"},{internalType:"uint256",name:"mask",type:"uint256"}],name:"invalidateUnorderedNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"}],internalType:"struct IAllowanceTransfer.TokenSpenderPair[]",name:"approvals",type:"tuple[]"}],name:"lockdown",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"nonceBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails[]",name:"details",type:"tuple[]"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitBatch",name:"permitBatch",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails",name:"details",type:"tuple"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitSingle",name:"permitSingle",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],internalType:"struct IAllowanceTransfer.AllowanceTransferDetails[]",name:"transferDetails",type:"tuple[]"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];class Un{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Ln,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}class zn{constructor(e,n=t.createDrift()){this.TICK_SPACING=60,this.chainId=e,this.drift=n,this.readPositionManager=new d(en[this.chainId],n),this.readPoolManager=new h(pn[this.chainId],n),this.readStateView=new g(ln[this.chainId],n),this.readFairLaunch=new I(an[this.chainId],n),this.readBidWall=new k(sn[this.chainId],n),this.readFlaunch=new C(rn[this.chainId],n),this.readQuoter=new mn(this.chainId,un[this.chainId],n),this.readPermit2=new Un(dn[this.chainId],n)}isValidCoin(e){return this.readPositionManager.isValidCoin(e)}async getCoinMetadata(e){const t=new S(e,this.drift),n=await t.name(),a=await t.symbol(),i=await t.tokenURI(),r=(await s.default.get(p(i))).data;return{name:n,symbol:a,description:r.description??"",image:r.image?p(r.image):"",external_link:r.websiteUrl??"",collaborators:r.collaborators??[],discordUrl:r.discordUrl??"",twitterUrl:r.twitterUrl??"",telegramUrl:r.telegramUrl??""}}watchPoolCreated(e){return this.readPositionManager.watchPoolCreated(e)}pollPoolCreatedNow(){const e=this.readPositionManager.pollPoolCreatedNow;if(e)return e()}watchPoolSwap(e){return this.readPositionManager.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?this.poolId(e.filterByCoin):void 0,flETHIsCurrencyZero:this.flETHIsCurrencyZero(e.filterByCoin)})}pollPoolSwapNow(){const e=this.readPositionManager.pollPoolSwapNow;if(e)return e()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e){const t=this.poolId(e);return(await this.readStateView.poolSlot0({poolId:t})).tick}async coinPriceInETH(e){const t=this.flETHIsCurrencyZero(e),n=await this.currentTick(e),a=Math.pow(1.0001,n);let i=0;return i=t?1/a:a,i.toFixed(18)}async getETHUSDCPrice(e){if(e){const t=await e.getChainId();return new mn(t,un[t],e).getETHUSDCPrice()}return this.readQuoter.getETHUSDCPrice()}async fairLaunchInfo(e){const t=this.poolId(e);return this.readFairLaunch.fairLaunchInfo({poolId:t})}isFairLaunchActive(e){const t=this.poolId(e);return this.readFairLaunch.isFairLaunchActive({poolId:t})}fairLaunchDuration(){return 1800}async initialTick(e){const t=this.poolId(e);return(await this.readFairLaunch.fairLaunchInfo({poolId:t})).initialTick}async fairLaunchETHOnlyPosition(e){const t=this.poolId(e),n=await this.initialTick(e),a=await this.currentTick(e),i=this.flETHIsCurrencyZero(e);let r,s;i?(r=fn({tick:n+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),s=r+this.TICK_SPACING):(s=fn({tick:n-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),r=s-this.TICK_SPACING);const{liquidity:o}=await this.readStateView.positionInfo({poolId:t,owner:an[this.chainId],tickLower:r,tickUpper:s,salt:""}),{amount0:p,amount1:y}=xn(o,r,s,a),[u,l]=i?[p,y]:[y,p];return{flETHAmount:u,coinAmount:l,tickLower:r,tickUpper:s}}async fairLaunchCoinOnlyPosition(e){const t=this.poolId(e),n=await this.initialTick(e),a=await this.currentTick(e),i=this.flETHIsCurrencyZero(e);let r,s;i?(r=Tn.MIN_TICK,s=fn({tick:n-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(r=fn({tick:n+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),s=Tn.MAX_TICK);const{liquidity:o}=await this.readStateView.positionInfo({poolId:t,owner:an[this.chainId],tickLower:r,tickUpper:s,salt:""}),{amount0:p,amount1:y}=xn(o,r,s,a),[u,l]=i?[p,y]:[y,p];return{flETHAmount:u,coinAmount:l,tickLower:r,tickUpper:s}}async bidWallPosition(e){const t=this.poolId(e),n=this.flETHIsCurrencyZero(e),{amount0_:a,amount1_:i,pendingEth_:r}=await this.readBidWall.position({poolId:t}),{tickLower:s,tickUpper:o}=await this.readBidWall.poolInfo({poolId:t}),[p,y]=n?[a,i]:[i,a];return{flETHAmount:p,coinAmount:y,pendingEth:r,tickLower:s,tickUpper:o}}poolId(e){return bn(hn({currency0:tn[this.chainId],currency1:e,fee:0,tickSpacing:60,hooks:en[this.chainId]}))}flETHIsCurrencyZero(e){return e>tn[this.chainId]}}class Nn extends zn{constructor(e,n=t.createDrift()){super(e,n),this.readWritePositionManager=new c(en[this.chainId],n),this.readWriteFastFlaunchZap=new F(on[this.chainId],n)}flaunch(e){return this.readWritePositionManager.flaunch(e)}flaunchIPFS(e){return this.readWritePositionManager.flaunchIPFS(e)}fastFlaunch(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunch(e)}fastFlaunchIPFS(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunchIPFS(e)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new S(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e){const t=await this.drift.getSignerAddress();let a,i,r,s;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(a=e.amountIn,i=void 0===e.amountOutMin?Bn(await this.readQuoter.getBuyQuoteExactInput(e.coinAddress,a),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountOutMin):(r=e.amountOut,s=void 0===e.amountInMax?Bn(await this.readQuoter.getBuyQuoteExactOutput(e.coinAddress,r),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountInMax);const{commands:o,inputs:p}=(e=>{const t=tn[e.chainId],a=nn[e.chainId],i=en[e.chainId],r="0x"+("EXACT_IN"===e.swapType?Fn:Mn)+Cn+An;let s,o;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");s=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],o=n.encodeAbiParameters(vn,[{currencyIn:Dn,path:s,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}])}else{if(null==e.amountOut||null==e.amountInMax)throw new Error("amountOut and amountInMax are required for EXACT_OUT swap");s=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:Dn},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],o=n.encodeAbiParameters(Pn,[{currencyOut:e.memecoin,path:s,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[Dn,"EXACT_IN"===e.swapType?e.amountIn??n.maxUint256:e.amountInMax??n.maxUint256]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[e.memecoin,"EXACT_IN"===e.swapType?e.amountOutMin??n.maxUint256:e.amountOut??n.maxUint256]),u=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[o,p,y]]),l="0x"+Sn+_n,d=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[Dn,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:kn,functionName:"execute",args:[l,d]}),commands:l,inputs:d}})({sender:t,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer,swapType:e.swapType,amountIn:a,amountOutMin:i,amountOut:r,amountInMax:s});return this.drift.adapter.write({abi:kn,address:yn[this.chainId],fn:"execute",args:{commands:o,inputs:p},value:"EXACT_IN"===e.swapType?a:s})}async sellCoin(e){let t;await this.readQuoter.contract.cache.clear(),t=void 0===e.ethOutMin?Bn(await this.readQuoter.getSellQuoteExactInput(e.coinAddress,e.amountIn),(e.slippagePercent/100).toFixed(18).toString(),"EXACT_IN"):e.ethOutMin,await this.readPermit2.contract.cache.clear();const{commands:a,inputs:i}=(e=>{const t=tn[e.chainId],a=nn[e.chainId],i=en[e.chainId],r="0x"+Fn+Cn+An,s=n.encodeAbiParameters(vn,[{currencyIn:e.memecoin,path:[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:Dn,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],amountIn:e.amountIn,amountOutMinimum:e.ethOutMin}]),o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[Dn,e.ethOutMin]),y=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,o,p]]);if(e.signature&&e.permitSingle){const t="0x"+En+Sn,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),y];return{calldata:n.encodeFunctionData({abi:kn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+Sn,t=[y];return{calldata:n.encodeFunctionData({abi:kn,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}})({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,ethOutMin:t,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer});return this.drift.write({abi:kn,address:yn[this.chainId],fn:"execute",args:{commands:a,inputs:i}})}async getPermit2TypedData(e,t){const{nonce:a}=await this.getPermit2AllowanceAndNonce(e),i=BigInt(Math.floor(Date.now()/1e3)+31536e4);return(({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:dn[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:yn[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:On,message:s},permitSingle:s}})({chainId:this.chainId,coinAddress:e,nonce:a,deadline:void 0!==t?t:i})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,yn[this.chainId]);return{allowance:t,nonce:n}}}const Hn={ReadFlaunchSDK:zn,ReadWriteFlaunchSDK:Nn};e.BidWallAddress=sn,e.FLETHAddress=tn,e.FLETHHooksAddress=nn,e.FairLaunchAbi=w,e.FairLaunchAddress=an,e.FastFlaunchZapAbi=v,e.FastFlaunchZapAddress=on,e.FlaunchAddress=rn,e.FlaunchPositionManagerAbi=o,e.FlaunchPositionManagerAddress=en,e.FlaunchSDK=Hn,e.MemecoinAbi=A,e.Permit2Address=dn,e.PoolManagerAbi=b,e.PoolManagerAddress=pn,e.QuoterAddress=un,e.ReadFlaunchSDK=zn,e.ReadWriteFlaunchSDK=Nn,e.StateViewAddress=ln,e.TICK_SPACING=60,e.TickFinder=Tn,e.USDCETHPoolKeys=cn,e.UniversalRouterAddress=yn,e.bytes32ToUint256=m,e.calculateUnderlyingTokenBalances=xn,e.generateTokenUri=l,e.getPoolId=bn,e.getSqrtPriceX96FromTick=In,e.getValidTick=fn,e.orderPoolKey=hn,e.resolveIPFS=p,e.uint256ToBytes32=T,e.uploadFileToIPFS=async e=>{try{const t=new FormData;t.append("file",e.file);const n={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(n));const a={cidVersion:1};t.append("pinataOptions",JSON.stringify(a));const i=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:i.data.IpfsHash,PinSize:i.data.PinSize,Timestamp:i.data.Timestamp,isDuplicate:i.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload file to IPFS: ${e.response?.data?.message||e.message}`);throw e}},e.uploadImageToIPFS=u,e.uploadJsonToIPFS=y,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@delvtech/drift"),require("viem"),require("axios"),require("@uniswap/v3-sdk")):"function"==typeof define&&define.amd?define(["exports","@delvtech/drift","viem","axios","@uniswap/v3-sdk"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@flaunch_sdk"]={},e.drift,e.viem,e.axios,e.v3Sdk)}(this,(function(e,t,n,a,i){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(a);function p(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const o="2.28.3";let y=({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,u=`viem@${o}`;class l extends Error{constructor(e,t={}){const n=t.cause instanceof l?t.cause.details:t.cause?.message?t.cause.message:t.details,a=t.cause instanceof l&&t.cause.docsPath||t.docsPath,i=y?.({...t,docsPath:a});super([e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...n?[`Details: ${n}`]:[],...u?[`Version: ${u}`]:[]].join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=a,this.metaMessages=t.metaMessages,this.name=t.name??this.name,this.shortMessage=e,this.version=o}walk(e){return d(this,e)}}function d(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&void 0!==e.cause?d(e.cause,t):t?null:e}class c extends l{constructor({max:e,min:t,signed:n,size:a,value:i}){super(`Number "${i}" is not in safe ${a?`${8*a}-bit ${n?"signed":"unsigned"} `:""}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:"IntegerOutOfRangeError"})}}class m extends l{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:"SizeOverflowError"})}}function T(e,{strict:t=!0}={}){return!!e&&("string"==typeof e&&(t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")))}function b(e){return T(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function f(e,{dir:t="left"}={}){let n="string"==typeof e?e.replace("0x",""):e,a=0;for(let e=0;e<n.length-1&&"0"===n["left"===t?e:n.length-e-1].toString();e++)a++;return n="left"===t?n.slice(a):n.slice(0,n.length-a),"string"==typeof e?(1===n.length&&"right"===t&&(n=`${n}0`),`0x${n.length%2==1?`0${n}`:n}`):n}class h extends l{constructor({offset:e,position:t,size:n}){super(`Slice ${"start"===t?"starting":"ending"} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}}class g extends l{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:"SizeExceedsPaddingSizeError"})}}function w(e,{dir:t,size:n=32}={}){return"string"==typeof e?function(e,{dir:t,size:n=32}={}){if(null===n)return e;const a=e.replace("0x","");if(a.length>2*n)throw new g({size:Math.ceil(a.length/2),targetSize:n,type:"hex"});return`0x${a["right"===t?"padEnd":"padStart"](2*n,"0")}`}(e,{dir:t,size:n}):function(e,{dir:t,size:n=32}={}){if(null===n)return e;if(e.length>n)throw new g({size:e.length,targetSize:n,type:"bytes"});const a=new Uint8Array(n);for(let i=0;i<n;i++){const r="right"===t;a[r?i:n-i-1]=e[r?i:e.length-i-1]}return a}(e,{dir:t,size:n})}const I=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function x(e,t={}){return"number"==typeof e||"bigint"==typeof e?k(e,t):"string"==typeof e?function(e,t={}){const n=M.encode(e);return v(n,t)}(e,t):"boolean"==typeof e?function(e,t={}){const n=`0x${Number(e)}`;if("number"==typeof t.size)return D(n,{size:t.size}),w(n,{size:t.size});return n}(e,t):v(e,t)}function v(e,t={}){let n="";for(let t=0;t<e.length;t++)n+=I[e[t]];const a=`0x${n}`;return"number"==typeof t.size?(D(a,{size:t.size}),w(a,{dir:"right",size:t.size})):a}function k(e,t={}){const{signed:n,size:a}=t,i=BigInt(e);let r;a?r=n?(1n<<8n*BigInt(a)-1n)-1n:2n**(8n*BigInt(a))-1n:"number"==typeof e&&(r=BigInt(Number.MAX_SAFE_INTEGER));const s="bigint"==typeof r&&n?-r-1n:0;if(r&&i>r||i<s){const t="bigint"==typeof e?"n":"";throw new c({max:r?`${r}${t}`:void 0,min:`${s}${t}`,signed:n,size:a,value:`${e}${t}`})}const p=`0x${(n&&i<0?(1n<<BigInt(8*a))+BigInt(i):i).toString(16)}`;return a?w(p,{size:a}):p}const M=new TextEncoder;const P=new TextEncoder;function F(e,t={}){return"number"==typeof e||"bigint"==typeof e?function(e,t){const n=k(e,t);return C(n)}(e,t):"boolean"==typeof e?function(e,t={}){const n=new Uint8Array(1);if(n[0]=Number(e),"number"==typeof t.size)return D(n,{size:t.size}),w(n,{size:t.size});return n}(e,t):T(e)?C(e,t):S(e,t)}const _={zero:48,nine:57,A:65,F:70,a:97,f:102};function A(e){return e>=_.zero&&e<=_.nine?e-_.zero:e>=_.A&&e<=_.F?e-(_.A-10):e>=_.a&&e<=_.f?e-(_.a-10):void 0}function C(e,t={}){let n=e;t.size&&(D(n,{size:t.size}),n=w(n,{dir:"right",size:t.size}));let a=n.slice(2);a.length%2&&(a=`0${a}`);const i=a.length/2,r=new Uint8Array(i);for(let e=0,t=0;e<i;e++){const n=A(a.charCodeAt(t++)),i=A(a.charCodeAt(t++));if(void 0===n||void 0===i)throw new l(`Invalid byte sequence ("${a[t-2]}${a[t-1]}" in "${a}").`);r[e]=16*n+i}return r}function S(e,t={}){const n=P.encode(e);return"number"==typeof t.size?(D(n,{size:t.size}),w(n,{dir:"right",size:t.size})):n}function D(e,{size:t}){if(b(e)>t)throw new m({givenSize:b(e),maxSize:t})}function E(e,t={}){const{signed:n}=t;t.size&&D(e,{size:t.size});const a=BigInt(e);if(!n)return a;const i=(e.length-2)/2;return a<=(1n<<8n*BigInt(i)-1n)-1n?a:a-BigInt(`0x${"f".padStart(2*i,"f")}`)-1n}function L(e,t={}){return Number(E(e,t))}function B(e,t){return({exclude:n,format:a})=>({exclude:n,format:e=>{const i=t(e);if(n)for(const e of n)delete i[e];return{...i,...a(e)}},type:e})}const O={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function U(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?L(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?L(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?O[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=e.authorizationList.map((e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)})))),t.yParity=(()=>{if(e.yParity)return Number(e.yParity);if("bigint"==typeof t.v){if(0n===t.v||27n===t.v)return 0;if(1n===t.v||28n===t.v)return 1;if(t.v>=35n)return t.v%2n===0n?1:0}})(),"legacy"===t.type&&(delete t.accessList,delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,delete t.yParity),"eip2930"===t.type&&(delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas),"eip1559"===t.type&&delete t.maxFeePerBlobGas,t}const R=B("transaction",U);function H(e){const t=(e.transactions??[]).map((e=>"string"==typeof e?e:U(e)));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const N=B("block",H);const z={"0x0":"reverted","0x1":"success"};function q(e){const t={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map((e=>function(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}(e))):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?L(e.transactionIndex):null,status:e.status?z[e.status]:null,type:e.type?O[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const G=B("transactionReceipt",q);const V=2n**256n-1n;function $(e){return`0x${e.reduce(((e,t)=>e+t.replace("0x","")),"")}`}class K extends l{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class W extends l{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`,{name:"PositionOutOfBoundsError"})}}class Z extends l{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`,{name:"RecursiveReadLimitExceededError"})}}const X={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Z({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new W({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new K({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new K({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,255&e),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function Q(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(X);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function j(e,t="hex"){const n=Y(e),a=Q(new Uint8Array(n.length));return n.encode(a),"hex"===t?v(a.bytes):a.bytes}function Y(e){return Array.isArray(e)?function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=J(t);return{length:t<=55?1+t:1+n+t,encode(a){t<=55?a.pushByte(192+t):(a.pushByte(247+n),1===n?a.pushUint8(t):2===n?a.pushUint16(t):3===n?a.pushUint24(t):a.pushUint32(t));for(const{encode:t}of e)t(a)}}}(e.map((e=>Y(e)))):function(e){const t="string"==typeof e?C(e):e,n=J(t.length),a=1===t.length&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length;return{length:a,encode(e){1===t.length&&t[0]<128?e.pushBytes(t):t.length<=55?(e.pushByte(128+t.length),e.pushBytes(t)):(e.pushByte(183+n),1===n?e.pushUint8(t.length):2===n?e.pushUint16(t.length):3===n?e.pushUint24(t.length):e.pushUint32(t.length),e.pushBytes(t))}}}(e)}function J(e){if(e<256)return 1;if(e<65536)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new l("Length is too large.")}const ee={ether:-9,wei:9};function te(e,t="wei"){return function(e,t){let n=e.toString();const a=n.startsWith("-");a&&(n=n.slice(1)),n=n.padStart(t,"0");let[i,r]=[n.slice(0,n.length-t),n.slice(n.length-t)];return r=r.replace(/(0+)$/,""),`${a?"-":""}${i||"0"}${r?`.${r}`:""}`}(e,ee[t])}function ne(e){const t=Object.entries(e).map((([e,t])=>void 0===t||!1===t?null:[e,t])).filter(Boolean),n=t.reduce(((e,[t])=>Math.max(e,t.length)),0);return t.map((([e,t])=>` ${`${e}:`.padEnd(n+1)} ${t}`)).join("\n")}class ae extends l{constructor({v:e}){super(`Invalid \`v\` value "${e}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class ie extends l{constructor({transaction:e}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",ne(e),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class re extends l{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function se(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>C(e))):e.blobs,i=[];for(const e of a)i.push(Uint8Array.from(t.blobToKzgCommitment(e)));return"bytes"===n?i:i.map((e=>v(e)))}function pe(e){const{kzg:t}=e,n=e.to??("string"==typeof e.blobs[0]?"hex":"bytes"),a="string"==typeof e.blobs[0]?e.blobs.map((e=>C(e))):e.blobs,i="string"==typeof e.commitments[0]?e.commitments.map((e=>C(e))):e.commitments,r=[];for(let e=0;e<a.length;e++){const n=a[e],s=i[e];r.push(Uint8Array.from(t.computeBlobKzgProof(n,s)))}return"bytes"===n?r:r.map((e=>v(e)))}function oe(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ye(e,...t){if(!((n=e)instanceof Uint8Array||ArrayBuffer.isView(n)&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function ue(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function le(e,t){ye(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function de(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ce(e,t){return e<<32-t|e>>>t}const me=(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function Te(e){for(let n=0;n<e.length;n++)e[n]=(t=e[n])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function be(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),ye(e),e}"function"==typeof Uint8Array.from([]).toHex&&Uint8Array.fromHex;class fe{clone(){return this._cloneInto()}}function he(e){const t=t=>e().update(be(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ge(e,t,n){return e&t^e&n^t&n}class we extends fe{constructor(e,t,n,a){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=a,this.buffer=new Uint8Array(e),this.view=de(this.buffer)}update(e){ue(this);const{view:t,buffer:n,blockLen:a}=this,i=(e=be(e)).length;for(let r=0;r<i;){const s=Math.min(a-this.pos,i-r);if(s!==a)n.set(e.subarray(r,r+s),this.pos),this.pos+=s,r+=s,this.pos===a&&(this.process(t,0),this.pos=0);else{const t=de(e);for(;a<=i-r;r+=a)this.process(t,r)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){ue(this),le(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:a,isLE:i}=this;let{pos:r}=this;t[r++]=128,this.buffer.subarray(r).fill(0),this.padOffset>a-r&&(this.process(n,0),r=0);for(let e=r;e<a;e++)t[e]=0;!function(e,t,n,a){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,a);const i=BigInt(32),r=BigInt(4294967295),s=Number(n>>i&r),p=Number(n&r),o=a?4:0,y=a?0:4;e.setUint32(t+o,s,a),e.setUint32(t+y,p,a)}(n,a-8,BigInt(8*this.length),i),this.process(n,0);const s=de(e),p=this.outputLen;if(p%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const o=p/4,y=this.get();if(o>y.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<o;e++)s.setUint32(4*e,y[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:a,finished:i,destroyed:r,pos:s}=this;return e.length=a,e.pos=s,e.finished=i,e.destroyed=r,a%t&&e.buffer.set(n),e}}const Ie=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),xe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ve=new Uint32Array(64);class ke extends we{constructor(e=32){super(64,e,8,!1),this.A=0|xe[0],this.B=0|xe[1],this.C=0|xe[2],this.D=0|xe[3],this.E=0|xe[4],this.F=0|xe[5],this.G=0|xe[6],this.H=0|xe[7]}get(){const{A:e,B:t,C:n,D:a,E:i,F:r,G:s,H:p}=this;return[e,t,n,a,i,r,s,p]}set(e,t,n,a,i,r,s,p){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|a,this.E=0|i,this.F=0|r,this.G=0|s,this.H=0|p}process(e,t){for(let n=0;n<16;n++,t+=4)ve[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=ve[e-15],n=ve[e-2],a=ce(t,7)^ce(t,18)^t>>>3,i=ce(n,17)^ce(n,19)^n>>>10;ve[e]=i+ve[e-7]+a+ve[e-16]|0}let{A:n,B:a,C:i,D:r,E:s,F:p,G:o,H:y}=this;for(let e=0;e<64;e++){const t=y+(ce(s,6)^ce(s,11)^ce(s,25))+((u=s)&p^~u&o)+Ie[e]+ve[e]|0,l=(ce(n,2)^ce(n,13)^ce(n,22))+ge(n,a,i)|0;y=o,o=p,p=s,s=r+t|0,r=i,i=a,a=n,n=t+l|0}var u;n=n+this.A|0,a=a+this.B|0,i=i+this.C|0,r=r+this.D|0,s=s+this.E|0,p=p+this.F|0,o=o+this.G|0,y=y+this.H|0,this.set(n,a,i,r,s,p,o,y)}roundClean(){ve.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Me=he((()=>new ke));function Pe(e){const{commitment:t,version:n=1}=e,a=e.to??("string"==typeof t?"hex":"bytes"),i=function(e,t){const n=t||"hex",a=Me(T(e,{strict:!1})?F(e):e);return"bytes"===n?a:x(a)}(t,"bytes");return i.set([n],0),"bytes"===a?i:v(i)}const Fe=4096,_e=131072,Ae=761855;class Ce extends l{constructor({maxSize:e,size:t}){super("Blob size is too large.",{metaMessages:[`Max: ${e} bytes`,`Given: ${t} bytes`],name:"BlobSizeTooLargeError"})}}class Se extends l{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class De extends l{constructor({hash:e,size:t}){super(`Versioned hash "${e}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${t}`],name:"InvalidVersionedHashSizeError"})}}class Ee extends l{constructor({hash:e,version:t}){super(`Versioned hash "${e}" version is invalid.`,{metaMessages:["Expected: 1",`Received: ${t}`],name:"InvalidVersionedHashVersionError"})}}function Le(e){const{data:t,kzg:n,to:a}=e,i=e.blobs??function(e){const t=e.to??("string"==typeof e.data?"hex":"bytes"),n="string"==typeof e.data?C(e.data):e.data,a=b(n);if(!a)throw new Se;if(a>Ae)throw new Ce({maxSize:Ae,size:a});const i=[];let r=!0,s=0;for(;r;){const e=Q(new Uint8Array(_e));let t=0;for(;t<Fe;){const a=n.slice(s,s+31);if(e.pushByte(0),e.pushBytes(a),a.length<31){e.pushByte(128),r=!1;break}t++,s+=31}i.push(e)}return"bytes"===t?i.map((e=>e.bytes)):i.map((e=>v(e.bytes)))}({data:t,to:a}),r=e.commitments??se({blobs:i,kzg:n,to:a}),s=e.proofs??pe({blobs:i,commitments:r,kzg:n,to:a}),p=[];for(let e=0;e<i.length;e++)p.push({blob:i[e],commitment:r[e],proof:s[e]});return p}class Be extends l{constructor({address:e}){super(`Address "${e}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class Oe extends l{constructor({chainId:e}){super("number"==typeof e?`Chain ID "${e}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Ue extends l{constructor({cause:e,maxFeePerGas:t}={}){super(`The fee cap (\`maxFeePerGas\`${t?` = ${te(t)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:"FeeCapTooHighError"})}}Object.defineProperty(Ue,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class Re extends l{constructor({cause:e,maxPriorityFeePerGas:t,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${t?` = ${te(t)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${te(n)} gwei`:""}).`].join("\n"),{cause:e,name:"TipAboveFeeCapError"})}}Object.defineProperty(Re,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class He extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const e=this.keys().next().value;e&&this.delete(e)}return this}}const Ne=BigInt(2**32-1),ze=BigInt(32);function qe(e,t=!1){return t?{h:Number(e&Ne),l:Number(e>>ze&Ne)}:{h:0|Number(e>>ze&Ne),l:0|Number(e&Ne)}}function Ge(e,t=!1){let n=new Uint32Array(e.length),a=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:r,l:s}=qe(e[i],t);[n[i],a[i]]=[r,s]}return[n,a]}const Ve=[],$e=[],Ke=[],We=BigInt(0),Ze=BigInt(1),Xe=BigInt(2),Qe=BigInt(7),je=BigInt(256),Ye=BigInt(113);for(let e=0,t=Ze,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],Ve.push(2*(5*a+n)),$e.push((e+1)*(e+2)/2%64);let i=We;for(let e=0;e<7;e++)t=(t<<Ze^(t>>Qe)*Ye)%je,t&Xe&&(i^=Ze<<(Ze<<BigInt(e))-Ze);Ke.push(i)}const[Je,et]=Ge(Ke,!0),tt=(e,t,n)=>n>32?((e,t,n)=>t<<n-32|e>>>64-n)(e,t,n):((e,t,n)=>e<<n|t>>>32-n)(e,t,n),nt=(e,t,n)=>n>32?((e,t,n)=>e<<n-32|t>>>64-n)(e,t,n):((e,t,n)=>t<<n|e>>>32-n)(e,t,n);class at extends fe{constructor(e,t,n,a=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=a,this.rounds=i,oe(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var r;this.state=new Uint8Array(200),this.state32=(r=this.state,new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)))}keccak(){me||Te(this.state32),function(e,t=24){const n=new Uint32Array(10);for(let a=24-t;a<24;a++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const a=(t+8)%10,i=(t+2)%10,r=n[i],s=n[i+1],p=tt(r,s,1)^n[a],o=nt(r,s,1)^n[a+1];for(let n=0;n<50;n+=10)e[t+n]^=p,e[t+n+1]^=o}let t=e[2],i=e[3];for(let n=0;n<24;n++){const a=$e[n],r=tt(t,i,a),s=nt(t,i,a),p=Ve[n];t=e[p],i=e[p+1],e[p]=r,e[p+1]=s}for(let t=0;t<50;t+=10){for(let a=0;a<10;a++)n[a]=e[t+a];for(let a=0;a<10;a++)e[t+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=Je[a],e[1]^=et[a]}n.fill(0)}(this.state32,this.rounds),me||Te(this.state32),this.posOut=0,this.pos=0}update(e){ue(this);const{blockLen:t,state:n}=this,a=(e=be(e)).length;for(let i=0;i<a;){const r=Math.min(t-this.pos,a-i);for(let t=0;t<r;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:n,blockLen:a}=this;e[n]^=t,128&t&&n===a-1&&this.keccak(),e[a-1]^=128,this.keccak()}writeInto(e){ue(this,!1),ye(e),this.finish();const t=this.state,{blockLen:n}=this;for(let a=0,i=e.length;a<i;){this.posOut>=n&&this.keccak();const r=Math.min(n-this.posOut,i-a);e.set(t.subarray(this.posOut,this.posOut+r),a),this.posOut+=r,a+=r}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return oe(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(le(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:a,rounds:i,enableXOF:r}=this;return e||(e=new at(t,n,a,r,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=n,e.outputLen=a,e.enableXOF=r,e.destroyed=this.destroyed,e}}const it=((e,t,n)=>he((()=>new at(t,e,n))))(1,136,32);const rt=new He(8192);function st(e,t){if(rt.has(`${e}.${t}`))return rt.get(`${e}.${t}`);const n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),a=function(e,t){const n=t||"hex",a=it(T(e,{strict:!1})?F(e):e);return"bytes"===n?a:x(a)}(S(n),"bytes"),i=(t?n.substring(`${t}0x`.length):n).split("");for(let e=0;e<40;e+=2)a[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(15&a[e>>1])>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());const r=`0x${i.join("")}`;return rt.set(`${e}.${t}`,r),r}const pt=/^0x[a-fA-F0-9]{40}$/,ot=new He(8192);function yt(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(ot.has(a))return ot.get(a);const i=!(!pt.test(e)||e.toLowerCase()!==e&&n&&st(e)!==e);return ot.set(a,i),i}function ut(e,t,n,{strict:a}={}){return T(e,{strict:!1})?function(e,t,n,{strict:a}={}){lt(e,t);const i=`0x${e.replace("0x","").slice(2*(t??0),2*(n??e.length))}`;a&&dt(i,t,n);return i}(e,t,n,{strict:a}):function(e,t,n,{strict:a}={}){lt(e,t);const i=e.slice(t,n);a&&dt(i,t,n);return i}(e,t,n,{strict:a})}function lt(e,t){if("number"==typeof t&&t>0&&t>b(e)-1)throw new h({offset:t,position:"start",size:b(e)})}function dt(e,t,n){if("number"==typeof t&&"number"==typeof n&&b(e)!==n-t)throw new h({offset:n,position:"end",size:b(e)})}function ct(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:a,to:i}=e;if(t<=0)throw new Oe({chainId:t});if(i&&!yt(i))throw new Be({address:i});if(a&&a>V)throw new Ue({maxFeePerGas:a});if(n&&a&&n>a)throw new Re({maxFeePerGas:a,maxPriorityFeePerGas:n})}function mt(e){if(!e||0===e.length)return[];const t=[];for(let n=0;n<e.length;n++){const{address:a,storageKeys:i}=e[n];for(let e=0;e<i.length;e++)if(i[e].length-2!=64)throw new re({storageKey:i[e]});if(!yt(a,{strict:!1}))throw new Be({address:a});t.push([a,i])}return t}function Tt(e,t){const n=function(e){if(e.type)return e.type;if(void 0!==e.authorizationList)return"eip7702";if(void 0!==e.blobs||void 0!==e.blobVersionedHashes||void 0!==e.maxFeePerBlobGas||void 0!==e.sidecars)return"eip4844";if(void 0!==e.maxFeePerGas||void 0!==e.maxPriorityFeePerGas)return"eip1559";if(void 0!==e.gasPrice)return void 0!==e.accessList?"eip2930":"legacy";throw new ie({transaction:e})}(e);return"eip1559"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerGas:p,maxPriorityFeePerGas:o,accessList:y,data:u}=e;ct(e);const l=mt(y),d=[x(n),i?x(i):"0x",o?x(o):"0x",p?x(p):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",u??"0x",l,...bt(e,t)];return $(["0x02",j(d)])}(e,t):"eip2930"===n?function(e,t){const{chainId:n,gas:a,data:i,nonce:r,to:s,value:p,accessList:o,gasPrice:y}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(t<=0)throw new Oe({chainId:t});if(r&&!yt(r))throw new Be({address:r});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>V)throw new Ue({maxFeePerGas:a})}(e);const u=mt(o),d=[x(n),r?x(r):"0x",y?x(y):"0x",a?x(a):"0x",s??"0x",p?x(p):"0x",i??"0x",u,...bt(e,t)];return $(["0x01",j(d)])}(e,t):"eip4844"===n?function(e,t){const{chainId:n,gas:a,nonce:i,to:r,value:s,maxFeePerBlobGas:p,maxFeePerGas:o,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{blobVersionedHashes:t}=e;if(t){if(0===t.length)throw new Se;for(const e of t){const t=b(e),n=L(ut(e,0,1));if(32!==t)throw new De({hash:e,size:t});if(1!==n)throw new Ee({hash:e,version:n})}}ct(e)}(e);let d=e.blobVersionedHashes,c=e.sidecars;if(e.blobs&&(void 0===d||void 0===c)){const t="string"==typeof e.blobs[0]?e.blobs:e.blobs.map((e=>v(e))),n=e.kzg,a=se({blobs:t,kzg:n});if(void 0===d&&(d=function(e){const{commitments:t,version:n}=e,a=e.to??("string"==typeof t[0]?"hex":"bytes"),i=[];for(const e of t)i.push(Pe({commitment:e,to:a,version:n}));return i}({commitments:a})),void 0===c){c=Le({blobs:t,commitments:a,proofs:pe({blobs:t,commitments:a,kzg:n})})}}const m=mt(u),T=[x(n),i?x(i):"0x",y?x(y):"0x",o?x(o):"0x",a?x(a):"0x",r??"0x",s?x(s):"0x",l??"0x",m,p?x(p):"0x",d??[],...bt(e,t)],f=[],h=[],g=[];if(c)for(let e=0;e<c.length;e++){const{blob:t,commitment:n,proof:a}=c[e];f.push(t),h.push(n),g.push(a)}return $(["0x03",j(c?[T,f,h,g]:T)])}(e,t):"eip7702"===n?function(e,t){const{authorizationList:n,chainId:a,gas:i,nonce:r,to:s,value:p,maxFeePerGas:o,maxPriorityFeePerGas:y,accessList:u,data:l}=e;!function(e){const{authorizationList:t}=e;if(t)for(const e of t){const{chainId:t}=e,n=e.address;if(!yt(n))throw new Be({address:n});if(t<0)throw new Oe({chainId:t})}ct(e)}(e);const d=mt(u),c=function(e){if(!e||0===e.length)return[];const t=[];for(const n of e){const{chainId:e,nonce:a,...i}=n,r=n.address;t.push([e?x(e):"0x",r,a?x(a):"0x",...bt({},i)])}return t}(n);return $(["0x04",j([x(a),r?x(r):"0x",y?x(y):"0x",o?x(o):"0x",i?x(i):"0x",s??"0x",p?x(p):"0x",l??"0x",d,c,...bt(e,t)])])}(e,t):function(e,t){const{chainId:n=0,gas:a,data:i,nonce:r,to:s,value:p,gasPrice:o}=e;!function(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:i,to:r}=e;if(r&&!yt(r))throw new Be({address:r});if(void 0!==t&&t<=0)throw new Oe({chainId:t});if(n||i)throw new l("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>V)throw new Ue({maxFeePerGas:a})}(e);let y=[r?x(r):"0x",o?x(o):"0x",a?x(a):"0x",s??"0x",p?x(p):"0x",i??"0x"];if(t){const e=(()=>{if(t.v>=35n){return(t.v-35n)/2n>0?t.v:27n+(35n===t.v?0n:1n)}if(n>0)return BigInt(2*n)+BigInt(35n+t.v-27n);const e=27n+(27n===t.v?0n:1n);if(t.v!==e)throw new ae({v:t.v});return e})(),a=f(t.r),i=f(t.s);y=[...y,x(e),"0x00"===a?"0x":a,"0x00"===i?"0x":i]}else n>0&&(y=[...y,x(n),"0x","0x"]);return j(y)}(e,t)}function bt(e,t){const n=t??e,{v:a,yParity:i}=n;if(void 0===n.r)return[];if(void 0===n.s)return[];if(void 0===a&&void 0===i)return[];const r=f(n.r),s=f(n.s);return["number"==typeof i?i?x(1):"0x":0n===a?"0x":1n===a?x(1):27n===a?"0x":x(1),"0x00"===r?"0x":r,"0x00"===s?"0x":s]}const ft={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}};function ht(e,t){return function(e){return"deposit"===e.type||void 0!==e.sourceHash}(e)?function(e){!function(e){const{from:t,to:n}=e;if(t&&!yt(t))throw new Be({address:t});if(n&&!yt(n))throw new Be({address:n})}(e);const{sourceHash:t,data:n,from:a,gas:i,isSystemTx:r,mint:s,to:p,value:o}=e;return $(["0x7e",j([t,a,p??"0x",s?x(s):"0x",o?x(o):"0x",i?x(i):"0x",r?"0x1":"0x",n??"0x"])])}(e):Tt(e,t)}const gt={contracts:ft,formatters:{block:N({format(e){const t=e.transactions?.map((e=>{if("string"==typeof e)return e;const t=U(e);return"0x7e"===t.typeHex&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?E(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}));return{transactions:t,stateRoot:e.stateRoot}}}),transaction:R({format(e){const t={};return"0x7e"===e.type&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?E(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:G({format:e=>({l1GasPrice:e.l1GasPrice?E(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?E(e.l1GasUsed):null,l1Fee:e.l1Fee?E(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null})})},serializers:{transaction:ht}},wt=1,It=p({...gt,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...gt.contracts,disputeGameFactory:{[wt]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[wt]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[wt]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[wt]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:1}),xt=11155111,vt=p({...gt,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...gt.contracts,disputeGameFactory:{[xt]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[xt]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[xt]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[xt]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:xt});p({id:53456,name:"BirdLayer",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.birdlayer.xyz","https://rpc1.birdlayer.xyz"],webSocket:["wss://rpc.birdlayer.xyz/ws"]}},blockExplorers:{default:{name:"BirdLayer Explorer",url:"https://scan.birdlayer.xyz"}}});const kt=1;p({...gt,id:60808,name:"BOB",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.gobob.xyz"],webSocket:["wss://rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Explorer",url:"https://explorer.gobob.xyz"}},contracts:{...gt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:23131},l2OutputOracle:{[kt]:{address:"0xdDa53E23f8a32640b04D7256e651C1db98dB11C1",blockCreated:4462615}},portal:{[kt]:{address:"0x8AdeE124447435fE03e3CD24dF3f4cAE32E65a3E",blockCreated:4462615}}},sourceId:1});const Mt=11155111;p({...gt,id:808813,name:"BOB Sepolia",nativeCurrency:{decimals:18,name:"ETH",symbol:"ETH"},rpcUrls:{default:{http:["https://bob-sepolia.rpc.gobob.xyz"],webSocket:["wss://bob-sepolia.rpc.gobob.xyz"]}},blockExplorers:{default:{name:"BOB Sepolia Explorer",url:"https://bob-sepolia.explorer.gobob.xyz"}},contracts:{...gt.contracts,multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:35677},l2OutputOracle:{[Mt]:{address:"0x14D0069452b4AE2b250B395b8adAb771E4267d2f",blockCreated:4462615}},portal:{[Mt]:{address:"0x867B1Aa872b9C8cB5E9F7755feDC45BB24Ad0ae4",blockCreated:4462615}}},testnet:!0,sourceId:Mt});p({id:44,name:"Crab Network",nativeCurrency:{decimals:18,name:"Crab Network Native Token",symbol:"CRAB"},rpcUrls:{default:{http:["https://crab-rpc.darwinia.network"],webSocket:["wss://crab-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://crab-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:3032593}}}),p({id:66665,name:"Creator",nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.creatorchain.io"]}},blockExplorers:{default:{name:"Explorer",url:"https://explorer.creatorchain.io"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11"}},testnet:!0}),p({id:53457,name:"DODOchain Testnet",nativeCurrency:{decimals:18,name:"DODO",symbol:"DODO"},rpcUrls:{default:{http:["https://dodochain-testnet.alt.technology"],webSocket:["wss://dodochain-testnet.alt.technology/ws"]}},blockExplorers:{default:{name:"DODOchain Testnet (Sepolia) Explorer",url:"https://testnet-scan.dodochain.com"}},testnet:!0});p({...gt,id:3397901,network:"funkiSepolia",name:"Funki Sepolia Sandbox",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://funki-testnet.alt.technology"]}},blockExplorers:{default:{name:"Funki Sepolia Sandbox Explorer",url:"https://sepolia-sandbox.funkichain.com/"}},testnet:!0,contracts:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1620204}},sourceId:11155111});const Pt=17e3;p({...gt,name:"Garnet Testnet",testnet:!0,id:17069,sourceId:Pt,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.garnetchain.com"],webSocket:["wss://rpc.garnetchain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.garnetchain.com"}},contracts:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[Pt]:{address:"0x57ee40586fbE286AfC75E67cb69511A6D9aF5909",blockCreated:1274684}},l2OutputOracle:{[Pt]:{address:"0xCb8E7AC561b8EF04F2a15865e9fbc0766FEF569B",blockCreated:1274684}},l1StandardBridge:{[Pt]:{address:"0x09bcDd311FE398F80a78BE37E489f5D440DB95DE",blockCreated:1274684}}}});p({id:701,name:"Koi Network",nativeCurrency:{decimals:18,name:"Koi Network Native Token",symbol:"KRING"},rpcUrls:{default:{http:["https://koi-rpc.darwinia.network"],webSocket:["wss://koi-rpc.darwinia.network"]}},blockExplorers:{default:{name:"Blockscout",url:"https://koi-scan.darwinia.network"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:180001}},testnet:!0});const Ft=11155111;p({...gt,name:"Pyrope Testnet",testnet:!0,id:695569,sourceId:Ft,nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc.pyropechain.com"],webSocket:["wss://rpc.pyropechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://pyrope.blockscout.com"}},contracts:{...gt.contracts,l1StandardBridge:{[Ft]:{address:"0xC24932c31D9621aE9e792576152B7ef010cFC2F8"}}}});const _t=1;p({...gt,name:"Redstone",id:690,sourceId:1,nativeCurrency:{decimals:18,name:"Ether",symbol:"ETH"},rpcUrls:{default:{http:["https://rpc.redstonechain.com"],webSocket:["wss://rpc.redstonechain.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://explorer.redstone.xyz"}},contracts:{...gt.contracts,multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11"},portal:{[_t]:{address:"0xC7bCb0e8839a28A1cFadd1CF716de9016CdA51ae",blockCreated:19578329}},l2OutputOracle:{[_t]:{address:"0xa426A052f657AEEefc298b3B5c35a470e4739d69",blockCreated:19578337}},l1StandardBridge:{[_t]:{address:"0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69",blockCreated:19578331}}}});const At={[It.id]:"0x51Bba15255406Cfe7099a42183302640ba7dAFDC",[vt.id]:"0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC"},Ct={[It.id]:"0xf785bb58059fab6fb19bdda2cb9078d9e546efdc",[vt.id]:"0x24347e0dd16357059abfc1b321df354873552fdc"},St={[It.id]:"0x000000000D564D5be76f7f0d28fE52605afC7Cf8",[vt.id]:"0x79FC52701cD4BE6f9Ba9aDC94c207DE37e3314eb"},Dt={[It.id]:"0x9E433F32bb5481a9CA7DFF5b3af74A7ed041a888",[vt.id]:"0x4bd2ca15286c96e4e731337de8b375da6841e888"},Et={[It.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[vt.id]:"0x227Fc288aC56E169f2BfEA82e07F8635054d4136"},Lt={[It.id]:"0x4dc442403e8c758425b93c59dc737da522f32640",[vt.id]:"0x7922c1ead7c5825fb52ed6b14f397d064508acbe"},Bt={[It.id]:"0xCc7A4A00072ccbeEEbd999edc812C0ce498Fb63B",[vt.id]:"0x7D375C9133721083DF7b7e5Cb0Ed8Fc78862dfe3"},Ot={[It.id]:"0xb4512bf57d50fbcb64a3adf8b17a79b2a204c18c",[vt.id]:"0x96be8ff5e244294a34bfa507a39190dc7a839baa"},Ut={[It.id]:"0x66681f10BA90496241A25e33380004f30Dfd8aa8",[vt.id]:"0xa2107050ACEf4809c88Ab744F8e667605db5ACDB"},Rt={[It.id]:"0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c",[vt.id]:"0x6f2fa01a05ff8b6efbfefd91a3b85aaf19265a00"},Ht={[It.id]:"0x68d967d25806fef4aa134db031cdcc55d3e20f92",[vt.id]:"0x821d9f6075e7971cc71c379081de9d532f5f9957"},Nt={[It.id]:"0xfa9e8528ee95eb109bffd1a2d59cb95b300a672a",[vt.id]:"0xb2f5d987de90e026b61805e60b6002d367461474"},zt={[It.id]:"0x712fa8ddc7347b4b6b029aa21710f365cd02d898",[vt.id]:"0x17E02501dE3e420347e7C5fCAe3AD787C5aea690"},qt={[It.id]:"0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",[vt.id]:"0xd2f3c6185e06925dcbe794c6574315b2202e9ccd"},Gt={[It.id]:"0x498581fF718922c3f8e6A244956aF099B2652b2b",[vt.id]:"0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408"},Vt={[It.id]:"0x6fF5693b99212Da76ad316178A184AB56D299b43",[vt.id]:"0x492E6456D9528771018DeB9E87ef7750EF184104"},$t={[It.id]:"0x0d5e0f971ed27fbff6c2837bf31316121532048d",[vt.id]:"0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba"},Kt={[It.id]:"0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71",[vt.id]:"0x571291b572ed32ce6751a2Cb2486EbEe8DEfB9B4"},Wt={[It.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3",[vt.id]:"0x000000000022D473030F116dDEE9F6B43aC78BA3"},Zt={[It.id]:{currency0:n.zeroAddress,currency1:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",fee:500,tickSpacing:10,hooks:n.zeroAddress},[vt.id]:{currency0:n.zeroAddress,currency1:"0x036CbD53842c5426634e7929541eC2318f3dCF7e",fee:0,tickSpacing:30,hooks:n.zeroAddress}},Xt=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_payee",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",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"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",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"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"Withdrawal",type:"event"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",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:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"premineInfo",outputs:[{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_recipient",type:"address"},{internalType:"bool",name:"_unwrap",type:"bool"}],name:"withdrawFees",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],Qt=e=>e.startsWith("ipfs://")?`https://gateway.pinata.cloud/ipfs/${e.slice(7)}`:e,jt=async e=>{try{const t={pinataOptions:{cidVersion:1},pinataMetadata:{name:e.name||null,keyvalues:e.metadata||{}},pinataContent:e.json},n=await s.default.post("https://api.pinata.cloud/pinning/pinJSONToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"application/json"}});return{IpfsHash:n.data.IpfsHash,PinSize:n.data.PinSize,Timestamp:n.data.Timestamp,isDuplicate:n.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload JSON to IPFS: ${e.response?.data?.message||e.message}`);throw e}},Yt=async e=>{try{const t=new FormData,n=e.base64Image.split(",")[1]||e.base64Image,a=atob(n),i=[];for(let e=0;e<a.length;e+=1024){const t=a.slice(e,e+1024),n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);const r=new Uint8Array(n);i.push(r)}let r="image/png";e.base64Image.startsWith("data:")&&(r=e.base64Image.split(";")[0].split(":")[1]);const p=new Blob(i,{type:r}),o=e.name||`image.${r.split("/")[1]}`,y=new File([p],o,{type:r});t.append("file",y);const u={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(u));const l={cidVersion:1};t.append("pinataOptions",JSON.stringify(l));const d=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:d.data.IpfsHash,PinSize:d.data.PinSize,Timestamp:d.data.Timestamp,isDuplicate:d.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload image to IPFS: ${e.response?.data?.message||e.message}`);throw e}},Jt=async(e,t)=>{const n=await Yt({pinataConfig:t.pinataConfig,base64Image:t.metadata.base64Image}),a={name:e,description:t.metadata.description,image:`ipfs://${n.IpfsHash}`,external_link:t.metadata.websiteUrl,collaborators:[],discordUrl:t.metadata.discordUrl,twitterUrl:t.metadata.twitterUrl,telegramUrl:t.metadata.telegramUrl};return`ipfs://${(await jt({pinataConfig:t.pinataConfig,json:a})).IpfsHash}`};class en{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:Xt,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}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({blockNumber: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 watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero: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({blockNumber:e.blockNumber}),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const{flAmount0:i,flAmount1:r,flFee0:s,flFee1:p,ispAmount0:o,ispAmount1:y,ispFee0:u,ispFee1:l,uniAmount0:d,uniAmount1:c,uniFee0:m,uniFee1:T}=e.args,b=i+o+d,f=r+y+c,h=s+u+m,g=p+l+T;let w,I;t?(I=b<0?"BUY":"SELL",w=h<0):(I=f<0?"BUY":"SELL",w=g<0);const x=b<0?-b:b,v=f<0?-f:f,k=h<0?-h:h,M=g<0?-g:g,P={isInFLETH:w,amount:t?w?k:M:w?M:k};return"BUY"===I?{...e,timestamp:a,type:I,delta:{coinsBought:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHSold:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}:{...e,timestamp:a,type:I,delta:{coinsSold:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHBought:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}})));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 tn=e=>n.hexToBigInt(e),nn=e=>n.pad(n.encodeAbiParameters([{type:"uint256",name:"value"}],[e]),{size:32,dir:"right"}),an=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyUnlocked",type:"error"},{inputs:[{internalType:"address",name:"currency0",type:"address"},{internalType:"address",name:"currency1",type:"address"}],name:"CurrenciesOutOfOrderOrEqual",type:"error"},{inputs:[],name:"CurrencyNotSettled",type:"error"},{inputs:[],name:"DelegateCallNotAllowed",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"ManagerLocked",type:"error"},{inputs:[],name:"MustClearExactPositiveDelta",type:"error"},{inputs:[],name:"NonzeroNativeValue",type:"error"},{inputs:[],name:"PoolNotInitialized",type:"error"},{inputs:[],name:"ProtocolFeeCurrencySynced",type:"error"},{inputs:[{internalType:"uint24",name:"fee",type:"uint24"}],name:"ProtocolFeeTooLarge",type:"error"},{inputs:[],name:"SwapAmountCannotBeZero",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooLarge",type:"error"},{inputs:[{internalType:"int24",name:"tickSpacing",type:"int24"}],name:"TickSpacingTooSmall",type:"error"},{inputs:[],name:"UnauthorizedDynamicLPFeeUpdate",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Donate",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"Currency",name:"currency0",type:"address"},{indexed:!0,internalType:"Currency",name:"currency1",type:"address"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"},{indexed:!1,internalType:"int24",name:"tickSpacing",type:"int24"},{indexed:!1,internalType:"contract IHooks",name:"hooks",type:"address"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Initialize",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"int256",name:"liquidityDelta",type:"int256"},{indexed:!1,internalType:"bytes32",name:"salt",type:"bytes32"}],name:"ModifyLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"OperatorSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"protocolFeeController",type:"address"}],name:"ProtocolFeeControllerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"protocolFee",type:"uint24"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"fee",type:"uint24"}],name:"Swap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"caller",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"allowance",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"clear",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"Currency",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"collectProtocolFees",outputs:[{internalType:"uint256",name:"amountCollected",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"donate",outputs:[{internalType:"BalanceDelta",name:"delta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"extsload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"startSlot",type:"bytes32"},{internalType:"uint256",name:"nSlots",type:"uint256"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"extsload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"slots",type:"bytes32[]"}],name:"exttload",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"exttload",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"initialize",outputs:[{internalType:"int24",name:"tick",type:"int24"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isOperator",outputs:[{internalType:"bool",name:"isOperator",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"modifyLiquidity",outputs:[{internalType:"BalanceDelta",name:"callerDelta",type:"int256"},{internalType:"BalanceDelta",name:"feesAccrued",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFeeController",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"protocolFeesAccrued",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setOperator",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newProtocolFee",type:"uint24"}],name:"setProtocolFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"controller",type:"address"}],name:"setProtocolFeeController",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"settle",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"}],name:"settleFor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"params",type:"tuple"},{internalType:"bytes",name:"hookData",type:"bytes"}],name:"swap",outputs:[{internalType:"BalanceDelta",name:"swapDelta",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"sync",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"Currency",name:"currency",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"take",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlock",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"key",type:"tuple"},{internalType:"uint24",name:"newDynamicLPFee",type:"uint24"}],name:"updateDynamicLPFee",outputs:[],stateMutability:"nonpayable",type:"function"}];class rn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:an,address:e})}poolStateSlot({poolId:e}){const t=nn(6n);return n.keccak256(n.encodePacked(["bytes32","bytes32"],[e,t]))}async poolSlot0({poolId:e}){const t=this.poolStateSlot({poolId:e});let n={sqrtPriceX96:0n,tick:0,protocolFee:0,lpFee:0};try{const e=await this.contract.read("extsload",{slot:t}),a=Array.isArray(e)?e[0]:e,i=BigInt(a),r=i&BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"),s=i>>160n,p=BigInt("0xFFFFFF"),o=Number(s&p),y=o>8388607?o-16777216:o,u=i>>184n,l=BigInt("0xFFFFFF"),d=Number(u&l),c=i>>208n,m=BigInt("0xFFFFFF");n={sqrtPriceX96:r,tick:y,protocolFee:d,lpFee:Number(c&m)}}catch(e){console.error(e)}return n}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])),o=this.poolStateSlot({poolId:e}),y=nn(tn(o)+6n),u=n.keccak256(n.encodePacked(["bytes32","bytes32"],[p,y])),l=await this.contract.read("extsload",{startSlot:u,nSlots:3n});console.log({data:l});return{liquidity:n.hexToBigInt(l[0]),feeGrowthInside0LastX128:n.hexToBigInt(l[1]),feeGrowthInside1LastX128:n.hexToBigInt(l[2])}}async getStateSlot(e){const t=await this.contract.read("extsload",{slot:e});return Array.isArray(t)?t[0]:t}}const sn=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getFeeGrowthGlobals",outputs:[{internalType:"uint256",name:"feeGrowthGlobal0",type:"uint256"},{internalType:"uint256",name:"feeGrowthGlobal1",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],name:"getFeeGrowthInside",outputs:[{internalType:"uint256",name:"feeGrowthInside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"bytes32",name:"positionId",type:"bytes32"}],name:"getPositionInfo",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"address",name:"owner",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"bytes32",name:"salt",type:"bytes32"}],name:"getPositionInfo",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"bytes32",name:"positionId",type:"bytes32"}],name:"getPositionLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"getSlot0",outputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{internalType:"int24",name:"tick",type:"int24"},{internalType:"uint24",name:"protocolFee",type:"uint24"},{internalType:"uint24",name:"lpFee",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int16",name:"tick",type:"int16"}],name:"getTickBitmap",outputs:[{internalType:"uint256",name:"tickBitmap",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickFeeGrowthOutside",outputs:[{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickInfo",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"},{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"},{internalType:"int24",name:"tick",type:"int24"}],name:"getTickLiquidity",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"}];class pn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:sn,address:e})}poolSlot0({poolId:e}){return this.contract.read("getSlot0",{poolId:e})}positionInfo({poolId:e,owner:t,tickLower:a,tickUpper:i,salt:r}){const s=n.pad(n.stringToHex(r),{size:32,dir:"right"});return this.contract.read("getPositionInfo",{poolId:e,owner:t,tickLower:a,tickUpper:i,salt:s})}getTickLiquidity({poolId:e,tick:t}){return this.contract.read("getTickLiquidity",{poolId:e,tick:t})}}const on=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_startsAt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endsAt",type:"uint256"}],name:"FairLaunchCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_revenue",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_supply",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endedAt",type:"uint256"}],name:"FairLaunchEnded",type:"event"},{inputs:[],name:"FAIR_LAUNCH_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_tokenFees",type:"uint256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"closePosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int24",name:"_initialTick",type:"int24"},{internalType:"uint256",name:"_flaunchesAt",type:"uint256"},{internalType:"uint256",name:"_initialTokenFairLaunch",type:"uint256"}],name:"createPosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchInfo",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int256",name:"_amountSpecified",type:"int256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"fillFromPosition",outputs:[{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"BalanceDelta",name:"balanceDelta_",type:"int256"},{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"fairLaunchInfo_",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"inFairLaunchWindow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int256",name:"_revenue",type:"int256"}],name:"modifyRevenue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}];class yn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:on,address:e})}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 un=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class ln{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:un,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const dn=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CREATOR_FEE_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"FAIR_LAUNCH_SUPPLY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"USDC_MARKET_CAP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"address",name:"creator",type:"address"}],internalType:"struct FastFlaunchZap.FastFlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"}];class cn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:dn,address:e})}}class mn extends cn{constructor(e,n=t.createDrift()){super(e,n)}fastFlaunch({name:e,symbol:t,tokenUri:n,creator:a}){return this.contract.write("flaunch",{_params:{name:e,symbol:t,tokenUri:n,creator:a}})}async fastFlaunchIPFS({name:e,symbol:t,creator:n,metadata:a,pinataConfig:i}){const r=await Jt(e,{metadata:a,pinataConfig:i});return this.fastFlaunch({name:e,symbol:t,tokenUri:r,creator:n})}}const Tn=[{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"contract Flaunch",name:"_flaunchContract",type:"address"},{internalType:"contract IFLETH",name:"_flETH",type:"address"},{internalType:"contract PoolSwap",name:"_poolSwap",type:"address"},{internalType:"contract ITreasuryManagerFactory",name:"_treasuryManagerFactory",type:"address"},{internalType:"contract IMerkleAirdrop",name:"_merkleAirdrop",type:"address"},{internalType:"contract WhitelistFairLaunch",name:"_whitelistFairLaunch",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CreatorCannotBeZero",type:"error"},{inputs:[],name:"InsufficientMemecoinsForAirdrop",type:"error"},{inputs:[{internalType:"uint256",name:"_premineAmount",type:"uint256"},{internalType:"uint256",name:"_slippage",type:"uint256"},{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"ethRequired_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flETH",outputs:[{internalType:"contract IFLETH",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_flaunchParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_flaunchParams",type:"tuple"},{components:[{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"},{internalType:"uint256",name:"maxTokens",type:"uint256"}],internalType:"struct FlaunchZap.WhitelistParams",name:"_whitelistParams",type:"tuple"},{components:[{internalType:"uint256",name:"airdropIndex",type:"uint256"},{internalType:"uint256",name:"airdropAmount",type:"uint256"},{internalType:"uint256",name:"airdropEndTime",type:"uint256"},{internalType:"bytes32",name:"merkleRoot",type:"bytes32"},{internalType:"string",name:"merkleIPFSHash",type:"string"}],internalType:"struct FlaunchZap.AirdropParams",name:"_airdropParams",type:"tuple"},{components:[{internalType:"address",name:"manager",type:"address"},{internalType:"bytes",name:"initializeData",type:"bytes"},{internalType:"bytes",name:"depositData",type:"bytes"}],internalType:"struct FlaunchZap.TreasuryManagerParams",name:"_treasuryManagerParams",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"uint256",name:"ethSpent_",type:"uint256"},{internalType:"address",name:"deployedManager_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"merkleAirdrop",outputs:[{internalType:"contract IMerkleAirdrop",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolSwap",outputs:[{internalType:"contract PoolSwap",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryManagerFactory",outputs:[{internalType:"contract ITreasuryManagerFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"whitelistFairLaunch",outputs:[{internalType:"contract WhitelistFairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}];class bn{constructor(e,n=t.createDrift()){if(this.TOTAL_SUPPLY=100n*10n**27n,!e)throw new Error("Address is required");this.contract=n.contract({abi:Tn,address:e})}}class fn extends bn{constructor(e,n,a=t.createDrift()){super(n,a),this.chainId=e}flaunchWithRevenueManager(e){const t=n.parseUnits(e.initialMarketCapUSD.toString(),6),a=n.encodeAbiParameters([{type:"uint256"}],[t]),i=BigInt(100*e.fairLaunchPercent),r=100*e.creatorFeeAllocationPercent;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,creator:e.creator,creatorFeeAllocation:r,flaunchAt:e.flaunchAt,initialPriceParams:a,feeCalculatorParams:"0x"},_treasuryManagerParams:{manager:e.revenueManagerInstanceAddress,initializeData:"0x",depositData:"0x"},_whitelistParams:{merkleRoot:"0x",merkleIPFSHash:"",maxTokens:0n},_airdropParams:{airdropIndex:0n,airdropAmount:0n,airdropEndTime:0n,merkleRoot:"0x",merkleIPFSHash:""}})}async flaunchIPFSWithRevenueManager(e){const t=await Jt(e.name,{metadata:e.metadata,pinataConfig:e.pinataConfig});return this.flaunchWithRevenueManager({...e,tokenUri:t})}}const hn=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStatus",outputs:[{internalType:"bool",name:"_started",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class gn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:hn,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 wn=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerNotFlaunch",type:"error"},{inputs:[],name:"MintAddressIsZero",type:"error"},{inputs:[],name:"Permit2AllowanceIsFixedAtInfinity",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"CrosschainMint",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegator",type:"address"},{indexed:!0,internalType:"address",name:"fromDelegate",type:"address"},{indexed:!0,internalType:"address",name:"toDelegate",type:"address"}],name:"DelegateChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegate",type:"address"},{indexed:!1,internalType:"uint256",name:"previousBalance",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newBalance",type:"uint256"}],name:"DelegateVotesChanged",type:"event"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"_name",type:"string"},{indexed:!1,internalType:"string",name:"_symbol",type:"string"}],name:"MetadataUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"CLOCK_MODE",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"burnFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint32",name:"pos",type:"uint32"}],name:"checkpoints",outputs:[{components:[{internalType:"uint32",name:"fromBlock",type:"uint32"},{internalType:"uint224",name:"votes",type:"uint224"}],internalType:"struct ERC20VotesUpgradeable.Checkpoint",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"clock",outputs:[{internalType:"uint48",name:"",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[],name:"creator",outputs:[{internalType:"address",name:"creator_",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainBurn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"crosschainMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"}],name:"delegate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"delegateBySig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"delegates",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"flaunch",outputs:[{internalType:"contract Flaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastTotalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"timepoint",type:"uint256"}],name:"getPastVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"getVotes",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"string",name:"tokenUri_",type:"string"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"numCheckpoints",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"_interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"version",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}];class In{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:wn,address:e})}name(){return this.contract.read("name")}symbol(){return this.contract.read("symbol")}tokenURI(){return this.contract.read("tokenURI")}balanceOf(e){return this.contract.read("balanceOf",{account:e})}}const xn=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"NotEnoughLiquidity",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"QuoteSwap",type:"error"},{inputs:[],name:"UnexpectedCallSuccess",type:"error"},{inputs:[{internalType:"bytes",name:"revertData",type:"bytes"}],name:"UnexpectedRevertBytes",type:"error"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactInput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactInputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"_quoteExactOutput",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"_quoteExactOutputSingle",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"exactCurrency",type:"address"},{components:[{internalType:"Currency",name:"intermediateCurrency",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct PathKey[]",name:"path",type:"tuple[]"},{internalType:"uint128",name:"exactAmount",type:"uint128"}],internalType:"struct IV4Quoter.QuoteExactParams",name:"params",type:"tuple"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"poolKey",type:"tuple"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"uint128",name:"exactAmount",type:"uint128"},{internalType:"bytes",name:"hookData",type:"bytes"}],internalType:"struct IV4Quoter.QuoteExactSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"}];class vn{constructor(e,n,a=t.createDrift()){if(this.chainId=e,!n)throw new Error("Address is required");this.contract=a.contract({abi:xn,address:n})}async getSellQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:e,path:[{fee:0,tickSpacing:60,hooks:a?At[this.chainId]:Ct[this.chainId],hookData:"0x",intermediateCurrency:St[this.chainId]},{fee:0,tickSpacing:60,hookData:"0x",hooks:Dt[this.chainId],intermediateCurrency:n.zeroAddress}]}})).amountOut}async getBuyQuoteExactInput(e,t,a){return(await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:t,exactCurrency:n.zeroAddress,path:[{fee:0,tickSpacing:60,hookData:"0x",hooks:Dt[this.chainId],intermediateCurrency:St[this.chainId]},{fee:0,tickSpacing:60,hooks:a?At[this.chainId]:Ct[this.chainId],hookData:"0x",intermediateCurrency:e}]}})).amountOut}async getBuyQuoteExactOutput(e,t,a){return(await this.contract.simulateWrite("quoteExactOutput",{params:{path:[{intermediateCurrency:n.zeroAddress,fee:0,tickSpacing:60,hookData:"0x",hooks:Dt[this.chainId]},{intermediateCurrency:St[this.chainId],fee:0,tickSpacing:60,hooks:a?At[this.chainId]:Ct[this.chainId],hookData:"0x"}],exactCurrency:e,exactAmount:t}})).amountIn}async getETHUSDCPrice(){const e=n.parseEther("1"),t=await this.contract.simulateWrite("quoteExactInput",{params:{exactAmount:e,exactCurrency:n.zeroAddress,path:[{fee:Zt[this.chainId].fee,tickSpacing:Zt[this.chainId].tickSpacing,hooks:Zt[this.chainId].hooks,hookData:"0x",intermediateCurrency:Zt[this.chainId].currency1}]}});return Number(Number(n.formatUnits(t.amountOut,6)).toFixed(2))}}const kn=[{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"}],name:"AllowanceExpired",type:"error"},{inputs:[],name:"ExcessiveInvalidation",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InsufficientAllowance",type:"error"},{inputs:[{internalType:"uint256",name:"maxAmount",type:"uint256"}],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"uint256",name:"signatureDeadline",type:"uint256"}],name:"SignatureExpired",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"address",name:"spender",type:"address"}],name:"Lockdown",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint48",name:"newNonce",type:"uint48"},{indexed:!1,internalType:"uint48",name:"oldNonce",type:"uint48"}],name:"NonceInvalidation",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"},{indexed:!1,internalType:"uint48",name:"nonce",type:"uint48"}],name:"Permit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"uint256",name:"word",type:"uint256"},{indexed:!1,internalType:"uint256",name:"mask",type:"uint256"}],name:"UnorderedNonceInvalidation",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint48",name:"newNonce",type:"uint48"}],name:"invalidateNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"wordPos",type:"uint256"},{internalType:"uint256",name:"mask",type:"uint256"}],name:"invalidateUnorderedNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"}],internalType:"struct IAllowanceTransfer.TokenSpenderPair[]",name:"approvals",type:"tuple[]"}],name:"lockdown",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"nonceBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails[]",name:"details",type:"tuple[]"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitBatch",name:"permitBatch",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails",name:"details",type:"tuple"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitSingle",name:"permitSingle",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],internalType:"struct IAllowanceTransfer.AllowanceTransferDetails[]",name:"transferDetails",type:"tuple[]"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];class Mn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:kn,address:e})}async allowance(e,t,n){return this.contract.read("allowance",{0:e,1:t,2:n})}}const Pn=[{inputs:[{components:[{internalType:"address",name:"nativeToken",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution",type:"tuple"},{internalType:"contract IInitialPrice",name:"initialPrice",type:"address"},{internalType:"address",name:"protocolOwner",type:"address"},{internalType:"address",name:"protocolFeeRecipient",type:"address"},{internalType:"address",name:"flayGovernance",type:"address"},{internalType:"address",name:"feeEscrow",type:"address"},{internalType:"contract FeeExemptions",name:"feeExemptions",type:"address"},{internalType:"contract TreasuryActionManager",name:"actionManager",type:"address"},{internalType:"contract BidWall",name:"bidWall",type:"address"},{internalType:"contract FairLaunch",name:"fairLaunch",type:"address"}],internalType:"struct PositionManager.ConstructorParams",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotBidWall",type:"error"},{inputs:[{internalType:"address",name:"_caller",type:"address"}],name:"CallerNotCreator",type:"error"},{inputs:[],name:"CannotBeInitializedDirectly",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"HookNotImplemented",type:"error"},{inputs:[{internalType:"uint256",name:"_paid",type:"uint256"},{internalType:"uint256",name:"_required",type:"uint256"}],name:"InsufficientFlaunchFee",type:"error"},{inputs:[],name:"InvalidPool",type:"error"},{inputs:[],name:"LockFailure",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"NotSelf",type:"error"},{inputs:[],name:"ProtocolFeeInvalid",type:"error"},{inputs:[],name:"RecipientZeroAddress",type:"error"},{inputs:[],name:"ReferrerFeeInvalid",type:"error"},{inputs:[],name:"SwapFeeInvalid",type:"error"},{inputs:[{internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"TokenNotFlaunched",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"UnknownPool",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint24",name:"_allocation",type:"uint24"}],name:"CreatorFeeAllocationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_unsoldSupply",type:"uint256"}],name:"FairLaunchBurn",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FairLaunchFeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_feeCalculator",type:"address"}],name:"FeeCalculatorUpdated",type:"event"},{anonymous:!1,inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"FeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint128",name:"feeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"feeAmount1",type:"uint128"}],name:"HookFee",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"int128",name:"amount0",type:"int128"},{indexed:!1,internalType:"int128",name:"amount1",type:"int128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"hookLPfeeAmount1",type:"uint128"}],name:"HookSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_initialPrice",type:"address"}],name:"InitialPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"address",name:"_memecoinTreasury",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"bool",name:"_currencyFlipped",type:"bool"},{indexed:!1,internalType:"uint256",name:"_flaunchFee",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],indexed:!1,internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],indexed:!1,internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"PoolFeeDistributionUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",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"}],name:"PoolFeesDistributed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"zeroForOne",type:"bool"},{indexed:!1,internalType:"uint256",name:"_amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_amount1",type:"uint256"}],name:"PoolFeesSwapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"int256",name:"_premineAmount",type:"int256"}],name:"PoolPremine",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_flaunchesAt",type:"uint256"}],name:"PoolScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint160",name:"_sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"_tick",type:"int24"},{indexed:!1,internalType:"uint24",name:"_protocolFee",type:"uint24"},{indexed:!1,internalType:"uint24",name:"_swapFee",type:"uint24"},{indexed:!1,internalType:"uint128",name:"_liquidity",type:"uint128"}],name:"PoolStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"int256",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"}],name:"PoolSwap",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_referralEscrow",type:"address"}],name:"ReferralEscrowUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"address",name:"_token",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ReferrerFeePaid",type:"event"},{inputs:[],name:"BURN_ADDRESS",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_PROTOCOL_ALLOCATION",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_DISTRIBUTE_THRESHOLD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"actionManager",outputs:[{internalType:"contract TreasuryActionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"uint256",name:"_amount0",type:"uint256"},{internalType:"uint256",name:"_amount1",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterDonate",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"},{internalType:"int24",name:"",type:"int24"}],name:"afterInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"BalanceDelta",name:"_feesAccrued",type:"int256"},{internalType:"bytes",name:"",type:"bytes"}],name:"afterRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BalanceDelta",name:"",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"BalanceDelta",name:"_delta",type:"int256"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"afterSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"int128",name:"hookDeltaUnspecified_",type:"int128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeAddLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeDonate",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint160",name:"",type:"uint160"}],name:"beforeInitialize",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"int256",name:"liquidityDelta",type:"int256"},{internalType:"bytes32",name:"salt",type:"bytes32"}],internalType:"struct IPoolManager.ModifyLiquidityParams",name:"",type:"tuple"},{internalType:"bytes",name:"",type:"bytes"}],name:"beforeRemoveLiquidity",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_sender",type:"address"},{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{components:[{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IPoolManager.SwapParams",name:"_params",type:"tuple"},{internalType:"bytes",name:"_hookData",type:"bytes"}],name:"beforeSwap",outputs:[{internalType:"bytes4",name:"selector_",type:"bytes4"},{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"bidWall",outputs:[{internalType:"contract BidWall",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fairLaunch",outputs:[{internalType:"contract FairLaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fairLaunchFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract FeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeExemptions",outputs:[{internalType:"contract FeeExemptions",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"feeSplit",outputs:[{internalType:"uint256",name:"bidWall_",type:"uint256"},{internalType:"uint256",name:"creator_",type:"uint256"},{internalType:"uint256",name:"protocol_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[],name:"flaunchContract",outputs:[{internalType:"contract IFlaunch",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"flaunchesAt",outputs:[{internalType:"uint256",name:"_flaunchTime",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"flayGovernance",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"_isFairLaunch",type:"bool"}],name:"getFeeCalculator",outputs:[{internalType:"contract IFeeCalculator",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_initialPriceParams",type:"bytes"}],name:"getFlaunchingMarketCap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getHookPermissions",outputs:[{components:[{internalType:"bool",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:"struct Hooks.Permissions",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"getPoolFeeDistribution",outputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"feeDistribution_",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialPrice",outputs:[{internalType:"contract IInitialPrice",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"notifier",outputs:[{internalType:"contract Notifier",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"}],name:"poolFees",outputs:[{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],internalType:"struct InternalSwapPool.ClaimableFees",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"poolKey",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"referralEscrow",outputs:[{internalType:"contract ReferralEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFairLaunchFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IFeeCalculator",name:"_feeCalculator",type:"address"}],name:"setFeeCalculator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunchContract",type:"address"}],name:"setFlaunch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_initialPrice",type:"address"}],name:"setInitialPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{components:[{internalType:"uint24",name:"swapFee",type:"uint24"},{internalType:"uint24",name:"referrer",type:"uint24"},{internalType:"uint24",name:"protocol",type:"uint24"},{internalType:"bool",name:"active",type:"bool"}],internalType:"struct FeeDistributor.FeeDistribution",name:"_feeDistribution",type:"tuple"}],name:"setPoolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint24",name:"_protocol",type:"uint24"}],name:"setProtocolFeeDistribution",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_referralEscrow",type:"address"}],name:"setReferralEscrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];class Fn{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:Pn,address:e})}async isValidCoin(e){return 0!==(await this.contract.read("poolKey",{_token:e})).tickSpacing}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({blockNumber: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 watchPoolSwap({onPoolSwap:e,flETHIsCurrencyZero: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({blockNumber:e.blockNumber}),a=1e3*Number(n?.timestamp);if(void 0===t)return{...e,timestamp:a};const{flAmount0:i,flAmount1:r,flFee0:s,flFee1:p,ispAmount0:o,ispAmount1:y,ispFee0:u,ispFee1:l,uniAmount0:d,uniAmount1:c,uniFee0:m,uniFee1:T}=e.args,b=i+o+d,f=r+y+c,h=s+u+m,g=p+l+T;let w,I;t?(I=b<0?"BUY":"SELL",w=h<0):(I=f<0?"BUY":"SELL",w=g<0);const x=b<0?-b:b,v=f<0?-f:f,k=h<0?-h:h,M=g<0?-g:g,P={isInFLETH:w,amount:t?w?k:M:w?M:k};return"BUY"===I?{...e,timestamp:a,type:I,delta:{coinsBought:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHSold:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}:{...e,timestamp:a,type:I,delta:{coinsSold:t?v-(P.isInFLETH?0n:P.amount):x-(P.isInFLETH?0n:P.amount),flETHBought:t?x-(P.isInFLETH?P.amount:0n):v-(P.isInFLETH?P.amount:0n),fees:P}}})));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}}}class _n extends Fn{constructor(e,n=t.createDrift()){super(e,n)}flaunch({flaunchingETHFees:e,name:t,symbol:a,tokenUri:i,fairLaunchPercent:r,fairLaunchDuration:s,initialMarketCapUSD:p,creator:o,creatorFeeAllocationPercent:y,flaunchAt:u,premineAmount:l}){const d=n.parseUnits(p.toString(),6),c=n.encodeAbiParameters([{type:"uint256"}],[d]),m=BigInt(100*r),T=100*y;return this.contract.write("flaunch",{_params:{name:t,symbol:a,tokenUri:i,initialTokenFairLaunch:this.TOTAL_SUPPLY*m/10000n,fairLaunchDuration:s,premineAmount:l??0n,creator:o,creatorFeeAllocation:T,flaunchAt:u??0n,initialPriceParams:c,feeCalculatorParams:"0x"}},{value:e,onMined:async()=>{this.pollPoolCreatedNow&&await this.pollPoolCreatedNow()}})}async flaunchIPFS({flaunchingETHFees:e,name:t,symbol:n,fairLaunchPercent:a,fairLaunchDuration:i,initialMarketCapUSD:r,creator:s,creatorFeeAllocationPercent:p,flaunchAt:o,premineAmount:y,metadata:u,pinataConfig:l}){const d=await Jt(t,{metadata:u,pinataConfig:l});return this.flaunch({flaunchingETHFees:e,name:t,symbol:n,tokenUri:d,fairLaunchPercent:a,fairLaunchDuration:i,initialMarketCapUSD:r,creator:s,creatorFeeAllocationPercent:p,flaunchAt:o,premineAmount:y})}}const An=[{inputs:[{internalType:"address",name:"_nativeToken",type:"address"},{internalType:"address",name:"_poolManager",type:"address"},{internalType:"address",name:"_protocolOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"CallerIsNotCreator",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"}],name:"BidWallClosed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_added",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_pending",type:"uint256"}],name:"BidWallDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"bool",name:"_disabled",type:"bool"}],name:"BidWallDisabledStateUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_eth",type:"uint256"},{indexed:!1,internalType:"int24",name:"_tickLower",type:"int24"},{indexed:!1,internalType:"int24",name:"_tickUpper",type:"int24"}],name:"BidWallRepositioned",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"}],name:"BidWallRewardsTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_newSwapFeeThreshold",type:"uint256"}],name:"FixedSwapFeeThresholdUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"StaleTimeWindowUpdated",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"checkStalePosition",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"}],name:"closeBidWall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_ethSwapAmount",type:"uint256"},{internalType:"int24",name:"_currentTick",type:"int24"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"isBidWallEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"lastPoolTransaction",outputs:[{internalType:"uint256",name:"_timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"nativeToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"poolInfo",outputs:[{internalType:"bool",name:"disabled",type:"bool"},{internalType:"bool",name:"initialized",type:"bool"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"pendingETHFees",type:"uint256"},{internalType:"uint256",name:"cumulativeSwapFees",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"position",outputs:[{internalType:"uint256",name:"amount0_",type:"uint256"},{internalType:"uint256",name:"amount1_",type:"uint256"},{internalType:"uint256",name:"pendingEth_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_key",type:"tuple"},{internalType:"bool",name:"_disable",type:"bool"}],name:"setDisabledState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_staleTimeWindow",type:"uint256"}],name:"setStaleTimeWindow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"swapFeeThreshold",type:"uint256"}],name:"setSwapFeeThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"staleTimeWindow",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Cn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:An,address:e})}position({poolId:e}){return this.contract.read("position",{_poolId:e})}poolInfo({poolId:e}){return this.contract.read("poolInfo",{_poolId:e})}}const Sn=[{inputs:[{internalType:"contract IPoolManager",name:"_poolManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"CannotModifyLiquidityDuringFairLaunch",type:"error"},{inputs:[],name:"CannotSellTokenDuringFairLaunch",type:"error"},{inputs:[],name:"NotPositionManager",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_tokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_startsAt",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endsAt",type:"uint256"}],name:"FairLaunchCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"PoolId",name:"_poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_revenue",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_supply",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_endedAt",type:"uint256"}],name:"FairLaunchEnded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"uint256",name:"_tokenFees",type:"uint256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"closePosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int24",name:"_initialTick",type:"int24"},{internalType:"uint256",name:"_flaunchesAt",type:"uint256"},{internalType:"uint256",name:"_initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"_fairLaunchDuration",type:"uint256"}],name:"createPosition",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"fairLaunchInfo",outputs:[{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickSpacing",type:"int24"},{internalType:"contract IHooks",name:"hooks",type:"address"}],internalType:"struct PoolKey",name:"_poolKey",type:"tuple"},{internalType:"int256",name:"_amountSpecified",type:"int256"},{internalType:"bool",name:"_nativeIsZero",type:"bool"}],name:"fillFromPosition",outputs:[{internalType:"BeforeSwapDelta",name:"beforeSwapDelta_",type:"int256"},{internalType:"BalanceDelta",name:"balanceDelta_",type:"int256"},{components:[{internalType:"uint256",name:"startsAt",type:"uint256"},{internalType:"uint256",name:"endsAt",type:"uint256"},{internalType:"int24",name:"initialTick",type:"int24"},{internalType:"uint256",name:"revenue",type:"uint256"},{internalType:"uint256",name:"supply",type:"uint256"},{internalType:"bool",name:"closed",type:"bool"}],internalType:"struct FairLaunch.FairLaunchInfo",name:"fairLaunchInfo_",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],name:"inFairLaunchWindow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"},{internalType:"int256",name:"_revenue",type:"int256"}],name:"modifyRevenue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];class Dn{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Sn,address:e})}fairLaunchInfo({poolId:e}){return this.contract.read("fairLaunchInfo",{_poolId:e})}async fairLaunchDuration({poolId:e}){const{startsAt:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return n-t}async isFairLaunchActive({poolId:e}){const{closed:t,endsAt:n}=await this.fairLaunchInfo({poolId:e});return!t&&!((new Date).getTime()/1e3>n)}}const En=[{inputs:[{internalType:"address",name:"_memecoinImplementation",type:"address"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccountBalanceOverflow",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"BalanceQueryForZeroAddress",type:"error"},{inputs:[],name:"CallerIsNotPositionManager",type:"error"},{inputs:[],name:"CallerNotL2ToL2CrossDomainMessenger",type:"error"},{inputs:[{internalType:"uint24",name:"_allocation",type:"uint24"},{internalType:"uint256",name:"_maxAllocation",type:"uint256"}],name:"CreatorFeeAllocationInvalid",type:"error"},{inputs:[],name:"InvalidCrossDomainSender",type:"error"},{inputs:[],name:"InvalidDestinationChain",type:"error"},{inputs:[],name:"InvalidFlaunchSchedule",type:"error"},{inputs:[{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"InvalidInitialSupply",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotOwnerNorApproved",type:"error"},{inputs:[{internalType:"uint256",name:"_buyAmount",type:"uint256"},{internalType:"uint256",name:"_initialSupply",type:"uint256"}],name:"PremineExceedsInitialAmount",type:"error"},{inputs:[],name:"TokenAlreadyBridged",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"TokenDoesNotExist",type:"error"},{inputs:[],name:"TransferFromIncorrectOwner",type:"error"},{inputs:[],name:"TransferToNonERC721ReceiverImplementer",type:"error"},{inputs:[],name:"TransferToZeroAddress",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownMemecoin",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"isApproved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"},{indexed:!1,internalType:"uint256",name:"_messageSource",type:"uint256"}],name:"TokenBridged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_chainId",type:"uint256"},{indexed:!1,internalType:"address",name:"_memecoin",type:"address"}],name:"TokenBridging",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"MAX_CREATOR_ALLOCATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FAIR_LAUNCH_TOKENS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_SCHEDULE_DURATION",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"bridgingStatus",outputs:[{internalType:"bool",name:"_started",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"}],internalType:"struct Flaunch.MemecoinMetadata",name:"_metadata",type:"tuple"}],name:"finalizeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"string",name:"tokenUri",type:"string"},{internalType:"uint256",name:"initialTokenFairLaunch",type:"uint256"},{internalType:"uint256",name:"fairLaunchDuration",type:"uint256"},{internalType:"uint256",name:"premineAmount",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"uint24",name:"creatorFeeAllocation",type:"uint24"},{internalType:"uint256",name:"flaunchAt",type:"uint256"},{internalType:"bytes",name:"initialPriceParams",type:"bytes"},{internalType:"bytes",name:"feeCalculatorParams",type:"bytes"}],internalType:"struct PositionManager.FlaunchParams",name:"_params",type:"tuple"}],name:"flaunch",outputs:[{internalType:"address",name:"memecoin_",type:"address"},{internalType:"address payable",name:"memecoinTreasury_",type:"address"},{internalType:"uint256",name:"tokenId_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract PositionManager",name:"_positionManager",type:"address"},{internalType:"address",name:"_memecoinTreasuryImplementation",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"},{internalType:"uint256",name:"_chainId",type:"uint256"}],name:"initializeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"memecoinTreasury",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"memecoinTreasuryImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"poolId",outputs:[{internalType:"PoolId",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"positionManager",outputs:[{internalType:"contract PositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"isApproved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_baseURI",type:"string"}],name:"setBaseURI",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"setMemecoinMetadata",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"result",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_memecoin",type:"address"}],name:"tokenId",outputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"}];class Ln{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:En,address:e})}tokenId(e){return this.contract.read("tokenId",{_memecoin:e})}tokenURI(e){return this.contract.read("tokenURI",{_tokenId:e})}}const Bn=[{inputs:[{internalType:"address",name:"_protocolOwner",type:"address"},{internalType:"address",name:"_feeEscrow",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"NewOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoHandoverRequest",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"UnknownManagerImplemention",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_manager",type:"address"},{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationApproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_managerImplementation",type:"address"}],name:"ManagerImplementationUnapproved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"pendingOwner",type:"address"}],name:"OwnershipHandoverRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approveManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"approvedManagerImplementation",outputs:[{internalType:"bool",name:"_approved",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"cancelOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"completeOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"},{internalType:"address",name:"_owner",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"deployAndInitializeManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"deployManager",outputs:[{internalType:"address payable",name:"manager_",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeEscrow",outputs:[{internalType:"contract IFeeEscrow",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_manager",type:"address"}],name:"managerImplementation",outputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"result",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"pendingOwner",type:"address"}],name:"ownershipHandoverExpiresAt",outputs:[{internalType:"uint256",name:"result",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"callerConfirmation",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"requestOwnershipHandover",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_managerImplementation",type:"address"}],name:"unapproveManager",outputs:[],stateMutability:"nonpayable",type:"function"}];class On{constructor(e,n=t.createDrift()){if(!e)throw new Error("Address is required");this.contract=n.contract({abi:Bn,address:e})}}class Un extends On{constructor(e,n,a=t.createDrift()){super(n,a),this.chainId=e}deployRevenueManager(e){return this.contract.write("deployAndInitializeManager",{_managerImplementation:zt[this.chainId],_owner:e.protocolRecipient,_data:n.encodeAbiParameters([{type:"tuple",components:[{type:"address",name:"protocolRecipient"},{type:"uint256",name:"protocolFee"}]}],[{protocolRecipient:e.protocolRecipient,protocolFee:BigInt(100*e.protocolFeePercent)}])})}}const Rn=[{inputs:[{internalType:"address",name:"_treasuryManagerFactory",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyInitialized",type:"error"},{inputs:[],name:"FailedToClaim",type:"error"},{inputs:[],name:"FlaunchContractNotValid",type:"error"},{inputs:[],name:"InvalidClaimer",type:"error"},{inputs:[],name:"InvalidCreatorAddress",type:"error"},{inputs:[],name:"InvalidProtocolFee",type:"error"},{inputs:[],name:"NotInitialized",type:"error"},{inputs:[],name:"NotManagerOwner",type:"error"},{inputs:[{internalType:"uint256",name:"_unlockedAt",type:"uint256"}],name:"TokenTimelocked",type:"error"},{inputs:[],name:"UnknownFlaunchToken",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_creator",type:"address"}],name:"CreatorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_owner",type:"address"},{components:[{internalType:"address payable",name:"protocolRecipient",type:"address"},{internalType:"uint256",name:"protocolFee",type:"uint256"}],indexed:!1,internalType:"struct RevenueManager.InitializeParams",name:"_params",type:"tuple"}],name:"ManagerInitialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"_newOwner",type:"address"}],name:"ManagerOwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_protocolFee",type:"uint256"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_protocolRecipient",type:"address"}],name:"ProtocolRecipientUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"ProtocolRevenueClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"}],name:"RevenueClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_owner",type:"address"},{indexed:!1,internalType:"address",name:"_sender",type:"address"}],name:"TreasuryEscrowed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"_sender",type:"address"},{indexed:!1,internalType:"address",name:"_recipient",type:"address"}],name:"TreasuryReclaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_flaunch",type:"address"},{indexed:!0,internalType:"uint256",name:"_tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_unlockedAt",type:"uint256"}],name:"TreasuryTimelocked",type:"event"},{inputs:[{internalType:"address",name:"_recipient",type:"address"}],name:"balances",outputs:[{internalType:"uint256",name:"balance_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"claim",outputs:[{internalType:"uint256",name:"amount_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken[]",name:"_flaunchToken",type:"tuple[]"}],name:"claim",outputs:[{internalType:"uint256",name:"amount_",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"creator",outputs:[{internalType:"address",name:"_creator",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"creatorTotalClaimed",outputs:[{internalType:"uint256",name:"_claimed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"},{internalType:"address",name:"_creator",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"flaunchTokenInternalIds",outputs:[{internalType:"uint256",name:"_internalId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"}],name:"getPoolId",outputs:[{internalType:"PoolId",name:"poolId_",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],name:"getProtocolFee",outputs:[{internalType:"uint256",name:"protocolFee_",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"initialized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_internalId",type:"uint256"}],name:"internalIds",outputs:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"managerOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextInternalId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolRecipient",outputs:[{internalType:"address payable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolTotalClaimed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"},{internalType:"address",name:"_recipient",type:"address"}],name:"rescue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken",name:"_flaunchToken",type:"tuple"},{internalType:"address payable",name:"_creator",type:"address"}],name:"setCreator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"_protocolRecipient",type:"address"}],name:"setProtocolRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_internalId",type:"uint256"}],name:"tokenPoolId",outputs:[{internalType:"PoolId",name:"_poolId",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenTimelock",outputs:[{internalType:"uint256",name:"_unlockedAt",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_flaunch",type:"address"},{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenTotalClaimed",outputs:[{internalType:"uint256",name:"_claimed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_creator",type:"address"}],name:"tokens",outputs:[{components:[{internalType:"contract Flaunch",name:"flaunch",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],internalType:"struct ITreasuryManager.FlaunchToken[]",name:"flaunchTokens_",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_newManagerOwner",type:"address"}],name:"transferManagerOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasuryManagerFactory",outputs:[{internalType:"contract TreasuryManagerFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],Hn=[{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 Nn{constructor(e){this.address="0xcA11bde05977b3631167028862bE2a173976CA11",this.contract=e.contract({abi:Hn,address:this.address})}aggregate3(e){return this.contract.simulateWrite("aggregate3",{calls:e.map((e=>({target:e.target,allowFailure:!0,callData:e.callData})))})}}class zn{constructor(e,n=t.createDrift()){this.drift=n,this.contract=n.contract({abi:Rn,address:e})}balances(e){return this.contract.read("balances",{_recipient:e})}protocolRecipient(){return this.contract.read("protocolRecipient")}async tokensCount(){return await this.contract.read("nextInternalId")-1n}async allTokensByCreator(e,t=!1){const n=await this.contract.read("tokens",{_creator:e});return t?[...n].reverse():n}async allTokensInManager(e=!1){const t=await this.tokensCount(),n=new Nn(this.drift);let a=Array.from({length:Number(t)},((e,t)=>this.contract.encodeFunctionData("internalIds",{_internalId:BigInt(t+1)})));e&&(a=a.reverse());return(await n.aggregate3(a.map((e=>({target:this.contract.address,callData:e}))))).map((e=>this.contract.decodeFunctionReturn("internalIds",e.returnData)))}}class qn extends zn{constructor(e,n=t.createDrift()){super(e,n)}protocolClaim(){return this.contract.write("claim",{})}creatorClaim(){return this.contract.write("claim",{})}creatorClaimForTokens(e){return this.contract.write("claim",{_flaunchToken:e})}}const Gn=[{inputs:[{components:[{internalType:"address",name:"permit2",type:"address"},{internalType:"address",name:"weth9",type:"address"},{internalType:"address",name:"v2Factory",type:"address"},{internalType:"address",name:"v3Factory",type:"address"},{internalType:"bytes32",name:"pairInitCodeHash",type:"bytes32"},{internalType:"bytes32",name:"poolInitCodeHash",type:"bytes32"},{internalType:"address",name:"v4PoolManager",type:"address"},{internalType:"address",name:"v3NFTPositionManager",type:"address"},{internalType:"address",name:"v4PositionManager",type:"address"}],internalType:"struct RouterParameters",name:"params",type:"tuple"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BalanceTooLow",type:"error"},{inputs:[],name:"ContractLocked",type:"error"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"DeltaNotNegative",type:"error"},{inputs:[{internalType:"Currency",name:"currency",type:"address"}],name:"DeltaNotPositive",type:"error"},{inputs:[],name:"ETHNotAccepted",type:"error"},{inputs:[{internalType:"uint256",name:"commandIndex",type:"uint256"},{internalType:"bytes",name:"message",type:"bytes"}],name:"ExecutionFailed",type:"error"},{inputs:[],name:"FromAddressIsNotOwner",type:"error"},{inputs:[],name:"InputLengthMismatch",type:"error"},{inputs:[],name:"InsufficientBalance",type:"error"},{inputs:[],name:"InsufficientETH",type:"error"},{inputs:[],name:"InsufficientToken",type:"error"},{inputs:[{internalType:"bytes4",name:"action",type:"bytes4"}],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidBips",type:"error"},{inputs:[{internalType:"uint256",name:"commandType",type:"uint256"}],name:"InvalidCommandType",type:"error"},{inputs:[],name:"InvalidEthSender",type:"error"},{inputs:[],name:"InvalidPath",type:"error"},{inputs:[],name:"InvalidReserves",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"NotAuthorizedForToken",type:"error"},{inputs:[],name:"NotPoolManager",type:"error"},{inputs:[],name:"OnlyMintAllowed",type:"error"},{inputs:[],name:"SliceOutOfBounds",type:"error"},{inputs:[],name:"TransactionDeadlinePassed",type:"error"},{inputs:[],name:"UnsafeCast",type:"error"},{inputs:[{internalType:"uint256",name:"action",type:"uint256"}],name:"UnsupportedAction",type:"error"},{inputs:[],name:"V2InvalidPath",type:"error"},{inputs:[],name:"V2TooLittleReceived",type:"error"},{inputs:[],name:"V2TooMuchRequested",type:"error"},{inputs:[],name:"V3InvalidAmountOut",type:"error"},{inputs:[],name:"V3InvalidCaller",type:"error"},{inputs:[],name:"V3InvalidSwap",type:"error"},{inputs:[],name:"V3TooLittleReceived",type:"error"},{inputs:[],name:"V3TooMuchRequested",type:"error"},{inputs:[{internalType:"uint256",name:"minAmountOutReceived",type:"uint256"},{internalType:"uint256",name:"amountReceived",type:"uint256"}],name:"V4TooLittleReceived",type:"error"},{inputs:[{internalType:"uint256",name:"maxAmountInRequested",type:"uint256"},{internalType:"uint256",name:"amountRequested",type:"uint256"}],name:"V4TooMuchRequested",type:"error"},{inputs:[],name:"V3_POSITION_MANAGER",outputs:[{internalType:"contract INonfungiblePositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"V4_POSITION_MANAGER",outputs:[{internalType:"contract IPositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"commands",type:"bytes"},{internalType:"bytes[]",name:"inputs",type:"bytes[]"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"commands",type:"bytes"},{internalType:"bytes[]",name:"inputs",type:"bytes[]"},{internalType:"uint256",name:"deadline",type:"uint256"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"msgSender",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract IPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"unlockCallback",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],Vn={MIN_TICK:-887220,MAX_TICK:887220},$n=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)},Kn=e=>{const[t,n]=e.currency0<e.currency1?[e.currency0,e.currency1]:[e.currency1,e.currency0];return{...e,currency0:t,currency1:n}},Wn=({tick:e,tickSpacing:t,roundDown:n})=>{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},Zn=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return(n<<96n)*(i-a)/i/a},Xn=(e,t,n)=>{let[a,i]=[e,t];a>i&&([a,i]=[i,a]);return n*(i-a)/2n**96n},Qn=e=>BigInt(i.TickMath.getSqrtRatioAtTick(e).toString()),jn=(e,t,n,a)=>{const i=Qn(a),r=Qn(t),s=Qn(n);let p=0n,o=0n;return i<=r?p=Zn(r,s,e):i<s?(p=Zn(i,s,e),o=Xn(r,i,e)):o=Xn(r,s,e),{amount0:p,amount1:o}},Yn=[{type:"tuple",components:[{type:"address",name:"currencyIn"},{type:"tuple[]",name:"path",components:[{type:"address",name:"intermediateCurrency"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"},{type:"bytes",name:"hookData"}]},{type:"uint128",name:"amountIn"},{type:"uint128",name:"amountOutMinimum"}]}],Jn=[{type:"tuple",components:[{type:"address",name:"currencyOut"},{type:"tuple[]",name:"path",components:[{type:"address",name:"intermediateCurrency"},{type:"uint24",name:"fee"},{type:"int24",name:"tickSpacing"},{type:"address",name:"hooks"},{type:"bytes",name:"hookData"}]},{type:"uint128",name:"amountOut"},{type:"uint128",name:"amountInMaximum"}]}],ea="07",ta="09",na="0c",aa="0f",ia="10",ra="04",sa="0a",pa=(e,t,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)},oa=n.zeroAddress,ya={PermitSingle:[{name:"details",type:"PermitDetails"},{name:"spender",type:"address"},{name:"sigDeadline",type:"uint256"}],PermitDetails:[{name:"token",type:"address"},{name:"amount",type:"uint160"},{name:"expiration",type:"uint48"},{name:"nonce",type:"uint48"}]},ua={[It.id]:It,[vt.id]:vt};class la{constructor(e,n=t.createDrift()){this.TICK_SPACING=60,this.chainId=e,this.drift=n,this.readPositionManager=new en(At[this.chainId],n),this.readPositionManagerV1_1=new Fn(Ct[this.chainId],n),this.readPoolManager=new rn(Gt[this.chainId],n),this.readStateView=new pn(Kt[this.chainId],n),this.readFairLaunch=new yn(Et[this.chainId],n),this.readFairLaunchV1_1=new Dn(Lt[this.chainId],n),this.readBidWall=new ln(Ut[this.chainId],n),this.readBidWallV1_1=new Cn(Rt[this.chainId],n),this.readFlaunch=new gn(Bt[this.chainId],n),this.readFlaunchV1_1=new Ln(Ot[this.chainId],n),this.readQuoter=new vn(this.chainId,$t[this.chainId],n),this.readPermit2=new Mn(Wt[this.chainId],n)}async isValidCoin(e){return await this.readPositionManagerV1_1.isValidCoin(e)||await this.readPositionManager.isValidCoin(e)}async isV1Coin(e){return this.readPositionManager.isValidCoin(e)}async getCoinMetadata(e){const t=new In(e,this.drift),n=await t.name(),a=await t.symbol(),i=await t.tokenURI(),r=(await s.default.get(Qt(i))).data;return{name:n,symbol:a,description:r.description??"",image:r.image?Qt(r.image):"",external_link:r.websiteUrl??"",collaborators:r.collaborators??[],discordUrl:r.discordUrl??"",twitterUrl:r.twitterUrl??"",telegramUrl:r.telegramUrl??""}}async getCoinMetadataFromTokenId(e,t){const n=new gn(e,this.drift),a=await n.memecoin(t);return this.getCoinMetadata(a)}async getCoinMetadataFromTokenIds(e){const t=new Nn(this.drift),n=e.map((e=>this.readFlaunch.contract.encodeFunctionData("memecoin",{_tokenId:e.tokenId}))),a=(await t.aggregate3(n.map(((t,n)=>({target:e[n].flaunch,callData:t}))))).map((e=>this.readFlaunch.contract.decodeFunctionReturn("memecoin",e.returnData))),i=[];a.forEach((()=>{i.push(this.drift.adapter.encodeFunctionData({abi:wn,fn:"name"})),i.push(this.drift.adapter.encodeFunctionData({abi:wn,fn:"symbol"})),i.push(this.drift.adapter.encodeFunctionData({abi:wn,fn:"tokenURI"}))}));const r=await t.aggregate3(i.map(((e,t)=>({target:a[Math.floor(t/3)],callData:e})))),p=[];for(let e=0;e<a.length;e++){const t=this.drift.adapter.decodeFunctionReturn({abi:wn,fn:"name",data:r[3*e].returnData}),n=this.drift.adapter.decodeFunctionReturn({abi:wn,fn:"symbol",data:r[3*e+1].returnData}),i=this.drift.adapter.decodeFunctionReturn({abi:wn,fn:"tokenURI",data:r[3*e+2].returnData});p.push({name:t,symbol:n,tokenURI:i,coinAddress:a[e]})}const o=[];for(let e=0;e<p.length;e+=3){const t=p.slice(e,e+3),n=await Promise.all(t.map((async({name:e,symbol:t,tokenURI:n,coinAddress:a})=>{const i=(await s.default.get(Qt(n))).data;return{coinAddress:a,name:e,symbol:t,description:i.description??"",image:i.image?Qt(i.image):"",external_link:i.websiteUrl??"",collaborators:i.collaborators??[],discordUrl:i.discordUrl??"",twitterUrl:i.twitterUrl??"",telegramUrl:i.telegramUrl??""}})));o.push(...n),e+3<p.length&&await new Promise((e=>setTimeout(e,200)))}return o}watchPoolCreatedV1(e){return this.readPositionManager.watchPoolCreated(e)}watchPoolCreated(e){return this.readPositionManagerV1_1.watchPoolCreated(e)}pollPoolCreatedNowV1(){const e=this.readPositionManager.pollPoolCreatedNow;if(e)return e()}pollPoolCreatedNow(){const e=this.readPositionManagerV1_1.pollPoolCreatedNow;if(e)return e()}async watchPoolSwapV1(e){return this.readPositionManager.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?await this.poolId(e.filterByCoin,!0):void 0,flETHIsCurrencyZero:this.flETHIsCurrencyZero(e.filterByCoin)})}async watchPoolSwap(e){return this.readPositionManagerV1_1.watchPoolSwap({...e,filterByPoolId:e.filterByCoin?await this.poolId(e.filterByCoin):void 0,flETHIsCurrencyZero:this.flETHIsCurrencyZero(e.filterByCoin)})}pollPoolSwapNowV1(){const e=this.readPositionManager.pollPoolSwapNow;if(e)return e()}pollPoolSwapNow(){const e=this.readPositionManagerV1_1.pollPoolSwapNow;if(e)return e()}positionInfo(e){return this.readStateView.positionInfo(e)}async currentTick(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return(await this.readStateView.poolSlot0({poolId:n})).tick}async coinPriceInETH(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=this.flETHIsCurrencyZero(e),a=await this.currentTick(e,t),i=Math.pow(1.0001,a);let r=0;return r=n?1/i:i,r.toFixed(18)}async getETHUSDCPrice(e){if(e){const t=await e.getChainId();return new vn(t,$t[t],e).getETHUSDCPrice()}return this.readQuoter.getETHUSDCPrice()}async fairLaunchInfo(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return t?this.readFairLaunch.fairLaunchInfo({poolId:n}):this.readFairLaunchV1_1.fairLaunchInfo({poolId:n})}async isFairLaunchActive(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return t?this.readFairLaunch.isFairLaunchActive({poolId:n}):this.readFairLaunchV1_1.isFairLaunchActive({poolId:n})}async fairLaunchDuration(e,t){if(void 0===t&&(t=await this.isV1Coin(e)),t)return 1800;const n=await this.poolId(e,t);return this.readFairLaunchV1_1.fairLaunchDuration({poolId:n})}async initialTick(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t);return(t?await this.readFairLaunch.fairLaunchInfo({poolId:n}):await this.readFairLaunchV1_1.fairLaunchInfo({poolId:n})).initialTick}async fairLaunchETHOnlyPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=await this.initialTick(e,t),i=await this.currentTick(e,t),r=this.flETHIsCurrencyZero(e);let s,p;r?(s=Wn({tick:a+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=s+this.TICK_SPACING):(p=Wn({tick:a-1,roundDown:!0,tickSpacing:this.TICK_SPACING}),s=p-this.TICK_SPACING);const{liquidity:o}=await this.readStateView.positionInfo({poolId:n,owner:t?Et[this.chainId]:Lt[this.chainId],tickLower:s,tickUpper:p,salt:""}),{amount0:y,amount1:u}=jn(o,s,p,i),[l,d]=r?[y,u]:[u,y];return{flETHAmount:l,coinAmount:d,tickLower:s,tickUpper:p}}async fairLaunchCoinOnlyPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=await this.initialTick(e,t),i=await this.currentTick(e,t),r=this.flETHIsCurrencyZero(e);let s,p;r?(s=Vn.MIN_TICK,p=Wn({tick:a-1,roundDown:!0,tickSpacing:this.TICK_SPACING})):(s=Wn({tick:a+1,roundDown:!1,tickSpacing:this.TICK_SPACING}),p=Vn.MAX_TICK);const{liquidity:o}=await this.readStateView.positionInfo({poolId:n,owner:t?Et[this.chainId]:Lt[this.chainId],tickLower:s,tickUpper:p,salt:""}),{amount0:y,amount1:u}=jn(o,s,p,i),[l,d]=r?[y,u]:[u,y];return{flETHAmount:l,coinAmount:d,tickLower:s,tickUpper:p}}async bidWallPosition(e,t){void 0===t&&(t=await this.isV1Coin(e));const n=await this.poolId(e,t),a=this.flETHIsCurrencyZero(e),{amount0_:i,amount1_:r,pendingEth_:s}=t?await this.readBidWall.position({poolId:n}):await this.readBidWallV1_1.position({poolId:n}),{tickLower:p,tickUpper:o}=t?await this.readBidWall.poolInfo({poolId:n}):await this.readBidWallV1_1.poolInfo({poolId:n}),[y,u]=a?[i,r]:[r,i];return{flETHAmount:y,coinAmount:u,pendingEth:s,tickLower:p,tickUpper:o}}revenueManagerBalance(e){return new zn(e.revenueManagerAddress,this.drift).balances(e.recipient)}async revenueManagerProtocolBalance(e){const t=new zn(e,this.drift),n=await t.protocolRecipient();return t.balances(n)}async revenueManagerTokensCount(e){return new zn(e,this.drift).tokensCount()}async revenueManagerAllTokensByCreator(e){return new zn(e.revenueManagerAddress,this.drift).allTokensByCreator(e.creator,e.sortByDesc)}async revenueManagerAllTokensInManager(e){return new zn(e.revenueManagerAddress,this.drift).allTokensInManager(e.sortByDesc)}async poolId(e,t){return void 0===t&&(t=await this.isV1Coin(e)),$n(Kn({currency0:St[this.chainId],currency1:e,fee:0,tickSpacing:60,hooks:t?At[this.chainId]:Ct[this.chainId]}))}flETHIsCurrencyZero(e){return e>St[this.chainId]}}class da extends la{constructor(e,n=t.createDrift()){super(e,n),this.readWritePositionManagerV1_1=new _n(At[this.chainId],n),this.readWriteFastFlaunchZap=new mn(Ht[this.chainId],n),this.readWriteFlaunchZap=new fn(this.chainId,Nt[this.chainId],n),this.readWriteTreasuryManagerFactory=new Un(this.chainId,qt[this.chainId],n)}async deployRevenueManager(e){const t=await this.readWriteTreasuryManagerFactory.deployRevenueManager(e),a=n.createPublicClient({chain:ua[this.chainId],transport:n.http()}),i=await a.waitForTransactionReceipt({hash:t}),r=(await a.getContractEvents({address:this.readWriteTreasuryManagerFactory.contract.address,abi:Bn,eventName:"ManagerDeployed",fromBlock:i.blockNumber,toBlock:i.blockNumber})).find((e=>e.transactionHash===t));if(!r)throw new Error("ManagerDeployed event not found in transaction logs");return r.args._manager}flaunch(e){return this.readWritePositionManagerV1_1.flaunch(e)}flaunchIPFS(e){return this.readWritePositionManagerV1_1.flaunchIPFS(e)}fastFlaunch(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunch(e)}fastFlaunchIPFS(e){if(this.readWriteFastFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FastFlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFastFlaunchZap.fastFlaunchIPFS(e)}flaunchWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchWithRevenueManager(e)}async flaunchIPFSWithRevenueManager(e){if(this.readWriteFlaunchZap.contract.address===n.zeroAddress)throw new Error(`FlaunchZap is not deployed at chainId: ${this.chainId}`);return this.readWriteFlaunchZap.flaunchIPFSWithRevenueManager(e)}async coinBalance(e){const t=await this.drift.getSignerAddress(),n=new In(e,this.drift);return await n.contract.cache.clear(),n.balanceOf(t)}async buyCoin(e,t){void 0===t&&(t=await this.isV1Coin(e.coinAddress));const a=await this.drift.getSignerAddress();let i,r,s,p;await this.readQuoter.contract.cache.clear(),"EXACT_IN"===e.swapType?(i=e.amountIn,r=void 0===e.amountOutMin?pa(await this.readQuoter.getBuyQuoteExactInput(e.coinAddress,i,t),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountOutMin):(s=e.amountOut,p=void 0===e.amountInMax?pa(await this.readQuoter.getBuyQuoteExactOutput(e.coinAddress,s,t),(e.slippagePercent/100).toFixed(18).toString(),e.swapType):e.amountInMax);const{commands:o,inputs:y}=(e=>{const t=St[e.chainId],a=Dt[e.chainId],i=e.isV1Coin?At[e.chainId]:Ct[e.chainId],r="0x"+("EXACT_IN"===e.swapType?ea:ta)+na+aa;let s,p;if("EXACT_IN"===e.swapType){if(null==e.amountIn||null==e.amountOutMin)throw new Error("amountIn and amountOutMin are required for EXACT_IN swap");s=[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:a,hookData:"0x"},{intermediateCurrency:e.memecoin,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(Yn,[{currencyIn:oa,path:s,amountIn:e.amountIn,amountOutMinimum:e.amountOutMin}])}else{if(null==e.amountOut||null==e.amountInMax)throw new Error("amountOut and amountInMax are required for EXACT_OUT swap");s=[{fee:0,tickSpacing:60,hookData:"0x",hooks:a,intermediateCurrency:oa},{fee:0,tickSpacing:60,hooks:i,intermediateCurrency:t,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])}],p=n.encodeAbiParameters(Jn,[{currencyOut:e.memecoin,path:s,amountOut:e.amountOut,amountInMaximum:e.amountInMax}])}const o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[oa,"EXACT_IN"===e.swapType?e.amountIn??n.maxUint256:e.amountInMax??n.maxUint256]),y=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[e.memecoin,"EXACT_IN"===e.swapType?e.amountOutMin??n.maxUint256:e.amountOut??n.maxUint256]),u=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[p,o,y]]),l="0x"+ia+ra,d=[u,n.encodeAbiParameters([{type:"address",name:"token"},{type:"address",name:"recipient"},{type:"uint160",name:"amountIn"}],[oa,e.sender,0n])];return{calldata:n.encodeFunctionData({abi:Gn,functionName:"execute",args:[l,d]}),commands:l,inputs:d}})({sender:a,memecoin:e.coinAddress,chainId:this.chainId,referrer:e.referrer,swapType:e.swapType,amountIn:i,amountOutMin:r,amountOut:s,amountInMax:p,isV1Coin:t});return this.drift.adapter.write({abi:Gn,address:Vt[this.chainId],fn:"execute",args:{commands:o,inputs:y},value:"EXACT_IN"===e.swapType?i:p})}async sellCoin(e,t){let a;void 0===t&&(t=await this.isV1Coin(e.coinAddress)),await this.readQuoter.contract.cache.clear(),a=void 0===e.ethOutMin?pa(await this.readQuoter.getSellQuoteExactInput(e.coinAddress,e.amountIn,t),(e.slippagePercent/100).toFixed(18).toString(),"EXACT_IN"):e.ethOutMin,await this.readPermit2.contract.cache.clear();const{commands:i,inputs:r}=(e=>{const t=St[e.chainId],a=Dt[e.chainId],i=e.isV1Coin?At[e.chainId]:Ct[e.chainId],r="0x"+ea+na+aa,s=n.encodeAbiParameters(Yn,[{currencyIn:e.memecoin,path:[{intermediateCurrency:t,fee:0,tickSpacing:60,hooks:i,hookData:n.encodeAbiParameters([{type:"address",name:"referrer"}],[e.referrer??n.zeroAddress])},{intermediateCurrency:oa,fee:0,tickSpacing:60,hooks:a,hookData:"0x"}],amountIn:e.amountIn,amountOutMinimum:e.ethOutMin}]),p=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"maxAmount"}],[e.memecoin,e.amountIn]),o=n.encodeAbiParameters([{type:"address",name:"currency"},{type:"uint256",name:"minAmount"}],[oa,e.ethOutMin]),y=n.encodeAbiParameters([{type:"bytes",name:"actions"},{type:"bytes[]",name:"params"}],[r,[s,p,o]]);if(e.signature&&e.permitSingle){const t="0x"+sa+ia,a=[n.encodeAbiParameters([{type:"tuple",components:[{type:"tuple",components:[{type:"address",name:"token"},{type:"uint160",name:"amount"},{type:"uint48",name:"expiration"},{type:"uint48",name:"nonce"}],name:"details"},{type:"address",name:"spender"},{type:"uint256",name:"sigDeadline"}],name:"PermitSingle"},{type:"bytes",name:"signature"}],[e.permitSingle,e.signature]),y];return{calldata:n.encodeFunctionData({abi:Gn,functionName:"execute",args:[t,a]}),commands:t,inputs:a}}{const e="0x"+ia,t=[y];return{calldata:n.encodeFunctionData({abi:Gn,functionName:"execute",args:[e,t]}),commands:e,inputs:t}}})({chainId:this.chainId,memecoin:e.coinAddress,amountIn:e.amountIn,ethOutMin:a,permitSingle:e.permitSingle,signature:e.signature,referrer:e.referrer,isV1Coin:t});return this.drift.write({abi:Gn,address:Vt[this.chainId],fn:"execute",args:{commands:i,inputs:r}})}async getPermit2TypedData(e,t){const{nonce:a}=await this.getPermit2AllowanceAndNonce(e),i=BigInt(Math.floor(Date.now()/1e3)+31536e4);return(({chainId:e,coinAddress:t,nonce:a,deadline:i})=>{const r={name:"Permit2",chainId:e,verifyingContract:Wt[e]},s={details:{token:t,amount:n.maxUint160,expiration:Number(void 0===i?n.maxUint48:i),nonce:a},spender:Vt[e],sigDeadline:void 0===i?n.maxUint256:i};return{typedData:{primaryType:"PermitSingle",domain:r,types:ya,message:s},permitSingle:s}})({chainId:this.chainId,coinAddress:e,nonce:a,deadline:void 0!==t?t:i})}async getPermit2AllowanceAndNonce(e){const{amount:t,nonce:n}=await this.readPermit2.allowance(await this.drift.getSignerAddress(),e,Vt[this.chainId]);return{allowance:t,nonce:n}}revenueManagerProtocolClaim(e){return new qn(e.revenueManagerAddress,this.drift).protocolClaim()}revenueManagerCreatorClaim(e){return new qn(e.revenueManagerAddress,this.drift).creatorClaim()}revenueManagerCreatorClaimForTokens(e){return new qn(e.revenueManagerAddress,this.drift).creatorClaimForTokens(e.flaunchTokens)}}const ca={ReadFlaunchSDK:la,ReadWriteFlaunchSDK:da};e.BidWallAddress=Ut,e.BidWallV1_1Address=Rt,e.FLETHAddress=St,e.FLETHHooksAddress=Dt,e.FairLaunchAbi=on,e.FairLaunchAddress=Et,e.FairLaunchV1_1Address=Lt,e.FastFlaunchZapAbi=dn,e.FastFlaunchZapAddress=Ht,e.FlaunchAddress=Bt,e.FlaunchPositionManagerAbi=Xt,e.FlaunchPositionManagerAddress=At,e.FlaunchPositionManagerV1_1Address=Ct,e.FlaunchSDK=ca,e.FlaunchV1_1Address=Ot,e.FlaunchZapAddress=Nt,e.MemecoinAbi=wn,e.Permit2Address=Wt,e.PoolManagerAbi=an,e.PoolManagerAddress=Gt,e.QuoterAddress=$t,e.ReadFlaunchSDK=la,e.ReadWriteFlaunchSDK=da,e.RevenueManagerAddress=zt,e.StateViewAddress=Kt,e.TICK_SPACING=60,e.TickFinder=Vn,e.TreasuryManagerFactoryAddress=qt,e.USDCETHPoolKeys=Zt,e.UniversalRouterAddress=Vt,e.bytes32ToUint256=tn,e.calculateUnderlyingTokenBalances=jn,e.chainIdToChain=ua,e.generateTokenUri=Jt,e.getPoolId=$n,e.getSqrtPriceX96FromTick=Qn,e.getValidTick=Wn,e.orderPoolKey=Kn,e.resolveIPFS=Qt,e.uint256ToBytes32=nn,e.uploadFileToIPFS=async e=>{try{const t=new FormData;t.append("file",e.file);const n={name:e.name||null,keyvalues:e.metadata||{}};t.append("pinataMetadata",JSON.stringify(n));const a={cidVersion:1};t.append("pinataOptions",JSON.stringify(a));const i=await s.default.post("https://api.pinata.cloud/pinning/pinFileToIPFS",t,{headers:{Authorization:`Bearer ${e.pinataConfig.jwt}`,"Content-Type":"multipart/form-data"}});return{IpfsHash:i.data.IpfsHash,PinSize:i.data.PinSize,Timestamp:i.data.Timestamp,isDuplicate:i.data.isDuplicate||!1}}catch(e){if(s.default.isAxiosError(e))throw new Error(`Failed to upload file to IPFS: ${e.response?.data?.message||e.message}`);throw e}},e.uploadImageToIPFS=Yt,e.uploadJsonToIPFS=jt,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|