All files / src/types raydium.ts

100% Statements 11/11
100% Branches 6/6
100% Functions 3/3
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102                                                                          1x 1x 1x     1x 1x 1x 1x     1x 1x 1x 1x                                                                                                    
export interface MintParams {
  decimals: number;
  name: string;
  symbol: string;
  uri: string;
}
 
export interface ConstantCurve {
  supply: bigint;
  totalBaseSell: bigint;
  totalQuoteFundRaising: bigint;
  migrateType: number;
}
 
export interface FixedCurve {
  supply: bigint;
  totalQuoteFundRaising: bigint;
  migrateType: number;
}
 
export interface LinearCurve {
  supply: bigint;
  totalQuoteFundRaising: bigint;
  migrateType: number;
}
 
export interface CurveParams {
  variant: string; // e.g., "Constant", "Fixed", "Linear"
  data: ConstantCurve | FixedCurve | LinearCurve;
}
 
export interface VestingParams {
  totalLockedAmount: bigint;
  cliffPeriod: bigint;
  unlockPeriod: bigint;
}
 
export enum TradeDirection {
  Buy = 0,
  Sell = 1,
}
 
export enum PoolStatus {
  Fund = 0,
  Migrate = 1,
  Trade = 2,
}
 
export enum CurveType {
  Constant = 0,
  Fixed = 1,
  Linear = 2,
}
 
export interface RaydiumLCPCreateEvent {
  poolState: string;
  creator: string;
  config: string;
  baseMintParam: MintParams;
  curveParam: CurveParams;
  vestingParam: VestingParams;
  baseMint: string;
  quoteMint: string;
}
 
export interface RaydiumLCPTradeEvent {
  poolState: string;
  totalBaseSell: bigint;
  virtualBase: bigint;
  virtualQuote: bigint;
  realBaseBefore: bigint;
  realQuoteBefore: bigint;
  realBaseAfter: bigint;
  amountIn: bigint;
  amountOut: bigint;
  protocolFee: bigint;
  platformFee: bigint;
  shareFee: bigint;
  tradeDirection: TradeDirection;
  poolStatus: PoolStatus;
  user: string;
  baseMint: string;
  quoteMint: string;
}
 
export interface RaydiumLCPCompleteEvent {
  baseMint: string; // token mint
  quoteMint: string; // token mint
  poolMint: string;
  lpMint: string;
  amm: string; // RaydiumV4 or RaydiumCPMM
}
 
export interface RaydiumLCPEvent {
  type: 'TRADE' | 'CREATE' | 'COMPLETE';
  data: RaydiumLCPTradeEvent | RaydiumLCPCreateEvent | RaydiumLCPCompleteEvent;
  slot: number;
  timestamp: number;
  signature: string;
  idx: string; // instruction indexes
}