UNPKG

test-raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

136 lines (122 loc) 3.23 kB
import { PublicKey } from "@solana/web3.js"; import BN from "bn.js"; import { ComputeBudgetConfig } from "@/raydium/type"; import { BigNumberish } from "@/common/bignumber"; import { FormatFarmInfoOut, ApiV3PoolInfoStandardItem, ApiV3Token } from "@/api/type"; import { poolTypeV6 } from "./config"; import { TxVersion } from "@/common"; export type RewardType = keyof typeof poolTypeV6; export interface APIRewardInfo { rewardMint: string; rewardVault: string; rewardOpenTime: number; rewardEndTime: number; rewardPerSecond: string | number; rewardSender?: string; rewardType: string; } export interface RewardInfoWithKey { rewardMint: PublicKey; rewardVault: PublicKey; rewardOpenTime: number; rewardEndTime: number; rewardType: RewardType; rewardPerSecond: string | number; rewardSender?: PublicKey; } export interface FarmRewardInfo { mint: PublicKey; perSecond: string; openTime: number; endTime: number; rewardType: RewardType; } export interface FarmRewardInfoConfig { isSet: BN; rewardPerSecond: BN; rewardOpenTime: BN; rewardEndTime: BN; rewardType: BN; } export interface RewardInfoKey { rewardMint: PublicKey; rewardVault: PublicKey; userRewardToken: PublicKey; } export interface FarmPoolInfoV6 { version: number; programId: PublicKey; lpMint: PublicKey; rewardInfos: FarmRewardInfo[]; lockInfo: { lockMint: PublicKey; lockVault: PublicKey; }; } export interface CreateFarm<T = TxVersion.LEGACY> { poolInfo: ApiV3PoolInfoStandardItem; rewardInfos: FarmRewardInfo[]; payer?: PublicKey; programId?: PublicKey; txVersion?: T; } export interface CreateFarmExtInfo { farmId: PublicKey; farmAuthority: PublicKey; lpVault: PublicKey; lockUserAccount: PublicKey; nonce: number; } export interface UpdateFarmReward<T = TxVersion.LEGACY> { farmInfo: FormatFarmInfoOut; newRewardInfo: FarmRewardInfo; payer?: PublicKey; txVersion?: T; } export interface UpdateFarmRewards<T = TxVersion.LEGACY> { farmInfo: FormatFarmInfoOut; newRewardInfos: FarmRewardInfo[]; payer?: PublicKey; txVersion?: T; } export interface FarmDWParam<T = TxVersion.LEGACY> { farmInfo: { id: string; programId: string; lpMint: ApiV3Token; rewardInfos: { mint: ApiV3Token }[]; }; amount: BigNumberish; feePayer?: PublicKey; useSOLBalance?: boolean; associatedOnly?: boolean; checkCreateATAOwner?: boolean; deposited?: BN; txVersion?: T; userAuxiliaryLedgers?: string[]; computeBudgetConfig?: ComputeBudgetConfig; } /* ================= pool keys ================= */ export type FarmPoolKeys = { readonly id: PublicKey; readonly lpMint: PublicKey; readonly version: number; readonly programId: PublicKey; readonly authority: PublicKey; readonly lpVault: PublicKey; readonly upcoming: boolean; readonly rewardInfos: ( | { readonly rewardMint: PublicKey; readonly rewardVault: PublicKey; } | { readonly rewardMint: PublicKey; readonly rewardVault: PublicKey; readonly rewardOpenTime: number; readonly rewardEndTime: number; readonly rewardPerSecond: number; readonly rewardType: RewardType; } )[]; };