@flaunch/sdk 0.9.7 → 0.9.8-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createDrift as createDrift$1 } from '@delvtech/drift';
2
- import { zeroAddress, parseEther, encodeAbiParameters as encodeAbiParameters$1, maxUint256 as maxUint256$1, encodeFunctionData, maxUint160, maxUint48, parseUnits, hexToBigInt as hexToBigInt$1, pad as pad$1, keccak256 as keccak256$1, encodePacked, stringToHex as stringToHex$1, zeroHash, formatUnits as formatUnits$1, parseEventLogs, concat as concat$1, toHex as toHex$1, formatEther, erc721Abi, erc20Abi, parseAbi, createWalletClient, http, decodeFunctionData } from 'viem';
2
+ import { zeroAddress, parseEther, encodeAbiParameters as encodeAbiParameters$1, maxUint256 as maxUint256$1, encodeFunctionData, maxUint160, maxUint48, parseUnits, hexToBigInt as hexToBigInt$1, pad as pad$1, keccak256 as keccak256$1, encodePacked, stringToHex as stringToHex$1, zeroHash, formatUnits as formatUnits$1, parseEventLogs, concat as concat$1, toHex as toHex$1, erc721Abi, erc20Abi, parseAbi, createWalletClient, http, decodeFunctionData } from 'viem';
3
3
  import axios from 'axios';
4
4
  import { viemAdapter } from '@delvtech/drift-viem';
5
5
 
@@ -5778,6 +5778,10 @@ const ZoraVerifierAddress = {
5778
5778
  [base.id]: "0x656047fd43d2c3a121f2ef859d7171d7dd59f8b9",
5779
5779
  [baseSepolia.id]: "0x05a5763e9199b88bb591c6b112d0424b2cd7a99e",
5780
5780
  };
5781
+ const SolanaVerifierAddress = {
5782
+ [base.id]: "0x0000000000000000000000000000000000000000",
5783
+ [baseSepolia.id]: "0x47226918E518f205584bd75Bf81E0b532B0B3Ea7",
5784
+ };
5781
5785
  /** ======== */
5782
5786
  /** Permissions */
5783
5787
  const ClosedPermissionsAddress = {
@@ -11885,6 +11889,7 @@ var Verifier;
11885
11889
  Verifier["VIRTUALS"] = "virtuals";
11886
11890
  Verifier["WHITELIST"] = "whitelist";
11887
11891
  Verifier["ZORA"] = "zora";
11892
+ Verifier["SOLANA"] = "solana";
11888
11893
  })(Verifier || (Verifier = {}));
11889
11894
  var LiquidityMode;
11890
11895
  (function (LiquidityMode) {
@@ -20355,6 +20360,8 @@ class ReadTokenImporter {
20355
20360
  return WhitelistVerifierAddress[this.chainId];
20356
20361
  case Verifier.ZORA:
20357
20362
  return ZoraVerifierAddress[this.chainId];
20363
+ case Verifier.SOLANA:
20364
+ return SolanaVerifierAddress[this.chainId];
20358
20365
  default:
20359
20366
  throw new Error(`Unknown verifier: ${verifier}`);
20360
20367
  }
@@ -26931,7 +26938,8 @@ class ReadFlaunchSDK {
26931
26938
  memecoin.totalSupply(),
26932
26939
  memecoin.decimals(),
26933
26940
  ]);
26934
- return { totalSupply, decimals };
26941
+ const formattedTotalSupplyInDecimals = parseFloat(formatUnits$1(totalSupply, decimals));
26942
+ return { totalSupply, decimals, formattedTotalSupplyInDecimals };
26935
26943
  }
26936
26944
  /**
26937
26945
  * Gets market context information needed for tick calculations
@@ -26953,8 +26961,8 @@ class ReadFlaunchSDK {
26953
26961
  /**
26954
26962
  * Converts market cap in USD to token price in ETH
26955
26963
  */
