{"version":3,"sources":["../../src/api/type.ts"],"sourcesContent":["import { FarmRewardInfo, FarmVersion } from \"../raydium/farm\";\n\n/* ================= liquidity ================= */\nexport type LiquidityVersion = 4 | 5;\n\nexport interface ApiPoolInfoV4 {\n  id: string;\n  baseMint: string;\n  quoteMint: string;\n  lpMint: string;\n  baseDecimals: number;\n  quoteDecimals: number;\n  lpDecimals: number;\n  version: 4;\n  programId: string;\n  authority: string;\n  openOrders: string;\n  targetOrders: string;\n  baseVault: string;\n  quoteVault: string;\n  withdrawQueue: string;\n  lpVault: string;\n  marketVersion: 3;\n  marketProgramId: string;\n  marketId: string;\n  marketAuthority: string;\n  marketBaseVault: string;\n  marketQuoteVault: string;\n  marketBids: string;\n  marketAsks: string;\n  marketEventQueue: string;\n  lookupTableAccount: string;\n}\n\n/* ================= farm ================= */\nexport interface FarmRewardInfoV6 {\n  rewardMint: string;\n  rewardVault: string;\n  rewardOpenTime: number;\n  rewardEndTime: number;\n  rewardPerSecond: number;\n  rewardSender: string;\n}\n\nexport interface ApiStakePoolInfo {\n  // base\n  id: string;\n  symbol: string;\n  lpMint: string;\n  // version\n  version: FarmVersion;\n  programId: string;\n  // keys\n  authority: string;\n  lpVault: string;\n  rewardInfos: FarmRewardInfo[] | FarmRewardInfoV6[];\n  // status\n  upcoming: boolean;\n}\n\nexport interface ApiClmmConfigInfo {\n  id: string;\n  index: number;\n  protocolFeeRate: number;\n  tradeFeeRate: number;\n  tickSpacing: number;\n  fundFeeRate: number;\n  defaultRange: number;\n  defaultRangePoint: number[];\n}\n\nexport interface ApiCpmmConfigInfo {\n  id: string;\n  index: number;\n  protocolFeeRate: number;\n  tradeFeeRate: number;\n  fundFeeRate: number;\n  createPoolFee: string;\n  creatorFeeRate: number;\n}\n\nexport interface ApiClmmPoolsItemStatistics {\n  volume: number;\n  volumeFee: number;\n  feeA: number;\n  feeB: number;\n  feeApr: number;\n  rewardApr: {\n    A: number;\n    B: number;\n    C: number;\n  };\n  apr: number;\n  priceMin: number;\n  priceMax: number;\n}\n\nexport interface CpmmLockInfo {\n  name: string;\n  symbol: string;\n  description: string;\n  external_url: string;\n  collection: {\n    name: string;\n    family: string;\n  };\n  image: string;\n  poolInfo: ApiV3PoolInfoStandardItemCpmm;\n  positionInfo: {\n    tvlPercentage: number;\n    usdValue: number;\n    amountA: number;\n    amountB: number;\n    unclaimedFee: {\n      lp: number;\n      amountA: number;\n      amountB: number;\n      usdValue: number;\n    };\n  };\n}\n\n/** ====== v3 api types ======= */\nexport interface ApiV3PageIns<T> {\n  count: number;\n  hasNextPage: boolean;\n  data: T[];\n}\n\nexport enum JupTokenType {\n  ALL = \"all\",\n  Strict = \"strict\",\n}\nexport type PoolsApiReturn = ApiV3PageIns<ApiV3PoolInfoItem>;\n\nexport interface TransferFeeDataBaseType {\n  transferFeeConfigAuthority: string;\n  withdrawWithheldAuthority: string;\n  withheldAmount: string;\n  olderTransferFee: {\n    epoch: string;\n    maximumFee: string;\n    transferFeeBasisPoints: number;\n  };\n  newerTransferFee: {\n    epoch: string;\n    maximumFee: string;\n    transferFeeBasisPoints: number;\n  };\n}\n\nexport type ExtensionsItem = {\n  coingeckoId?: string;\n  feeConfig?: TransferFeeDataBaseType;\n  tips?: {\n    icon: string;\n    link: string;\n    text: string;\n  };\n};\n\nexport type ApiV3Token = {\n  chainId: number;\n  address: string;\n  programId: string;\n  logoURI: string;\n  symbol: string;\n  name: string;\n  decimals: number;\n  tags: string[]; // \"hasFreeze\" | \"hasTransferFee\" | \"token-2022\" | \"community\" | \"unknown\" ..etc\n  extensions: ExtensionsItem;\n  freezeAuthority?: string;\n  mintAuthority?: string;\n};\n\nexport type JupToken = {\n  id: string;\n  name: string;\n  symbol: string;\n  decimals: number;\n  icon: string;\n  circSupply: number;\n  totalSupply: number;\n  tokenProgram: string;\n  mintAuthority: string | undefined;\n  freezeAuthority: string | undefined;\n  firstPool: {\n    id: string;\n    createdAt: string;\n  };\n  holderCount: number;\n  audit: {\n    mintAuthorityDisabled: boolean;\n    freezeAuthorityDisabled: boolean;\n    topHoldersPercentage: number;\n  };\n  apy: {\n    jupEarn: number;\n  };\n\n  organicScore: number;\n  organicScoreLabel: string;\n  isVerified: boolean;\n  tags: string[];\n  fdv: number;\n  mcap: number;\n  usdPrice: number;\n  priceBlockId: number;\n  liquidity: number;\n  stats5m: {\n    priceChange: number;\n    liquidityChange: number;\n    volumeChange: number;\n    buyVolume: number;\n    sellVolume: number;\n    buyOrganicVolume: number;\n    sellOrganicVolume: number;\n    numBuys: number;\n    numSells: number;\n    numTraders: number;\n    numOrganicBuyers: number;\n    numNetBuyers: number;\n  };\n  stats1h: {\n    priceChange: number;\n    liquidityChange: number;\n    volumeChange: number;\n    buyVolume: number;\n    sellVolume: number;\n    buyOrganicVolume: number;\n    sellOrganicVolume: number;\n    numBuys: number;\n    numSells: number;\n    numTraders: number;\n    numOrganicBuyers: number;\n    numNetBuyers: number;\n  };\n  stats6h: {\n    priceChange: number;\n    liquidityChange: number;\n    volumeChange: number;\n    buyVolume: number;\n    sellVolume: number;\n    buyOrganicVolume: number;\n    sellOrganicVolume: number;\n    numBuys: number;\n    numSells: number;\n    numTraders: number;\n    numOrganicBuyers: number;\n    numNetBuyers: number;\n  };\n  stats24h: {\n    priceChange: number;\n    liquidityChange: number;\n    volumeChange: number;\n    buyVolume: number;\n    sellVolume: number;\n    buyOrganicVolume: number;\n    sellOrganicVolume: number;\n    numBuys: number;\n    numSells: number;\n    numTraders: number;\n    numOrganicBuyers: number;\n    numNetBuyers: number;\n  };\n  ctLikes: number;\n  smartCtLikes: number;\n  updatedAt: string;\n};\n\nexport type ApiV3TokenRes = {\n  mintList: ApiV3Token[];\n  blacklist: string[];\n  whiteList: string[];\n};\n\nexport interface ApiV3PoolInfoCountItem {\n  volume: number;\n  volumeQuote: number;\n  volumeFee: number;\n  apr: number;\n  feeApr: number;\n  priceMin: number;\n  priceMax: number;\n  rewardApr: number[];\n}\n\ntype PoolTypeItem = \"StablePool\" | \"OpenBookMarket\";\n\ntype FarmRewardInfoOld = {\n  mint: ApiV3Token;\n  perSecond: number;\n};\n\nexport type PoolFarmRewardInfo = FarmRewardInfoOld & {\n  startTime?: number;\n  endTime?: number;\n};\n\nexport interface PoolRewardInfoItem {\n  mint: ApiV3Token;\n  perSecond?: number;\n  startTime?: number;\n  endTime?: number;\n}\n\nexport interface ApiV3PoolInfoBaseItem {\n  programId: string;\n  id: string;\n  mintA: ApiV3Token;\n  mintB: ApiV3Token;\n  rewardDefaultInfos: PoolFarmRewardInfo[];\n  rewardDefaultPoolInfos: \"Ecosystem\" | \"Fusion\" | \"Raydium\" | \"Clmm\";\n  price: number;\n  mintAmountA: number;\n  mintAmountB: number;\n  feeRate: number;\n  openTime: string;\n  tvl: number;\n\n  day: ApiV3PoolInfoCountItem;\n  week: ApiV3PoolInfoCountItem;\n  month: ApiV3PoolInfoCountItem;\n  pooltype: PoolTypeItem[];\n\n  farmUpcomingCount: number;\n  farmOngoingCount: number;\n  farmFinishedCount: number;\n\n  burnPercent: number;\n}\nexport type ApiV3PoolInfoConcentratedItem = ApiV3PoolInfoBaseItem & {\n  type: \"Concentrated\";\n  config: ApiClmmConfigV3;\n};\nexport type ApiV3PoolInfoStandardItem = ApiV3PoolInfoBaseItem & {\n  type: \"Standard\";\n  marketId: string;\n  configId: string;\n  lpPrice: number;\n  lpAmount: number;\n  lpMint: ApiV3Token;\n};\n\nexport type ApiV3PoolInfoStandardItemCpmm = ApiV3PoolInfoBaseItem & {\n  type: \"Standard\";\n  lpMint: ApiV3Token;\n  lpPrice: number;\n  lpAmount: number;\n  config: ApiCpmmConfigV3;\n};\n\nexport type ApiV3PoolInfoItem =\n  | ApiV3PoolInfoConcentratedItem\n  | ApiV3PoolInfoStandardItem\n  | ApiV3PoolInfoStandardItemCpmm;\n\nexport enum PoolFetchType {\n  All = \"all\",\n  Standard = \"Standard\",\n  Concentrated = \"Concentrated\",\n}\n\nexport interface FetchPoolParams {\n  type?: PoolFetchType;\n  sort?:\n    | \"liquidity\"\n    | \"volume24h\"\n    | \"volume7d\"\n    | \"volume30d\"\n    | \"fee24h\"\n    | \"fee7d\"\n    | \"fee30d\"\n    | \"apr24h\"\n    | \"apr7d\"\n    | \"apr30d\";\n  order?: \"desc\" | \"asc\";\n  pageSize?: number;\n  nextPageId?: string;\n  showFarms?: boolean;\n  mint1?: string;\n  mint2?: string;\n}\n\n// liquidity line\nexport interface Point {\n  time: number;\n  liquidity: number;\n}\nexport interface LiquidityLineApi {\n  count: number;\n  line: Point[];\n}\n\n// pool key\n\ninterface Base {\n  programId: string;\n  id: string;\n  mintA: ApiV3Token;\n  mintB: ApiV3Token;\n  lookupTableAccount?: string;\n  openTime: string;\n  vault: { A: string; B: string };\n}\ninterface _Amm {\n  authority: string;\n  openOrders: string;\n  targetOrders: string;\n  mintLp: ApiV3Token;\n}\n\ninterface ApiCpmmConfigV3 {\n  id: string;\n  index: number;\n  protocolFeeRate: number;\n  tradeFeeRate: number;\n  fundFeeRate: number;\n  createPoolFee: string;\n}\n\ninterface _Cpmm {\n  authority: string;\n  mintLp: ApiV3Token;\n  config: ApiCpmmConfigV3;\n  observationId: string;\n}\ninterface _Market {\n  marketProgramId: string;\n  marketId: string;\n  marketAuthority: string;\n  marketBaseVault: string;\n  marketQuoteVault: string;\n  marketBids: string;\n  marketAsks: string;\n  marketEventQueue: string;\n}\nexport type AmmV4Keys = Base & _Amm & _Market;\nexport type AmmV5Keys = Base & _Amm & _Market & { modelDataAccount: string };\nexport type CpmmKeys = Base & _Cpmm;\nexport interface ClmmRewardType {\n  mint: ApiV3Token;\n  vault: string;\n}\nexport type ClmmKeys = Base & {\n  config: ApiClmmConfigV3;\n  rewardInfos: ClmmRewardType[];\n  observationId: string;\n  exBitmapAccount: string;\n};\nexport type PoolKeys = AmmV4Keys | AmmV5Keys | ClmmKeys | CpmmKeys;\n\n// clmm config\nexport interface ApiClmmConfigV3 {\n  id: string;\n  index: number;\n  protocolFeeRate: number;\n  tradeFeeRate: number;\n  tickSpacing: number;\n  fundFeeRate: number;\n  description: string;\n  defaultRange: number;\n  defaultRangePoint: number[];\n}\n\nexport interface RpcItemA {\n  url: string;\n  weight: number;\n  batch: boolean;\n  name: string;\n}\nexport interface RpcItemB {\n  url: string;\n  batch: boolean;\n  name: string;\n}\n\ntype RpcStrategy = \"speed\" | \"first\";\ntype RpcTypeWeight = { strategy: \"weight\"; rpcs: RpcItemA[] };\ntype RpcTypeOther = { strategy: RpcStrategy; rpcs: RpcItemB[] };\nexport type RpcType = RpcTypeWeight | RpcTypeOther;\n\nexport type FarmRewardTypeV6Key = \"Standard SPL\" | \"Option tokens\";\n\nexport interface RewardKeyInfoV345 {\n  mint: ApiV3Token;\n  vault: string;\n  type: FarmRewardTypeV6Key;\n  perSecond: number;\n  perBlock: number;\n}\nexport interface RewardKeyInfoV6 {\n  mint: ApiV3Token;\n  vault: string;\n  type: FarmRewardTypeV6Key;\n  perSecond: number;\n  openTime: string;\n  endTime: string;\n  sender: string;\n}\ninterface FormatFarmKeyOutBase {\n  programId: string;\n  id: string;\n  symbolMints: ApiV3Token[];\n  lpMint: ApiV3Token;\n  authority: string;\n  lpVault: string;\n}\nexport type FormatFarmKeyOutV345 = FormatFarmKeyOutBase & {\n  rewardInfos: RewardKeyInfoV345[];\n};\nexport type FormatFarmKeyOutV6 = FormatFarmKeyOutBase & {\n  config: {\n    periodMax: number;\n    periodMin: number;\n    periodExtend: number;\n  };\n  rewardInfos: RewardKeyInfoV6[];\n};\nexport type FormatFarmKeyOut = FormatFarmKeyOutV345 | FormatFarmKeyOutV6;\n// item page farm info\n// farm info\nexport interface RewardInfoV345 {\n  mint: ApiV3Token;\n  type: FarmRewardTypeV6Key;\n  apr: number;\n  perSecond: string;\n}\nexport interface RewardInfoV6 {\n  mint: ApiV3Token;\n  type: FarmRewardTypeV6Key;\n  apr: number;\n  perSecond: string;\n  openTime: string;\n  endTime: string;\n}\nexport type FarmTagsItem = \"Ecosystem\" | \"Farm\" | \"Fusion\" | \"Stake\";\nexport interface FormatFarmInfoOutBase {\n  programId: string;\n  id: string;\n  symbolMints: ApiV3Token[];\n  lpMint: ApiV3Token;\n  tvl: number;\n  lpPrice: number;\n  apr: number;\n  tags: FarmTagsItem[];\n}\nexport type FormatFarmInfoOutV345 = FormatFarmInfoOutBase & {\n  rewardInfos: RewardInfoV345[];\n};\nexport type FormatFarmInfoOutV6 = FormatFarmInfoOutBase & {\n  rewardInfos: RewardInfoV6[];\n};\nexport type FormatFarmInfoOut = FormatFarmInfoOutV345 | FormatFarmInfoOutV6;\n\nexport interface AvailabilityCheckAPI3 {\n  all: boolean;\n  swap: boolean;\n  createConcentratedPosition: boolean;\n  addConcentratedPosition: boolean;\n  addStandardPosition: boolean;\n  removeConcentratedPosition: boolean;\n  removeStandardPosition: boolean;\n  addFarm: boolean;\n  removeFarm: boolean;\n}\n\nexport type OwnerCreatedFarmInfo = {\n  farm: { id: string; programId: string }[];\n  clmm: { id: string; programId: string }[];\n};\n\nexport type OwnerIdoInfo = Record<\n  string,\n  {\n    programId: string;\n    poolId: string;\n    coin: string;\n    pc: string;\n  }\n>;\n\nexport type IdoKeysData = {\n  programId: string;\n  id: string;\n  authority: string;\n  projectInfo: {\n    mint: ApiV3Token;\n    vault: string;\n  };\n  buyInfo: {\n    mint: ApiV3Token;\n    vault: string;\n  };\n};\n\nexport interface ApiStakePool {\n  programId: string;\n  id: string;\n  apr: number;\n  lpMint: ApiV3Token;\n  lpPrice: number;\n  symbolMints: ApiV3Token[];\n  tvl: number;\n  tags: FarmTagsItem[];\n  rewardInfos: RewardInfoV345[];\n}\n\nexport type FarmPositionData = Record<\n  string,\n  Record<\n    string,\n    Record<\n      string,\n      {\n        programId: string;\n        lpAmount: string;\n        version: \"V1\" | \"V2\";\n      }\n    >\n  >\n>;\n\nexport interface ApiLaunchConfig {\n  key: {\n    name: string;\n    pubKey: string;\n    epoch: number;\n    curveType: number;\n    index: number;\n    migrateFee: string;\n    tradeFeeRate: string;\n    maxShareFeeRate: string;\n    minSupplyA: string;\n    maxLockRate: string;\n    minSellRateA: string;\n    minMigrateRateA: string;\n    minFundRaisingB: string;\n    protocolFeeOwner: string;\n    migrateFeeOwner: string;\n    migrateToAmmWallet: string;\n    migrateToCpmmWallet: string;\n    mintB: string;\n  };\n  mintInfoB: ApiV3Token;\n  defaultParams: {\n    supplyInit: string;\n    totalFundRaisingB: string;\n    totalSellA: string;\n  };\n}\n"],"mappings":"AAiIO,GAAK,GAAL,CAAK,GACV,OAAM,MACN,SAAS,SAFC,WAoOA,EAAL,CAAK,GACV,OAAM,MACN,WAAW,WACX,eAAe,eAHL","names":[]}