test-raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
1 lines • 10.9 kB
Source Map (JSON)
{"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":[]}