26956
- marketCapToTokenPriceEth(marketCapUsd, totalSupplyDecimal, ethUsdPrice) {
26957
- const tokenPriceUsd = marketCapUsd / totalSupplyDecimal;
26964
+ marketCapToTokenPriceEth(marketCapUsd, formattedTotalSupplyInDecimals, ethUsdPrice) {
26965
+ const tokenPriceUsd = marketCapUsd / formattedTotalSupplyInDecimals;
26958
26966
  return tokenPriceUsd / ethUsdPrice;
26959
26967
  }
26960
26968
  /**
@@ -26972,24 +26980,22 @@ class ReadFlaunchSDK {
26972
26980
  /**
26973
26981
  * Calculates current tick from market cap if provided
26974
26982
  */
26975
- calculateCurrentTickFromMarketCap(currentMarketCap, totalSupplyDecimal, marketContext) {
26983
+ calculateCurrentTickFromMarketCap(currentMarketCap, formattedTotalSupplyInDecimals, marketContext) {
26976
26984
  if (!currentMarketCap) {
26977
26985
  return undefined;
26978
26986
  }
26979
26987
  const currentMarketCapNum = parseFloat(currentMarketCap);
26980
- const currentTokenPriceEth = this.marketCapToTokenPriceEth(currentMarketCapNum, totalSupplyDecimal, marketContext.ethUsdPrice);
26988
+ const currentTokenPriceEth = this.marketCapToTokenPriceEth(currentMarketCapNum, formattedTotalSupplyInDecimals, marketContext.ethUsdPrice);
26981
26989
  return this.convertPriceToTick(currentTokenPriceEth, marketContext.isFlethZero, marketContext.decimals0, marketContext.decimals1);
26982
26990
  }
26983
26991
  async calculateAddLiquidityTicks({ coinAddress, liquidityMode, minMarketCap, maxMarketCap, currentMarketCap, }) {
26984
26992
  // Get coin information
26985
- const { totalSupply: coinTotalSupply, decimals: coinDecimals } = await this.getCoinInfo(coinAddress);
26986
- // Convert total supply to decimal format
26987
- const totalSupplyDecimal = parseFloat(formatEther(coinTotalSupply));
26993
+ const { totalSupply: coinTotalSupply, decimals: coinDecimals, formattedTotalSupplyInDecimals, } = await this.getCoinInfo(coinAddress);
26988
26994
  if (liquidityMode === LiquidityMode.FULL_RANGE) {
26989
26995
  let currentTick;
26990
26996
  if (currentMarketCap) {
26991
26997
  const marketContext = await this.getMarketContext(coinAddress, coinDecimals);
26992
- currentTick = this.calculateCurrentTickFromMarketCap(currentMarketCap, totalSupplyDecimal, marketContext);
26998
+ currentTick = this.calculateCurrentTickFromMarketCap(currentMarketCap, formattedTotalSupplyInDecimals, marketContext);
26993
26999
  }
26994
27000
  return {
26995
27001
  tickLower: getNearestUsableTick({
@@ -27016,13 +27022,13 @@ class ReadFlaunchSDK {
27016
27022
  throw new Error("[ReadFlaunchSDK.addLiquidityCalculateTicks]: Invalid market cap range");
27017
27023
  }
27018
27024
  // Convert market caps to token prices in ETH
27019
- const minTokenPriceEth = this.marketCapToTokenPriceEth(minMarketCapNum, totalSupplyDecimal, marketContext.ethUsdPrice);
27020
- const maxTokenPriceEth = this.marketCapToTokenPriceEth(maxMarketCapNum, totalSupplyDecimal, marketContext.ethUsdPrice);
27025
+ const minTokenPriceEth = this.marketCapToTokenPriceEth(minMarketCapNum, formattedTotalSupplyInDecimals, marketContext.ethUsdPrice);
27026
+ const maxTokenPriceEth = this.marketCapToTokenPriceEth(maxMarketCapNum, formattedTotalSupplyInDecimals, marketContext.ethUsdPrice);
27021
27027
  // Convert to ticks
27022
27028
  const minTick = this.convertPriceToTick(minTokenPriceEth, marketContext.isFlethZero, marketContext.decimals0, marketContext.decimals1);
27023
27029
  const maxTick = this.convertPriceToTick(maxTokenPriceEth, marketContext.isFlethZero, marketContext.decimals0, marketContext.decimals1);
27024
27030
  // Calculate current tick if provided
27025
- const currentTick = this.calculateCurrentTickFromMarketCap(currentMarketCap, totalSupplyDecimal, marketContext);
27031
+ const currentTick = this.calculateCurrentTickFromMarketCap(currentMarketCap, formattedTotalSupplyInDecimals, marketContext);
27026
27032
  return {
27027
27033
  tickLower: Math.min(minTick, maxTick),
27028
27034
  tickUpper: Math.max(minTick, maxTick),
@@ -27043,12 +27049,11 @@ class ReadFlaunchSDK {
27043
27049
  currentMarketCap = params.currentMarketCap;
27044
27050
  }
27045
27051
  else {
27046
- const { totalSupply, decimals } = await this.getCoinInfo(coinAddress);
27047
- const formattedTotalSupply = parseFloat(formatUnits$1(totalSupply, decimals));
27048
- minMarketCap = (parseFloat(params.minPriceUSD) * formattedTotalSupply).toString();
27049
- maxMarketCap = (parseFloat(params.maxPriceUSD) * formattedTotalSupply).toString();
27052
+ const { formattedTotalSupplyInDecimals } = await this.getCoinInfo(coinAddress);
27053
+ minMarketCap = (parseFloat(params.minPriceUSD) * formattedTotalSupplyInDecimals).toString();
27054
+ maxMarketCap = (parseFloat(params.maxPriceUSD) * formattedTotalSupplyInDecimals).toString();
27050
27055
  if (params.currentPriceUSD) {
27051
- currentMarketCap = (params.currentPriceUSD * formattedTotalSupply).toString();
27056
+ currentMarketCap = (params.currentPriceUSD * formattedTotalSupplyInDecimals).toString();
27052
27057
  }
27053
27058
  }
27054
27059
  let { tickLower, tickUpper, currentTick } = await this.calculateAddLiquidityTicks({
@@ -27119,12 +27124,11 @@ class ReadFlaunchSDK {
27119
27124
  currentMarketCap = params.currentMarketCap;
27120
27125
  }
27121
27126
  else {
27122
- const { totalSupply, decimals } = await this.getCoinInfo(coinAddress);
27123
- const formattedTotalSupply = parseFloat(formatUnits$1(totalSupply, decimals));
27124
- minMarketCap = (parseFloat(params.minPriceUSD) * formattedTotalSupply).toString();
27125
- maxMarketCap = (parseFloat(params.maxPriceUSD) * formattedTotalSupply).toString();
27127
+ const { formattedTotalSupplyInDecimals } = await this.getCoinInfo(coinAddress);
27128
+ minMarketCap = (parseFloat(params.minPriceUSD) * formattedTotalSupplyInDecimals).toString();
27129
+ maxMarketCap = (parseFloat(params.maxPriceUSD) * formattedTotalSupplyInDecimals).toString();
27126
27130
  if (params.currentPriceUSD) {
27127
- currentMarketCap = (params.currentPriceUSD * formattedTotalSupply).toString();
27131
+ currentMarketCap = (params.currentPriceUSD * formattedTotalSupplyInDecimals).toString();
27128
27132
  }
27129
27133
  }
27130
27134
  let { tickLower, tickUpper, currentTick } = await this.calculateAddLiquidityTicks({
@@ -27788,12 +27792,12 @@ class ReadWriteFlaunchSDK extends ReadFlaunchSDK {
27788
27792
  initialMarketCapUSD = params.initialMarketCapUSD;
27789
27793
  }
27790
27794
  else {
27791
- const { totalSupply, decimals } = await this.getCoinInfo(coinAddress);
27792
- const formattedTotalSupply = parseFloat(formatUnits$1(totalSupply, decimals));
27793
- minMarketCap = (parseFloat(params.minPriceUSD) * formattedTotalSupply).toString();
27794
- maxMarketCap = (parseFloat(params.maxPriceUSD) * formattedTotalSupply).toString();
27795
+ const { formattedTotalSupplyInDecimals } = await this.getCoinInfo(coinAddress);
27796
+ minMarketCap = (parseFloat(params.minPriceUSD) * formattedTotalSupplyInDecimals).toString();
27797
+ maxMarketCap = (parseFloat(params.maxPriceUSD) * formattedTotalSupplyInDecimals).toString();
27795
27798
  if (params.initialPriceUSD) {
27796
- initialMarketCapUSD = params.initialPriceUSD * formattedTotalSupply;
27799
+ initialMarketCapUSD =
27800
+ params.initialPriceUSD * formattedTotalSupplyInDecimals;
27797
27801
  }
27798
27802
  }
27799
27803
  const calculated = await this.calculateAddLiquidityAmounts({
@@ -27963,18 +27967,27 @@ class ReadWriteFlaunchSDK extends ReadFlaunchSDK {
27963
27967
  calls.push(this.createLiquidityCall(poolKey, tickLower, tickUpper, finalLiquidity, finalAmount0, finalAmount1, userAddress));
27964
27968
  return calls;
27965
27969
  }
27966
- /**
27967
- * Gets the calls needed to import a memecoin to Flaunch and add liquidity to AnyPositionManager as a batch
27968
- * @param params - Parameters for importing and adding liquidity
27969
- * @returns Array of calls with descriptions
27970
- */
27970
+ // Implementation with union type for internal use
27971
27971
  async getImportAndAddLiquidityCalls(params) {
27972
- const importParams = await this.readWriteTokenImporter.getInitializeParams({
27973
- coinAddress: params.coinAddress,
27974
- creatorFeeAllocationPercent: params.creatorFeeAllocationPercent,
27975
- initialMarketCapUSD: params.initialMarketCapUSD,
27976
- verifier: params.verifier,
27977
- });
27972
+ let importParams;
27973
+ if ("initialMarketCapUSD" in params) {
27974
+ const paramsWithMarketCap = params;
27975
+ importParams = await this.readWriteTokenImporter.getInitializeParams({
27976
+ coinAddress: paramsWithMarketCap.coinAddress,
27977
+ creatorFeeAllocationPercent: paramsWithMarketCap.creatorFeeAllocationPercent,
27978
+ initialMarketCapUSD: paramsWithMarketCap.initialMarketCapUSD,
27979
+ verifier: paramsWithMarketCap.verifier,
27980
+ });
27981
+ }
27982
+ else {
27983
+ const paramsWithPrice = params;
27984
+ importParams = await this.readWriteTokenImporter.getInitializeParams({
27985
+ coinAddress: paramsWithPrice.coinAddress,
27986
+ creatorFeeAllocationPercent: paramsWithPrice.creatorFeeAllocationPercent,
27987
+ initialPriceUSD: paramsWithPrice.initialPriceUSD,
27988
+ verifier: paramsWithPrice.verifier,
27989
+ });
27990
+ }
27978
27991
  const addLiquidityCalls = await this.getAddLiquidityCalls({
27979
27992
  ...params,
27980
27993
  version: FlaunchVersion.ANY, // optimize to avoid fetching if not passed
@@ -27997,11 +28010,38 @@ class ReadWriteFlaunchSDK extends ReadFlaunchSDK {
27997
28010
  const { coinAddress, coinAmount } = params;
27998
28011
  const version = await this.determineCoinVersion(coinAddress, params.version);
27999
28012
  const poolKey = this.createPoolKey(coinAddress, version);
28000
- // get the current tick from the pool
28001
- const poolState = await this.readStateView.poolSlot0({
28002
- poolId: getPoolId(poolKey),
28003
- });
28004
- const currentTick = poolState.tick;
28013
+ let currentTick;
28014
+ // if initial marketcap or price is provided, it means that the pool is not initialized yet
28015
+ // so determining the currentTick
28016
+ if (("initialMarketCapUSD" in params && params.initialMarketCapUSD) ||
28017
+ ("initialPriceUSD" in params && params.initialPriceUSD)) {
28018
+ const { decimals: coinDecimals, formattedTotalSupplyInDecimals } = await this.getCoinInfo(coinAddress);
28019
+ // Determine market cap based on provided parameter
28020
+ let initialMarketCapUSD;
28021
+ if ("initialMarketCapUSD" in params && params.initialMarketCapUSD) {
28022
+ initialMarketCapUSD = params.initialMarketCapUSD;
28023
+ }
28024
+ else if ("initialPriceUSD" in params && params.initialPriceUSD) {
28025
+ initialMarketCapUSD =
28026
+ params.initialPriceUSD * formattedTotalSupplyInDecimals;
28027
+ }
28028
+ else {
28029
+ throw new Error("Either initialMarketCapUSD or initialPriceUSD must be provided");
28030
+ }
28031
+ const marketContext = await this.getMarketContext(coinAddress, coinDecimals);
28032
+ const calculatedTick = this.calculateCurrentTickFromMarketCap(initialMarketCapUSD.toString(), formattedTotalSupplyInDecimals, marketContext);
28033
+ if (calculatedTick === undefined) {
28034
+ throw new Error("Failed to calculate current tick from market cap");
28035
+ }
28036
+ currentTick = calculatedTick;
28037
+ }
28038
+ else {
28039
+ // the pool is already initialized, get the current tick from the pool
28040
+ const poolState = await this.readStateView.poolSlot0({
28041
+ poolId: getPoolId(poolKey),
28042
+ });
28043
+ currentTick = poolState.tick;
28044
+ }
28005
28045
  // We want to add liquidity from current price to infinity (as coin appreciates vs flETH)
28006
28046
  // This means providing single-sided coin liquidity that becomes active as coin price increases
28007
28047
  const isFLETHZero = this.flETHIsCurrencyZero(coinAddress);
@@ -28114,6 +28154,43 @@ class ReadWriteFlaunchSDK extends ReadFlaunchSDK {
28114
28154
  calls.push(this.createLiquidityCall(poolKey, tickLower, tickUpper, finalLiquidity, finalAmount0, finalAmount1, userAddress));
28115
28155
  return calls;
28116
28156
  }
28157
+ // Implementation with union type for internal use
28158
+ async getImportAndSingleSidedCoinAddLiquidityCalls(params) {
28159
+ let importParams;
28160
+ if ("initialMarketCapUSD" in params) {
28161
+ const paramsWithMarketCap = params;
28162
+ importParams = await this.readWriteTokenImporter.getInitializeParams({
28163
+ coinAddress: paramsWithMarketCap.coinAddress,
28164
+ creatorFeeAllocationPercent: paramsWithMarketCap.creatorFeeAllocationPercent,
28165
+ initialMarketCapUSD: paramsWithMarketCap.initialMarketCapUSD,
28166
+ verifier: paramsWithMarketCap.verifier,
28167
+ });
28168
+ }
28169
+ else {
28170
+ const paramsWithPrice = params;
28171
+ importParams = await this.readWriteTokenImporter.getInitializeParams({
28172
+ coinAddress: paramsWithPrice.coinAddress,
28173
+ creatorFeeAllocationPercent: paramsWithPrice.creatorFeeAllocationPercent,
28174
+ initialPriceUSD: paramsWithPrice.initialPriceUSD,
28175
+ verifier: paramsWithPrice.verifier,
28176
+ });
28177
+ }
28178
+ const addLiquidityCalls = await this.getSingleSidedCoinAddLiquidityCalls({
28179
+ ...params,
28180
+ version: FlaunchVersion.ANY, // optimize to avoid fetching if not passed
28181
+ });
28182
+ return [
28183
+ {
28184
+ to: this.readWriteTokenImporter.contract.address,
28185
+ data: this.readWriteTokenImporter.contract.encodeFunctionData("initialize", importParams),
28186
+ description: "Import Memecoin to Flaunch",
28187
+ },
28188
+ ...addLiquidityCalls,
28189
+ ];
28190
+ }
28191
+ /**
28192
+ * === Private helper functions ===
28193
+ */
28117
28194
  /**
28118
28195
  * Calculates and constrains liquidity amounts for a position
28119
28196
  * @param currentTick - Current pool tick
@@ -31929,5 +32006,5 @@ const FlaunchSDK = {
31929
32006
  ReadWriteFlaunchSDK,
31930
32007
  };
31931
32008
 
31932
- export { AddressFeeSplitManagerAddress, AnyBidWallAddress, AnyFlaunchAddress, AnyPositionManagerAbi, AnyPositionManagerAddress, BidWallAddress, BidWallV1_1Abi, BidWallV1_1Address, BidwallAbi, ClankerWorldVerifierAddress, ClosedPermissionsAddress, DopplerVerifierAddress, FLETHAddress, FLETHHooksAddress, FairLaunchAbi, FairLaunchAddress, FairLaunchV1_1Abi, FairLaunchV1_1Address, FastFlaunchZapAbi, FastFlaunchZapAddress, FeeEscrowAbi, FeeEscrowAddress, FlaunchAbi, FlaunchAddress, FlaunchBackend, FlaunchPositionManagerAbi, FlaunchPositionManagerAddress, FlaunchPositionManagerV1_1Abi, FlaunchPositionManagerV1_1Address, FlaunchPositionManagerV1_2Address, FlaunchSDK, FlaunchV1_1Abi, FlaunchV1_1Address, FlaunchV1_2Address, FlaunchVersion, FlaunchZapAbi, FlaunchZapAddress, InitialPriceAbi, LiquidityMode, MemecoinAbi, MulticallAbi, PERMIT_DETAILS, PERMIT_TYPES, Permissions, Permit2Abi, Permit2Address, PoolManagerAbi, PoolManagerAddress, Q192, Q96, QuoterAbi, QuoterAddress, ReadFlaunchSDK, ReadWriteFlaunchSDK, ReferralEscrowAbi, ReferralEscrowAddress, RevenueManagerAbi, RevenueManagerAddress, StakingManagerAddress, StateViewAbi, StateViewAddress, TICK_SPACING, TickFinder, TokenImporterAddress, TreasuryManagerFactoryAbi, TreasuryManagerFactoryAddress, USDCETHPoolKeys, UniV4PositionManagerAddress, UniversalRouterAbi, UniversalRouterAddress, Verifier, VirtualsVerifierAddress, WhitelistVerifierAddress, WhitelistedPermissionsAddress, ZoraVerifierAddress, buyMemecoin, bytes32ToUint256, calculateUnderlyingTokenBalances, chainIdToChain, createCallDataWalletClient, createDrift, createFlaunch, createFlaunchCalldata, decodeCallData, encodedCallAbi, generateTokenUri, getAmountWithSlippage, getAmountsForLiquidity, getLiquidityFromAmounts, getNearestUsableTick, getPermissionsAddress, getPermit2TypedData, getPoolId, getSqrtPriceX96FromTick, getValidTick, maxLiquidityForAmount0Precise, maxLiquidityForAmount1, orderPoolKey, parseCall, parseSwapData, priceRatioToTick, resolveIPFS, sellMemecoinWithPermit2, uint256ToBytes32, uploadFileToIPFS, uploadImageToFlaunchAPI, uploadImageToIPFS, uploadJsonToIPFS, uploadMetadataToFlaunchAPI };
32009
+ export { AddressFeeSplitManagerAddress, AnyBidWallAddress, AnyFlaunchAddress, AnyPositionManagerAbi, AnyPositionManagerAddress, BidWallAddress, BidWallV1_1Abi, BidWallV1_1Address, BidwallAbi, ClankerWorldVerifierAddress, ClosedPermissionsAddress, DopplerVerifierAddress, FLETHAddress, FLETHHooksAddress, FairLaunchAbi, FairLaunchAddress, FairLaunchV1_1Abi, FairLaunchV1_1Address, FastFlaunchZapAbi, FastFlaunchZapAddress, FeeEscrowAbi, FeeEscrowAddress, FlaunchAbi, FlaunchAddress, FlaunchBackend, FlaunchPositionManagerAbi, FlaunchPositionManagerAddress, FlaunchPositionManagerV1_1Abi, FlaunchPositionManagerV1_1Address, FlaunchPositionManagerV1_2Address, FlaunchSDK, FlaunchV1_1Abi, FlaunchV1_1Address, FlaunchV1_2Address, FlaunchVersion, FlaunchZapAbi, FlaunchZapAddress, InitialPriceAbi, LiquidityMode, MemecoinAbi, MulticallAbi, PERMIT_DETAILS, PERMIT_TYPES, Permissions, Permit2Abi, Permit2Address, PoolManagerAbi, PoolManagerAddress, Q192, Q96, QuoterAbi, QuoterAddress, ReadFlaunchSDK, ReadWriteFlaunchSDK, ReferralEscrowAbi, ReferralEscrowAddress, RevenueManagerAbi, RevenueManagerAddress, SolanaVerifierAddress, StakingManagerAddress, StateViewAbi, StateViewAddress, TICK_SPACING, TickFinder, TokenImporterAddress, TreasuryManagerFactoryAbi, TreasuryManagerFactoryAddress, USDCETHPoolKeys, UniV4PositionManagerAddress, UniversalRouterAbi, UniversalRouterAddress, Verifier, VirtualsVerifierAddress, WhitelistVerifierAddress, WhitelistedPermissionsAddress, ZoraVerifierAddress, buyMemecoin, bytes32ToUint256, calculateUnderlyingTokenBalances, chainIdToChain, createCallDataWalletClient, createDrift, createFlaunch, createFlaunchCalldata, decodeCallData, encodedCallAbi, generateTokenUri, getAmountWithSlippage, getAmountsForLiquidity, getLiquidityFromAmounts, getNearestUsableTick, getPermissionsAddress, getPermit2TypedData, getPoolId, getSqrtPriceX96FromTick, getValidTick, maxLiquidityForAmount0Precise, maxLiquidityForAmount1, orderPoolKey, parseCall, parseSwapData, priceRatioToTick, resolveIPFS, sellMemecoinWithPermit2, uint256ToBytes32, uploadFileToIPFS, uploadImageToFlaunchAPI, uploadImageToIPFS, uploadJsonToIPFS, uploadMetadataToFlaunchAPI };
31933
32010
  //# sourceMappingURL=index.esm.js.map