{"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  description: string;\n  defaultRange: number;\n  defaultRangePoint: 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\n// export interface ApiClmmPoolInfo {\n//   id: string;\n//   mintProgramIdA: string;\n//   mintProgramIdB: string;\n//   mintA: string;\n//   mintB: string;\n//   mintDecimalsA: number;\n//   mintDecimalsB: number;\n//   ammConfig: ApiClmmConfigInfo;\n//   rewardInfos: {\n//     mint: string;\n//     programId: string;\n//   }[];\n//   day: ApiClmmPoolsItemStatistics;\n//   week: ApiClmmPoolsItemStatistics;\n//   month: ApiClmmPoolsItemStatistics;\n//   tvl: number;\n//   lookupTableAccount: string;\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>;\nexport interface SearchPoolsApiReturn {\n  hasNextPage: boolean;\n  data: ApiV3PoolInfoItem[];\n  bestUse: \"id\" | \"mint\" | null;\n  search: string;\n}\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\ntype ExtensionsItem = {\n  coingeckoId?: string;\n  feeConfig?: TransferFeeDataBaseType;\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};\n\nexport type ApiV3TokenRes = {\n  mintList: ApiV3Token[];\n  blacklist: ApiV3Token[];\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  price: number;\n  mintAmountA: number;\n  mintAmountB: number;\n  feeRate: number;\n  openTime: number;\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}\nexport type ApiV3PoolInfoConcentratedItem = ApiV3PoolInfoBaseItem & {\n  type: \"Concentrated\";\n  config: ApiClmmConfigV3;\n};\nexport type ApiV3PoolInfoStandardItem = ApiV3PoolInfoBaseItem & {\n  type: \"Standard\";\n  marketId: string;\n  lpPrice: number;\n  lpAmount: number;\n  lpMint: ApiV3Token;\n};\nexport type ApiV3PoolInfoItem = ApiV3PoolInfoConcentratedItem | ApiV3PoolInfoStandardItem;\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    | \"volume_24h\"\n    | \"volume_7d\"\n    | \"volume_30d\"\n    | \"fee_24h\"\n    | \"fee_7d\"\n    | \"fee_30d\"\n    | \"apr_24h\"\n    | \"apr_7d\"\n    | \"apr_30d\";\n  order?: \"desc\" | \"asc\";\n  pageSize?: number;\n  page?: number;\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\ninterface Base {\n  programId: string;\n  id: string;\n  mintA: ApiV3Token;\n  mintB: ApiV3Token;\n  lookupTableAccount?: string;\n  openTime: number;\n  vault: { A: string; B: string };\n}\ninterface AmmKeys {\n  authority: string;\n  openOrders: string;\n  targetOrders: string;\n  withdrawQueue: string;\n  mintLp: ApiV3Token;\n  vault: { Lp: string }; // stable Publickey default\n}\ninterface MarketKeys {\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 & AmmKeys & MarketKeys;\nexport type AmmV5Keys = Base & AmmKeys & MarketKeys & { modelDataAccount: string };\ninterface ClmmRewardType {\n  mint: ApiV3Token;\n  vault: string;\n}\nexport type ClmmKeys = Base & { config: ApiClmmConfigV3; rewardInfos: ClmmRewardType[] };\nexport type PoolKeys = AmmV4Keys | AmmV5Keys | ClmmKeys;\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: number;\n  endTime: number;\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: number;\n}\nexport interface RewardInfoV6 {\n  mint: ApiV3Token;\n  type: FarmRewardTypeV6Key;\n  apr: number;\n  perSecond: number;\n  openTime: number;\n  endTime: number;\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"],"mappings":"AAmHO,GAAK,GAAL,CAAK,GACV,OAAM,MACN,SAAS,SAFC,WAmHA,EAAL,CAAK,GACV,OAAM,MACN,WAAW,WACX,eAAe,eAHL","names":[]}