@raydium-io/raydium-sdk-v2 0.0.27-alpha → 0.0.29-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1415 @@
1
+ import { PublicKey, TransactionInstruction, Signer, Transaction, VersionedTransaction, Connection } from '@solana/web3.js';
2
+ import BN__default from 'bn.js';
3
+ import { Mint, TransferFeeConfig } from '@solana/spl-token';
4
+ import { TxVersion } from './common/txTool/txType.js';
5
+ import { Owner } from './common/owner.js';
6
+ import { CacheLTA } from './common/txTool/lookupTable.js';
7
+ import Decimal from 'decimal.js';
8
+ import { Token, TokenProps } from './module/token.js';
9
+ import { Structure, GetStructureFromLayoutSchema } from './marshmallow/index.js';
10
+ import { GetStructureSchema } from './marshmallow/buffer-layout.js';
11
+ import { Logger } from './common/logger.js';
12
+ import { Currency } from './module/currency.js';
13
+
14
+ interface TxBuilderInit {
15
+ connection: Connection;
16
+ feePayer: PublicKey;
17
+ owner?: Owner;
18
+ signAllTransactions?: SignAllTransactions;
19
+ }
20
+ interface AddInstructionParam {
21
+ addresses?: Record<string, PublicKey>;
22
+ instructions?: TransactionInstruction[];
23
+ endInstructions?: TransactionInstruction[];
24
+ lookupTableAddress?: string[];
25
+ signers?: Signer[];
26
+ instructionTypes?: string[];
27
+ endInstructionTypes?: string[];
28
+ }
29
+ interface TxBuildData<T = Record<string, any>> {
30
+ builder: TxBuilder;
31
+ transaction: Transaction;
32
+ instructionTypes: string[];
33
+ signers: Signer[];
34
+ execute: () => Promise<{
35
+ txId: string;
36
+ signedTx: Transaction;
37
+ }>;
38
+ extInfo: T;
39
+ }
40
+ interface TxV0BuildData<T = Record<string, any>> extends Omit<TxBuildData<T>, "transaction" | "execute"> {
41
+ builder: TxBuilder;
42
+ transaction: VersionedTransaction;
43
+ buildProps?: {
44
+ lookupTableCache?: CacheLTA;
45
+ lookupTableAddress?: string[];
46
+ };
47
+ execute: () => Promise<{
48
+ txId: string;
49
+ signedTx: VersionedTransaction;
50
+ }>;
51
+ }
52
+ declare type TxUpdateParams = {
53
+ txId: string;
54
+ status: "success" | "error" | "sent";
55
+ signedTx: Transaction | VersionedTransaction;
56
+ };
57
+ interface ExecuteParam {
58
+ sequentially: boolean;
59
+ onTxUpdate?: (completeTxs: TxUpdateParams[]) => void;
60
+ }
61
+ interface MultiTxBuildData<T = Record<string, any>> {
62
+ builder: TxBuilder;
63
+ transactions: Transaction[];
64
+ instructionTypes: string[];
65
+ signers: Signer[][];
66
+ execute: (executeParams?: ExecuteParam) => Promise<{
67
+ txIds: string[];
68
+ signedTxs: Transaction[];
69
+ }>;
70
+ extInfo: T;
71
+ }
72
+ interface MultiTxV0BuildData<T = Record<string, any>> extends Omit<MultiTxBuildData<T>, "transactions" | "execute"> {
73
+ builder: TxBuilder;
74
+ transactions: VersionedTransaction[];
75
+ buildProps?: {
76
+ lookupTableCache?: CacheLTA;
77
+ lookupTableAddress?: string[];
78
+ };
79
+ execute: (executeParams?: ExecuteParam) => Promise<{
80
+ txIds: string[];
81
+ signedTxs: VersionedTransaction[];
82
+ }>;
83
+ }
84
+ declare type MakeMultiTxData<T = TxVersion.LEGACY, O = Record<string, any>> = T extends TxVersion.LEGACY ? MultiTxBuildData<O> : MultiTxV0BuildData<O>;
85
+ declare type MakeTxData<T = TxVersion.LEGACY, O = Record<string, any>> = T extends TxVersion.LEGACY ? TxBuildData<O> : TxV0BuildData<O>;
86
+ declare class TxBuilder {
87
+ private connection;
88
+ private owner?;
89
+ private instructions;
90
+ private endInstructions;
91
+ private lookupTableAddress;
92
+ private signers;
93
+ private instructionTypes;
94
+ private endInstructionTypes;
95
+ private feePayer;
96
+ private signAllTransactions?;
97
+ constructor(params: TxBuilderInit);
98
+ get AllTxData(): {
99
+ instructions: TransactionInstruction[];
100
+ endInstructions: TransactionInstruction[];
101
+ signers: Signer[];
102
+ instructionTypes: string[];
103
+ endInstructionTypes: string[];
104
+ lookupTableAddress: string[];
105
+ };
106
+ get allInstructions(): TransactionInstruction[];
107
+ getComputeBudgetConfig(): Promise<ComputeBudgetConfig | undefined>;
108
+ addCustomComputeBudget(config?: ComputeBudgetConfig): boolean;
109
+ calComputeBudget({ config: propConfig, defaultIns, }: {
110
+ config?: ComputeBudgetConfig;
111
+ defaultIns?: TransactionInstruction[];
112
+ }): Promise<void>;
113
+ addInstruction({ instructions, endInstructions, signers, instructionTypes, endInstructionTypes, lookupTableAddress, }: AddInstructionParam): TxBuilder;
114
+ versionBuild<O = Record<string, any>>({ txVersion, extInfo, }: {
115
+ txVersion?: TxVersion;
116
+ extInfo?: O;
117
+ }): Promise<MakeTxData<TxVersion.LEGACY, O> | MakeTxData<TxVersion.V0, O>>;
118
+ build<O = Record<string, any>>(extInfo?: O): MakeTxData<TxVersion.LEGACY, O>;
119
+ buildMultiTx<T = Record<string, any>>(params: {
120
+ extraPreBuildData?: MakeTxData<TxVersion.LEGACY>[];
121
+ extInfo?: T;
122
+ }): MultiTxBuildData;
123
+ versionMultiBuild<T extends TxVersion, O = Record<string, any>>({ extraPreBuildData, txVersion, extInfo, }: {
124
+ extraPreBuildData?: MakeTxData<TxVersion.V0>[] | MakeTxData<TxVersion.LEGACY>[];
125
+ txVersion?: T;
126
+ extInfo?: O;
127
+ }): Promise<MakeMultiTxData<T, O>>;
128
+ buildV0<O = Record<string, any>>(props?: O & {
129
+ lookupTableCache?: CacheLTA;
130
+ lookupTableAddress?: string[];
131
+ forerunCreate?: boolean;
132
+ }): Promise<MakeTxData<TxVersion.V0, O>>;
133
+ buildV0MultiTx<T = Record<string, any>>(params: {
134
+ extraPreBuildData?: MakeTxData<TxVersion.V0>[];
135
+ buildProps?: T & {
136
+ lookupTableCache?: CacheLTA;
137
+ lookupTableAddress?: string[];
138
+ };
139
+ }): Promise<MultiTxV0BuildData>;
140
+ sizeCheckBuild(props?: Record<string, any> & {
141
+ computeBudgetConfig?: ComputeBudgetConfig;
142
+ }): Promise<MultiTxBuildData>;
143
+ sizeCheckBuildV0(props?: Record<string, any> & {
144
+ computeBudgetConfig?: ComputeBudgetConfig;
145
+ lookupTableCache?: CacheLTA;
146
+ lookupTableAddress?: string[];
147
+ }): Promise<MultiTxV0BuildData>;
148
+ }
149
+
150
+ declare class Fraction {
151
+ readonly numerator: BN__default;
152
+ readonly denominator: BN__default;
153
+ constructor(numerator: BigNumberish, denominator?: BigNumberish);
154
+ get quotient(): BN__default;
155
+ invert(): Fraction;
156
+ add(other: Fraction | BigNumberish): Fraction;
157
+ sub(other: Fraction | BigNumberish): Fraction;
158
+ mul(other: Fraction | BigNumberish): Fraction;
159
+ div(other: Fraction | BigNumberish): Fraction;
160
+ toSignificant(significantDigits: number, format?: object, rounding?: Rounding): string;
161
+ toFixed(decimalPlaces: number, format?: object, rounding?: Rounding): string;
162
+ isZero(): boolean;
163
+ }
164
+
165
+ interface PriceProps {
166
+ baseToken: Token;
167
+ denominator: BigNumberish;
168
+ quoteToken: Token;
169
+ numerator: BigNumberish;
170
+ }
171
+ declare class Price extends Fraction {
172
+ readonly baseToken: Token;
173
+ readonly quoteToken: Token;
174
+ readonly scalar: Fraction;
175
+ constructor(params: PriceProps);
176
+ get raw(): Fraction;
177
+ get adjusted(): Fraction;
178
+ invert(): Price;
179
+ mul(other: Price): Price;
180
+ toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
181
+ toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
182
+ }
183
+
184
+ declare const _100_PERCENT: Fraction;
185
+ declare class Percent extends Fraction {
186
+ toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
187
+ toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
188
+ }
189
+
190
+ declare type TokenInfo = ApiV3Token & {
191
+ priority: number;
192
+ userAdded?: boolean;
193
+ type?: string;
194
+ };
195
+ interface TokenJson {
196
+ symbol: string;
197
+ name: string;
198
+ mint: string;
199
+ decimals: number;
200
+ extensions: {
201
+ coingeckoId?: string;
202
+ };
203
+ icon: string;
204
+ hasFreeze?: boolean;
205
+ }
206
+ declare type SplToken = TokenProps & {
207
+ icon: string;
208
+ id: string;
209
+ extensions: {
210
+ [key in "coingeckoId" | "website" | "whitepaper"]?: string;
211
+ };
212
+ userAdded?: boolean;
213
+ };
214
+ declare type LpToken = Token & {
215
+ isLp: true;
216
+ base: SplToken;
217
+ quote: SplToken;
218
+ icon: string;
219
+ /** mint. for `<TokenSelector>`*/
220
+ id: string;
221
+ extensions: {
222
+ [key in "coingeckoId" | "website" | "whitepaper"]?: string;
223
+ };
224
+ };
225
+
226
+ declare enum Rounding {
227
+ ROUND_DOWN = 0,
228
+ ROUND_HALF_UP = 1,
229
+ ROUND_UP = 2
230
+ }
231
+ declare const BN_ZERO: BN__default;
232
+ declare const BN_ONE: BN__default;
233
+ declare const BN_TWO: BN__default;
234
+ declare const BN_THREE: BN__default;
235
+ declare const BN_FIVE: BN__default;
236
+ declare const BN_TEN: BN__default;
237
+ declare const BN_100: BN__default;
238
+ declare const BN_1000: BN__default;
239
+ declare const BN_10000: BN__default;
240
+ declare type BigNumberish = BN__default | string | number | bigint;
241
+ declare type Numberish = number | string | bigint | Fraction | BN__default;
242
+ declare function parseBigNumberish(value: BigNumberish): BN__default;
243
+ declare function tenExponential(shift: BigNumberish): BN__default;
244
+ /**
245
+ *
246
+ * @example
247
+ * getIntInfo(0.34) => { numerator: '34', denominator: '100'}
248
+ * getIntInfo('0.34') //=> { numerator: '34', denominator: '100'}
249
+ */
250
+ declare function parseNumberInfo(n: Numberish | undefined): {
251
+ denominator: string;
252
+ numerator: string;
253
+ sign?: string;
254
+ int?: string;
255
+ dec?: string;
256
+ };
257
+ declare function divCeil(a: BN__default, b: BN__default): BN__default;
258
+ declare function shakeFractionDecimal(n: Fraction): string;
259
+ declare function toBN(n: Numberish, decimal?: BigNumberish): BN__default;
260
+ declare function toFraction(value: Numberish): Fraction;
261
+ /**
262
+ * @example
263
+ * toPercent(3.14) // => Percent { 314.00% }
264
+ * toPercent(3.14, { alreadyDecimaled: true }) // => Percent {3.14%}
265
+ */
266
+ declare function toPercent(n: Numberish, options?: {
267
+ alreadyDecimaled?: boolean;
268
+ }): Percent;
269
+ declare function toTokenPrice(params: {
270
+ token: TokenJson | Token | SplToken;
271
+ numberPrice: Numberish;
272
+ decimalDone?: boolean;
273
+ }): Price;
274
+ declare function toUsdCurrency(amount: Numberish): CurrencyAmount;
275
+ declare function toTotalPrice(amount: Numberish | undefined, price: Price | undefined): CurrencyAmount;
276
+ declare function decimalToFraction(n: Decimal | undefined): Fraction | undefined;
277
+ declare function isDecimal(val: unknown): boolean;
278
+ declare function recursivelyDecimalToFraction<T>(info: T): ReplaceType<T, Decimal, Fraction>;
279
+
280
+ declare function splitNumber(num: string, decimals: number): [string, string];
281
+ declare class TokenAmount extends Fraction {
282
+ readonly token: Token;
283
+ protected logger: Logger;
284
+ constructor(token: Token, amount: BigNumberish, isRaw?: boolean, name?: string);
285
+ get raw(): BN__default;
286
+ isZero(): boolean;
287
+ gt(other: TokenAmount): boolean;
288
+ /**
289
+ * a less than b
290
+ */
291
+ lt(other: TokenAmount): boolean;
292
+ add(other: TokenAmount): TokenAmount;
293
+ subtract(other: TokenAmount): TokenAmount;
294
+ toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
295
+ /**
296
+ * To fixed
297
+ *
298
+ * @example
299
+ * ```
300
+ * 1 -> 1.000000000
301
+ * 1.234 -> 1.234000000
302
+ * 1.123456789876543 -> 1.123456789
303
+ * ```
304
+ */
305
+ toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
306
+ /**
307
+ * To exact
308
+ *
309
+ * @example
310
+ * ```
311
+ * 1 -> 1
312
+ * 1.234 -> 1.234
313
+ * 1.123456789876543 -> 1.123456789
314
+ * ```
315
+ */
316
+ toExact(format?: object): string;
317
+ }
318
+ declare class CurrencyAmount extends Fraction {
319
+ readonly currency: Currency;
320
+ protected logger: Logger;
321
+ constructor(currency: Currency, amount: BigNumberish, isRaw?: boolean, name?: string);
322
+ get raw(): BN__default;
323
+ isZero(): boolean;
324
+ /**
325
+ * a greater than b
326
+ */
327
+ gt(other: CurrencyAmount): boolean;
328
+ /**
329
+ * a less than b
330
+ */
331
+ lt(other: CurrencyAmount): boolean;
332
+ add(other: CurrencyAmount): CurrencyAmount;
333
+ sub(other: CurrencyAmount): CurrencyAmount;
334
+ toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
335
+ /**
336
+ * To fixed
337
+ *
338
+ * @example
339
+ * ```
340
+ * 1 -> 1.000000000
341
+ * 1.234 -> 1.234000000
342
+ * 1.123456789876543 -> 1.123456789
343
+ * ```
344
+ */
345
+ toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
346
+ /**
347
+ * To exact
348
+ *
349
+ * @example
350
+ * ```
351
+ * 1 -> 1
352
+ * 1.234 -> 1.234
353
+ * 1.123456789876543 -> 1.123456789
354
+ * ```
355
+ */
356
+ toExact(format?: object): string;
357
+ }
358
+
359
+ declare type SignAllTransactions = (<T extends Transaction | VersionedTransaction>(transaction: T[]) => Promise<T[]>) | undefined;
360
+ interface MakeTransaction<T = Record<string, any>> {
361
+ builder: TxBuilder;
362
+ signers: Signer[];
363
+ transaction: Transaction;
364
+ instructionTypes: string[];
365
+ execute: () => Promise<{
366
+ txId: string;
367
+ signedTx: Transaction;
368
+ }>;
369
+ extInfo: T;
370
+ }
371
+ interface MakeV0Transaction<T = Record<string, any>> {
372
+ builder: TxBuilder;
373
+ signers: Signer[];
374
+ transaction: VersionedTransaction;
375
+ instructionTypes: string[];
376
+ execute: () => Promise<string>;
377
+ extInfo: T;
378
+ }
379
+ interface MakeMultiTransaction {
380
+ builder: TxBuilder;
381
+ signers: Signer[][];
382
+ transactions: Transaction[];
383
+ instructionTypes: string[];
384
+ execute: (params?: ExecuteParam) => Promise<{
385
+ txIds: string[];
386
+ signedTxs: Transaction[];
387
+ }>;
388
+ extInfo: Record<string, any>;
389
+ }
390
+ interface InstructionReturn {
391
+ instruction: TransactionInstruction;
392
+ instructionType: string;
393
+ }
394
+ interface ComputeBudgetConfig {
395
+ units?: number;
396
+ microLamports?: number;
397
+ }
398
+ interface LoadParams {
399
+ forceUpdate?: boolean;
400
+ }
401
+ interface TransferAmountFee {
402
+ amount: TokenAmount;
403
+ fee: TokenAmount | undefined;
404
+ expirationTime: number | undefined;
405
+ }
406
+ interface GetTransferAmountFee {
407
+ amount: BN__default;
408
+ fee: BN__default | undefined;
409
+ expirationTime: number | undefined;
410
+ }
411
+ declare type ReturnTypeFetchMultipleMintInfo = Mint & {
412
+ feeConfig: TransferFeeConfig | undefined;
413
+ };
414
+ interface ReturnTypeFetchMultipleMintInfos {
415
+ [mint: string]: ReturnTypeFetchMultipleMintInfo;
416
+ }
417
+ declare type Primitive = boolean | number | string | null | undefined | PublicKey;
418
+ /**
419
+ *
420
+ * @example
421
+ * ```typescript
422
+ * interface A {
423
+ * keyA: string;
424
+ * keyB: string;
425
+ * map: {
426
+ * hello: string;
427
+ * i: number;
428
+ * };
429
+ * list: (string | number)[];
430
+ * keyC: number;
431
+ * }
432
+ *
433
+ * type WrappedA = ReplaceType<A, string, boolean> // {
434
+ * keyA: boolean;
435
+ * keyB: boolean;
436
+ * map: {
437
+ * hello: boolean;
438
+ * i: number;
439
+ * };
440
+ * list: (number | boolean)[];
441
+ * keyC: number;
442
+ * }
443
+ * ```
444
+ */
445
+ declare type ReplaceType<Old, From, To> = {
446
+ [T in keyof Old]: Old[T] extends From ? Exclude<Old[T], From> | To : Old[T] extends Primitive ? From extends Old[T] ? Exclude<Old[T], From> | To : Old[T] : ReplaceType<Old[T], From, To>;
447
+ };
448
+ declare type MayArray<T> = T | Array<T>;
449
+ declare type MayDeepArray<T> = T | Array<MayDeepArray<T>>;
450
+ declare type MayFunction<T, PS extends any[] = []> = T | ((...Params: PS) => T);
451
+ declare type ArrayItem<T extends ReadonlyArray<any>> = T extends Array<infer P> ? P : never;
452
+ declare type ExactPartial<T, U> = {
453
+ [P in Extract<keyof T, U>]?: T[P];
454
+ } & {
455
+ [P in Exclude<keyof T, U>]: T[P];
456
+ };
457
+ declare type ExactRequired<T, U> = {
458
+ [P in Extract<keyof T, U>]-?: T[P];
459
+ } & {
460
+ [P in Exclude<keyof T, U>]: T[P];
461
+ };
462
+ /**
463
+ * extract only string and number
464
+ */
465
+ declare type SKeyof<O> = Extract<keyof O, string>;
466
+ declare type GetValue<T, K> = K extends keyof T ? T[K] : undefined;
467
+ /**
468
+ * @example
469
+ * type A = { a: number; b: string; c?: string }
470
+ * type B = { a: string; c: string; d?: boolean }
471
+ *
472
+ * type D = SOR<A, B> // { a: number | string; b: string | undefined; c: string | undefined; d: boolean | undefined } // ! if use SOR, you lost union type guard feature, try NOT to use this trick
473
+ */
474
+ declare type SOR<T, U> = {
475
+ [K in keyof T | keyof U]: GetValue<T, K> | GetValue<U, K>;
476
+ };
477
+ declare type Fallback<T, FallbackT> = T extends undefined ? FallbackT : T;
478
+ /**
479
+ * @example
480
+ * type A = { a: number; b: string; c?: string }
481
+ * type B = { a: string; c: string; d?: boolean }
482
+ *
483
+ * type D = Cover<A, B> // { a: string; b: string; c: string; d?: boolean}
484
+ */
485
+ declare type Cover<O, T> = {
486
+ [K in SKeyof<O> | SKeyof<T>]: Fallback<GetValue<T, K>, GetValue<O, K>>;
487
+ };
488
+ declare type UnionCover<O, T> = T extends T ? Cover<O, T> : never;
489
+ declare type MergeArr<Arr> = (Arr extends (infer T)[] ? T : never)[];
490
+ /**
491
+ * typescript type helper function
492
+ * @example
493
+ * type A = { hello: string; version: 3 }[]
494
+ * type B = { hello: string; version: 5 }[]
495
+ * type OK = MergeArr<A | B> // ({ hello: string; version: 3 } | { hello: string; version: 5 })[]
496
+ * type Wrong = A | B // { hello: string; version: 3 }[] | { hello: string; version: 5 }[] // <= this type can't have auto type intelligense of array.map
497
+ */
498
+ declare const unionArr: <T>(arr: T) => MergeArr<T>;
499
+
500
+ declare type FarmVersion = 3 | 4 | 5 | 6;
501
+ declare const FARM_LOCK_MINT: PublicKey;
502
+ declare const FARM_LOCK_VAULT: PublicKey;
503
+ declare const FARM_VERSION_TO_STATE_LAYOUT: {
504
+ [version in FarmVersion]?: FarmStateLayout;
505
+ };
506
+ declare const FARM_VERSION_TO_LEDGER_LAYOUT: {
507
+ [version in FarmVersion]?: FarmLedgerLayout;
508
+ };
509
+ declare const isValidFarmVersion: (version: number) => boolean;
510
+ declare const validateFarmRewards: (params: {
511
+ version: number;
512
+ rewardInfos: {
513
+ mint: ApiV3Token;
514
+ }[];
515
+ rewardTokenAccountsPublicKeys: PublicKey[];
516
+ }) => (() => string | undefined);
517
+ declare const poolTypeV6: {
518
+ "Standard SPL": number;
519
+ "Option tokens": number;
520
+ };
521
+ declare const FARM_PROGRAM_TO_VERSION: Record<string, 3 | 5 | 6>;
522
+
523
+ declare type RewardType = keyof typeof poolTypeV6;
524
+ interface APIRewardInfo {
525
+ rewardMint: string;
526
+ rewardVault: string;
527
+ rewardOpenTime: number;
528
+ rewardEndTime: number;
529
+ rewardPerSecond: string | number;
530
+ rewardSender?: string;
531
+ rewardType: string;
532
+ }
533
+ interface RewardInfoWithKey {
534
+ rewardMint: PublicKey;
535
+ rewardVault: PublicKey;
536
+ rewardOpenTime: number;
537
+ rewardEndTime: number;
538
+ rewardType: RewardType;
539
+ rewardPerSecond: string | number;
540
+ rewardSender?: PublicKey;
541
+ }
542
+ interface FarmRewardInfo {
543
+ mint: PublicKey;
544
+ perSecond: string;
545
+ openTime: number;
546
+ endTime: number;
547
+ rewardType: RewardType;
548
+ }
549
+ interface FarmRewardInfoConfig {
550
+ isSet: BN__default;
551
+ rewardPerSecond: BN__default;
552
+ rewardOpenTime: BN__default;
553
+ rewardEndTime: BN__default;
554
+ rewardType: BN__default;
555
+ }
556
+ interface RewardInfoKey {
557
+ rewardMint: PublicKey;
558
+ rewardVault: PublicKey;
559
+ userRewardToken: PublicKey;
560
+ }
561
+ interface FarmPoolInfoV6 {
562
+ version: number;
563
+ programId: PublicKey;
564
+ lpMint: PublicKey;
565
+ rewardInfos: FarmRewardInfo[];
566
+ lockInfo: {
567
+ lockMint: PublicKey;
568
+ lockVault: PublicKey;
569
+ };
570
+ }
571
+ interface CreateFarm<T = TxVersion.LEGACY> {
572
+ poolInfo: ApiV3PoolInfoStandardItem;
573
+ rewardInfos: FarmRewardInfo[];
574
+ payer?: PublicKey;
575
+ programId?: PublicKey;
576
+ txVersion?: T;
577
+ }
578
+ interface CreateFarmExtInfo {
579
+ farmId: PublicKey;
580
+ farmAuthority: PublicKey;
581
+ lpVault: PublicKey;
582
+ lockUserAccount: PublicKey;
583
+ nonce: number;
584
+ }
585
+ interface UpdateFarmReward<T = TxVersion.LEGACY> {
586
+ farmInfo: FormatFarmInfoOut;
587
+ newRewardInfo: FarmRewardInfo;
588
+ payer?: PublicKey;
589
+ txVersion?: T;
590
+ }
591
+ interface UpdateFarmRewards<T = TxVersion.LEGACY> {
592
+ farmInfo: FormatFarmInfoOut;
593
+ newRewardInfos: FarmRewardInfo[];
594
+ payer?: PublicKey;
595
+ txVersion?: T;
596
+ }
597
+ interface FarmDWParam<T = TxVersion.LEGACY> {
598
+ farmInfo: {
599
+ id: string;
600
+ programId: string;
601
+ lpMint: ApiV3Token;
602
+ rewardInfos: {
603
+ mint: ApiV3Token;
604
+ }[];
605
+ };
606
+ amount: BigNumberish;
607
+ feePayer?: PublicKey;
608
+ useSOLBalance?: boolean;
609
+ associatedOnly?: boolean;
610
+ checkCreateATAOwner?: boolean;
611
+ deposited?: BN__default;
612
+ txVersion?: T;
613
+ userAuxiliaryLedgers?: string[];
614
+ computeBudgetConfig?: ComputeBudgetConfig;
615
+ }
616
+ declare type FarmPoolKeys = {
617
+ readonly id: PublicKey;
618
+ readonly lpMint: PublicKey;
619
+ readonly version: number;
620
+ readonly programId: PublicKey;
621
+ readonly authority: PublicKey;
622
+ readonly lpVault: PublicKey;
623
+ readonly upcoming: boolean;
624
+ readonly rewardInfos: ({
625
+ readonly rewardMint: PublicKey;
626
+ readonly rewardVault: PublicKey;
627
+ } | {
628
+ readonly rewardMint: PublicKey;
629
+ readonly rewardVault: PublicKey;
630
+ readonly rewardOpenTime: number;
631
+ readonly rewardEndTime: number;
632
+ readonly rewardPerSecond: number;
633
+ readonly rewardType: RewardType;
634
+ })[];
635
+ };
636
+
637
+ declare const associatedLedgerAccountLayout: Structure<number, "", {
638
+ instruction: number;
639
+ }>;
640
+ declare const withdrawRewardLayout: Structure<number, "", {
641
+ instruction: number;
642
+ }>;
643
+ declare const realFarmStateV3Layout: Structure<PublicKey | BN__default, "", {
644
+ state: BN__default;
645
+ nonce: BN__default;
646
+ lpVault: PublicKey;
647
+ rewardVault: PublicKey;
648
+ totalReward: BN__default;
649
+ perShareReward: BN__default;
650
+ lastSlot: BN__default;
651
+ perSlotReward: BN__default;
652
+ }>;
653
+ declare const realFarmStateV5Layout: Structure<number | PublicKey | Buffer | BN__default, "", {
654
+ state: BN__default;
655
+ nonce: BN__default;
656
+ lpVault: PublicKey;
657
+ lastSlot: BN__default;
658
+ rewardVaultA: PublicKey;
659
+ totalRewardA: BN__default;
660
+ perShareRewardA: BN__default;
661
+ perSlotRewardA: BN__default;
662
+ option: number;
663
+ rewardVaultB: PublicKey;
664
+ totalRewardB: BN__default;
665
+ perShareRewardB: BN__default;
666
+ perSlotRewardB: BN__default;
667
+ }>;
668
+ declare const realFarmV6Layout: Structure<PublicKey | BN__default | BN__default[] | {
669
+ rewardVault: PublicKey;
670
+ totalReward: BN__default;
671
+ rewardState: BN__default;
672
+ rewardOpenTime: BN__default;
673
+ rewardEndTime: BN__default;
674
+ rewardLastUpdateTime: BN__default;
675
+ totalRewardEmissioned: BN__default;
676
+ rewardClaimed: BN__default;
677
+ rewardPerSecond: BN__default;
678
+ accRewardPerShare: BN__default;
679
+ rewardMint: PublicKey;
680
+ rewardSender: PublicKey;
681
+ rewardType: BN__default;
682
+ padding: BN__default[];
683
+ }[], "", {
684
+ state: BN__default;
685
+ nonce: BN__default;
686
+ lpVault: PublicKey;
687
+ validRewardTokenNum: BN__default;
688
+ rewardMultiplier: BN__default;
689
+ rewardPeriodMax: BN__default;
690
+ rewardPeriodMin: BN__default;
691
+ rewardPeriodExtend: BN__default;
692
+ lpMint: PublicKey;
693
+ padding: BN__default[];
694
+ rewardInfos: {
695
+ rewardVault: PublicKey;
696
+ totalReward: BN__default;
697
+ rewardState: BN__default;
698
+ rewardOpenTime: BN__default;
699
+ rewardEndTime: BN__default;
700
+ rewardLastUpdateTime: BN__default;
701
+ totalRewardEmissioned: BN__default;
702
+ rewardClaimed: BN__default;
703
+ rewardPerSecond: BN__default;
704
+ accRewardPerShare: BN__default;
705
+ rewardMint: PublicKey;
706
+ rewardSender: PublicKey;
707
+ rewardType: BN__default;
708
+ padding: BN__default[];
709
+ }[];
710
+ creator: PublicKey;
711
+ }>;
712
+ declare const farmStateV3Layout: GetStructureFromLayoutSchema<{
713
+ version: 3;
714
+ rewardInfos: {
715
+ rewardVault: PublicKey;
716
+ totalReward: BN__default;
717
+ perSlotReward: BN__default;
718
+ perShareReward: BN__default;
719
+ }[];
720
+ } & {
721
+ state: BN__default;
722
+ nonce: BN__default;
723
+ lpVault: PublicKey;
724
+ rewardVault: PublicKey;
725
+ totalReward: BN__default;
726
+ perShareReward: BN__default;
727
+ lastSlot: BN__default;
728
+ perSlotReward: BN__default;
729
+ }>;
730
+ declare const farmStateV5Layout: GetStructureFromLayoutSchema<{
731
+ version: 5;
732
+ rewardInfos: {
733
+ rewardVault: PublicKey;
734
+ totalReward: BN__default;
735
+ perSlotReward: BN__default;
736
+ perShareReward: BN__default;
737
+ }[];
738
+ } & {
739
+ state: BN__default;
740
+ nonce: BN__default;
741
+ lpVault: PublicKey;
742
+ lastSlot: BN__default;
743
+ rewardVaultA: PublicKey;
744
+ totalRewardA: BN__default;
745
+ perShareRewardA: BN__default;
746
+ perSlotRewardA: BN__default;
747
+ option: number;
748
+ rewardVaultB: PublicKey;
749
+ totalRewardB: BN__default;
750
+ perShareRewardB: BN__default;
751
+ perSlotRewardB: BN__default;
752
+ }>;
753
+ declare const farmStateV6Layout: GetStructureFromLayoutSchema<{
754
+ version: 6;
755
+ rewardInfos: {
756
+ rewardState: BN__default;
757
+ rewardOpenTime: BN__default;
758
+ rewardEndTime: BN__default;
759
+ rewardLastUpdateTime: BN__default;
760
+ totalReward: BN__default;
761
+ totalRewardEmissioned: BN__default;
762
+ rewardClaimed: BN__default;
763
+ rewardPerSecond: BN__default;
764
+ accRewardPerShare: BN__default;
765
+ rewardVault: PublicKey;
766
+ rewardMint: PublicKey;
767
+ rewardSender: PublicKey;
768
+ rewardType: RewardType;
769
+ }[];
770
+ } & {
771
+ state: BN__default;
772
+ nonce: BN__default;
773
+ lpVault: PublicKey;
774
+ validRewardTokenNum: BN__default;
775
+ rewardMultiplier: BN__default;
776
+ rewardPeriodMax: BN__default;
777
+ rewardPeriodMin: BN__default;
778
+ rewardPeriodExtend: BN__default;
779
+ lpMint: PublicKey;
780
+ padding: BN__default[];
781
+ rewardInfos: {
782
+ rewardVault: PublicKey;
783
+ totalReward: BN__default;
784
+ rewardState: BN__default;
785
+ rewardOpenTime: BN__default;
786
+ rewardEndTime: BN__default;
787
+ rewardLastUpdateTime: BN__default;
788
+ totalRewardEmissioned: BN__default;
789
+ rewardClaimed: BN__default;
790
+ rewardPerSecond: BN__default;
791
+ accRewardPerShare: BN__default;
792
+ rewardMint: PublicKey;
793
+ rewardSender: PublicKey;
794
+ rewardType: BN__default;
795
+ padding: BN__default[];
796
+ }[];
797
+ creator: PublicKey;
798
+ }>;
799
+ declare const farmRewardTimeInfoLayout: Structure<BN__default, "", {
800
+ rewardOpenTime: BN__default;
801
+ rewardEndTime: BN__default;
802
+ rewardPerSecond: BN__default;
803
+ rewardType: BN__default;
804
+ isSet: BN__default;
805
+ }>;
806
+ declare const farmRewardLayout: Structure<number | BN__default | {
807
+ rewardOpenTime: BN__default;
808
+ rewardEndTime: BN__default;
809
+ rewardPerSecond: BN__default;
810
+ rewardType: BN__default;
811
+ isSet: BN__default;
812
+ }[], "", {
813
+ nonce: BN__default;
814
+ instruction: number;
815
+ rewardTimeInfo: {
816
+ rewardOpenTime: BN__default;
817
+ rewardEndTime: BN__default;
818
+ rewardPerSecond: BN__default;
819
+ rewardType: BN__default;
820
+ isSet: BN__default;
821
+ }[];
822
+ }>;
823
+ declare const farmRewardRestartLayout: Structure<number | BN__default, "", {
824
+ rewardEndTime: BN__default;
825
+ rewardPerSecond: BN__default;
826
+ instruction: number;
827
+ rewardReopenTime: BN__default;
828
+ }>;
829
+ declare const farmAddRewardLayout: Structure<number | BN__default, "", {
830
+ rewardOpenTime: BN__default;
831
+ rewardEndTime: BN__default;
832
+ rewardPerSecond: BN__default;
833
+ rewardType: BN__default;
834
+ instruction: number;
835
+ isSet: BN__default;
836
+ }>;
837
+ declare type FarmStateLayoutV3 = typeof farmStateV3Layout;
838
+ declare type FarmStateLayoutV5 = typeof farmStateV5Layout;
839
+ declare type FarmStateLayoutV6 = typeof farmStateV6Layout;
840
+ declare type FarmStateV3 = GetStructureSchema<FarmStateLayoutV3>;
841
+ declare type FarmStateV5 = GetStructureSchema<FarmStateLayoutV5>;
842
+ declare type FarmStateV6 = GetStructureSchema<FarmStateLayoutV6>;
843
+ declare type FarmState = FarmStateV3 | FarmStateV5 | FarmStateV6;
844
+ declare type FarmStateLayout = FarmStateLayoutV3 | FarmStateLayoutV5 | FarmStateLayoutV6;
845
+ declare const farmLedgerLayoutV3_1: Structure<PublicKey | BN__default | BN__default[], "", {
846
+ id: PublicKey;
847
+ state: BN__default;
848
+ owner: PublicKey;
849
+ deposited: BN__default;
850
+ rewardDebts: BN__default[];
851
+ }>;
852
+ declare const farmLedgerLayoutV3_2: Structure<PublicKey | BN__default | BN__default[], "", {
853
+ id: PublicKey;
854
+ state: BN__default;
855
+ owner: PublicKey;
856
+ deposited: BN__default;
857
+ rewardDebts: BN__default[];
858
+ voteLockedBalance: BN__default;
859
+ }>;
860
+ declare const farmLedgerLayoutV5_1: Structure<PublicKey | BN__default | BN__default[], "", {
861
+ id: PublicKey;
862
+ state: BN__default;
863
+ owner: PublicKey;
864
+ deposited: BN__default;
865
+ rewardDebts: BN__default[];
866
+ }>;
867
+ declare const farmLedgerLayoutV5_2: Structure<PublicKey | BN__default | BN__default[], "", {
868
+ id: PublicKey;
869
+ state: BN__default;
870
+ owner: PublicKey;
871
+ deposited: BN__default;
872
+ rewardDebts: BN__default[];
873
+ }>;
874
+ declare const farmLedgerLayoutV6_1: Structure<PublicKey | BN__default | BN__default[], "", {
875
+ id: PublicKey;
876
+ state: BN__default;
877
+ owner: PublicKey;
878
+ deposited: BN__default;
879
+ rewardDebts: BN__default[];
880
+ }>;
881
+ declare type FarmLedgerLayoutV3_1 = typeof farmLedgerLayoutV3_1;
882
+ declare type FarmLedgerLayoutV3_2 = typeof farmLedgerLayoutV3_2;
883
+ declare type FarmLedgerLayoutV5_1 = typeof farmLedgerLayoutV5_1;
884
+ declare type FarmLedgerLayoutV5_2 = typeof farmLedgerLayoutV5_2;
885
+ declare type FarmLedgerLayoutV6_1 = typeof farmLedgerLayoutV6_1;
886
+ declare type FarmLedgerLayout = FarmLedgerLayoutV3_1 | FarmLedgerLayoutV3_2 | FarmLedgerLayoutV5_1 | FarmLedgerLayoutV5_2 | FarmLedgerLayoutV6_1;
887
+ declare type FarmLedgerV3_1 = GetStructureSchema<FarmLedgerLayoutV3_1>;
888
+ declare type FarmLedgerV3_2 = GetStructureSchema<FarmLedgerLayoutV3_2>;
889
+ declare type FarmLedgerV5_1 = GetStructureSchema<FarmLedgerLayoutV5_1>;
890
+ declare type FarmLedgerV5_2 = GetStructureSchema<FarmLedgerLayoutV5_2>;
891
+ declare type FarmLedgerV6_1 = GetStructureSchema<FarmLedgerLayoutV6_1>;
892
+ declare type FarmLedger = FarmLedgerV3_1 | FarmLedgerV3_2 | FarmLedgerV5_1 | FarmLedgerV5_2 | FarmLedgerV6_1;
893
+ declare const dwLayout: Structure<number | BN__default, "", {
894
+ instruction: number;
895
+ amount: BN__default;
896
+ }>;
897
+ declare const VoterVotingMintConfig: Structure<number[] | PublicKey | BN__default | BN__default[], "", {
898
+ mint: PublicKey;
899
+ grantAuthority: PublicKey;
900
+ baselineVoteWeightScaledFactor: BN__default;
901
+ maxExtraLockupVoteWeightScaledFactor: BN__default;
902
+ lockupSaturationSecs: BN__default;
903
+ digitShift: BN__default;
904
+ reserved1: number[];
905
+ reserved2: BN__default[];
906
+ }>;
907
+ declare const VoterRegistrar: Structure<number | number[] | PublicKey | Buffer | BN__default | BN__default[] | {
908
+ mint: PublicKey;
909
+ grantAuthority: PublicKey;
910
+ baselineVoteWeightScaledFactor: BN__default;
911
+ maxExtraLockupVoteWeightScaledFactor: BN__default;
912
+ lockupSaturationSecs: BN__default;
913
+ digitShift: BN__default;
914
+ reserved1: number[];
915
+ reserved2: BN__default[];
916
+ }[], "", {
917
+ reserved1: number[];
918
+ reserved2: number[];
919
+ governanceProgramId: PublicKey;
920
+ realm: PublicKey;
921
+ realmGoverningTokenMint: PublicKey;
922
+ realmAuthority: PublicKey;
923
+ votingMints: {
924
+ mint: PublicKey;
925
+ grantAuthority: PublicKey;
926
+ baselineVoteWeightScaledFactor: BN__default;
927
+ maxExtraLockupVoteWeightScaledFactor: BN__default;
928
+ lockupSaturationSecs: BN__default;
929
+ digitShift: BN__default;
930
+ reserved1: number[];
931
+ reserved2: BN__default[];
932
+ }[];
933
+ timeOffset: BN__default;
934
+ bump: number;
935
+ reserved3: BN__default[];
936
+ }>;
937
+ declare const VoterLockup: Structure<number | number[] | BN__default, "", {
938
+ startTime: BN__default;
939
+ endTime: BN__default;
940
+ kind: number;
941
+ reserved: number[];
942
+ }>;
943
+ declare const VoterDepositEntry: Structure<number | boolean | number[] | BN__default | {
944
+ startTime: BN__default;
945
+ endTime: BN__default;
946
+ kind: number;
947
+ reserved: number[];
948
+ }[], "", {
949
+ reserved: number[];
950
+ lockup: {
951
+ startTime: BN__default;
952
+ endTime: BN__default;
953
+ kind: number;
954
+ reserved: number[];
955
+ }[];
956
+ amountDeposited_native: BN__default;
957
+ amountInitiallyLockedNative: BN__default;
958
+ isUsed: boolean;
959
+ allowClawback: boolean;
960
+ votingMintConfigIdx: number;
961
+ }>;
962
+ declare const Voter: Structure<number | number[] | PublicKey | Buffer | {
963
+ reserved: number[];
964
+ lockup: {
965
+ startTime: BN__default;
966
+ endTime: BN__default;
967
+ kind: number;
968
+ reserved: number[];
969
+ }[];
970
+ amountDeposited_native: BN__default;
971
+ amountInitiallyLockedNative: BN__default;
972
+ isUsed: boolean;
973
+ allowClawback: boolean;
974
+ votingMintConfigIdx: number;
975
+ }[], "", {
976
+ reserved: number[];
977
+ voterAuthority: PublicKey;
978
+ registrar: PublicKey;
979
+ deposits: {
980
+ reserved: number[];
981
+ lockup: {
982
+ startTime: BN__default;
983
+ endTime: BN__default;
984
+ kind: number;
985
+ reserved: number[];
986
+ }[];
987
+ amountDeposited_native: BN__default;
988
+ amountInitiallyLockedNative: BN__default;
989
+ isUsed: boolean;
990
+ allowClawback: boolean;
991
+ votingMintConfigIdx: number;
992
+ }[];
993
+ voterBump: number;
994
+ voterWweightRecordBump: number;
995
+ }>;
996
+
997
+ declare type LiquidityVersion = 4 | 5;
998
+ interface ApiPoolInfoV4 {
999
+ id: string;
1000
+ baseMint: string;
1001
+ quoteMint: string;
1002
+ lpMint: string;
1003
+ baseDecimals: number;
1004
+ quoteDecimals: number;
1005
+ lpDecimals: number;
1006
+ version: 4;
1007
+ programId: string;
1008
+ authority: string;
1009
+ openOrders: string;
1010
+ targetOrders: string;
1011
+ baseVault: string;
1012
+ quoteVault: string;
1013
+ withdrawQueue: string;
1014
+ lpVault: string;
1015
+ marketVersion: 3;
1016
+ marketProgramId: string;
1017
+ marketId: string;
1018
+ marketAuthority: string;
1019
+ marketBaseVault: string;
1020
+ marketQuoteVault: string;
1021
+ marketBids: string;
1022
+ marketAsks: string;
1023
+ marketEventQueue: string;
1024
+ lookupTableAccount: string;
1025
+ }
1026
+ interface FarmRewardInfoV6 {
1027
+ rewardMint: string;
1028
+ rewardVault: string;
1029
+ rewardOpenTime: number;
1030
+ rewardEndTime: number;
1031
+ rewardPerSecond: number;
1032
+ rewardSender: string;
1033
+ }
1034
+ interface ApiStakePoolInfo {
1035
+ id: string;
1036
+ symbol: string;
1037
+ lpMint: string;
1038
+ version: FarmVersion;
1039
+ programId: string;
1040
+ authority: string;
1041
+ lpVault: string;
1042
+ rewardInfos: FarmRewardInfo[] | FarmRewardInfoV6[];
1043
+ upcoming: boolean;
1044
+ }
1045
+ interface ApiClmmConfigInfo {
1046
+ id: string;
1047
+ index: number;
1048
+ protocolFeeRate: number;
1049
+ tradeFeeRate: number;
1050
+ tickSpacing: number;
1051
+ fundFeeRate: number;
1052
+ description: string;
1053
+ defaultRange: number;
1054
+ defaultRangePoint: number[];
1055
+ }
1056
+ interface ApiClmmPoolsItemStatistics {
1057
+ volume: number;
1058
+ volumeFee: number;
1059
+ feeA: number;
1060
+ feeB: number;
1061
+ feeApr: number;
1062
+ rewardApr: {
1063
+ A: number;
1064
+ B: number;
1065
+ C: number;
1066
+ };
1067
+ apr: number;
1068
+ priceMin: number;
1069
+ priceMax: number;
1070
+ }
1071
+ /** ====== v3 api types ======= */
1072
+ interface ApiV3PageIns<T> {
1073
+ count: number;
1074
+ hasNextPage: boolean;
1075
+ data: T[];
1076
+ }
1077
+ declare enum JupTokenType {
1078
+ ALL = "all",
1079
+ Strict = "strict"
1080
+ }
1081
+ declare type PoolsApiReturn = ApiV3PageIns<ApiV3PoolInfoItem>;
1082
+ interface TransferFeeDataBaseType {
1083
+ transferFeeConfigAuthority: string;
1084
+ withdrawWithheldAuthority: string;
1085
+ withheldAmount: string;
1086
+ olderTransferFee: {
1087
+ epoch: string;
1088
+ maximumFee: string;
1089
+ transferFeeBasisPoints: number;
1090
+ };
1091
+ newerTransferFee: {
1092
+ epoch: string;
1093
+ maximumFee: string;
1094
+ transferFeeBasisPoints: number;
1095
+ };
1096
+ }
1097
+ declare type ExtensionsItem = {
1098
+ coingeckoId?: string;
1099
+ feeConfig?: TransferFeeDataBaseType;
1100
+ };
1101
+ declare type ApiV3Token = {
1102
+ chainId: number;
1103
+ address: string;
1104
+ programId: string;
1105
+ logoURI: string;
1106
+ symbol: string;
1107
+ name: string;
1108
+ decimals: number;
1109
+ tags: string[];
1110
+ extensions: ExtensionsItem;
1111
+ };
1112
+ declare type ApiV3TokenRes = {
1113
+ mintList: ApiV3Token[];
1114
+ blacklist: ApiV3Token[];
1115
+ };
1116
+ interface ApiV3PoolInfoCountItem {
1117
+ volume: number;
1118
+ volumeQuote: number;
1119
+ volumeFee: number;
1120
+ apr: number;
1121
+ feeApr: number;
1122
+ priceMin: number;
1123
+ priceMax: number;
1124
+ rewardApr: number[];
1125
+ }
1126
+ declare type PoolTypeItem = "StablePool" | "OpenBookMarket";
1127
+ declare type FarmRewardInfoOld = {
1128
+ mint: ApiV3Token;
1129
+ perSecond: number;
1130
+ };
1131
+ declare type PoolFarmRewardInfo = FarmRewardInfoOld & {
1132
+ startTime?: number;
1133
+ endTime?: number;
1134
+ };
1135
+ interface PoolRewardInfoItem {
1136
+ mint: ApiV3Token;
1137
+ perSecond?: number;
1138
+ startTime?: number;
1139
+ endTime?: number;
1140
+ }
1141
+ interface ApiV3PoolInfoBaseItem {
1142
+ programId: string;
1143
+ id: string;
1144
+ mintA: ApiV3Token;
1145
+ mintB: ApiV3Token;
1146
+ rewardDefaultInfos: PoolFarmRewardInfo[];
1147
+ rewardDefaultPoolInfos: "Ecosystem" | "Fusion" | "Raydium" | "Clmm";
1148
+ price: number;
1149
+ mintAmountA: number;
1150
+ mintAmountB: number;
1151
+ feeRate: number;
1152
+ openTime: string;
1153
+ tvl: number;
1154
+ day: ApiV3PoolInfoCountItem;
1155
+ week: ApiV3PoolInfoCountItem;
1156
+ month: ApiV3PoolInfoCountItem;
1157
+ pooltype: PoolTypeItem[];
1158
+ farmUpcomingCount: number;
1159
+ farmOngoingCount: number;
1160
+ farmFinishedCount: number;
1161
+ }
1162
+ declare type ApiV3PoolInfoConcentratedItem = ApiV3PoolInfoBaseItem & {
1163
+ type: "Concentrated";
1164
+ config: ApiClmmConfigV3;
1165
+ };
1166
+ declare type ApiV3PoolInfoStandardItem = ApiV3PoolInfoBaseItem & {
1167
+ type: "Standard";
1168
+ marketId: string;
1169
+ configId: string;
1170
+ lpPrice: number;
1171
+ lpAmount: number;
1172
+ lpMint: ApiV3Token;
1173
+ };
1174
+ declare type ApiV3PoolInfoStandardItemCpmm = ApiV3PoolInfoBaseItem & {
1175
+ type: "Standard";
1176
+ lpMint: ApiV3Token;
1177
+ lpPrice: number;
1178
+ lpAmount: number;
1179
+ config: ApiCpmmConfigV3;
1180
+ };
1181
+ declare type ApiV3PoolInfoItem = ApiV3PoolInfoConcentratedItem | ApiV3PoolInfoStandardItem | ApiV3PoolInfoStandardItemCpmm;
1182
+ declare enum PoolFetchType {
1183
+ All = "all",
1184
+ Standard = "standard",
1185
+ Concentrated = "concentrated"
1186
+ }
1187
+ interface FetchPoolParams {
1188
+ type?: PoolFetchType;
1189
+ sort?: "liquidity" | "volume_24h" | "volume_7d" | "volume_30d" | "fee_24h" | "fee_7d" | "fee_30d" | "apr_24h" | "apr_7d" | "apr_30d";
1190
+ order?: "desc" | "asc";
1191
+ pageSize?: number;
1192
+ page?: number;
1193
+ }
1194
+ interface Point {
1195
+ time: number;
1196
+ liquidity: number;
1197
+ }
1198
+ interface LiquidityLineApi {
1199
+ count: number;
1200
+ line: Point[];
1201
+ }
1202
+ interface Base {
1203
+ programId: string;
1204
+ id: string;
1205
+ mintA: ApiV3Token;
1206
+ mintB: ApiV3Token;
1207
+ lookupTableAccount?: string;
1208
+ openTime: string;
1209
+ vault: {
1210
+ A: string;
1211
+ B: string;
1212
+ };
1213
+ }
1214
+ interface _Amm {
1215
+ authority: string;
1216
+ openOrders: string;
1217
+ targetOrders: string;
1218
+ mintLp: ApiV3Token;
1219
+ }
1220
+ interface ApiCpmmConfigV3 {
1221
+ id: string;
1222
+ index: number;
1223
+ protocolFeeRate: number;
1224
+ tradeFeeRate: number;
1225
+ fundFeeRate: number;
1226
+ createPoolFee: string;
1227
+ }
1228
+ interface _Cpmm {
1229
+ authority: string;
1230
+ mintLp: ApiV3Token;
1231
+ config: ApiCpmmConfigV3;
1232
+ }
1233
+ interface _Market {
1234
+ marketProgramId: string;
1235
+ marketId: string;
1236
+ marketAuthority: string;
1237
+ marketBaseVault: string;
1238
+ marketQuoteVault: string;
1239
+ marketBids: string;
1240
+ marketAsks: string;
1241
+ marketEventQueue: string;
1242
+ }
1243
+ declare type AmmV4Keys = Base & _Amm & _Market;
1244
+ declare type AmmV5Keys = Base & _Amm & _Market & {
1245
+ modelDataAccount: string;
1246
+ };
1247
+ declare type CpmmKeys = Base & _Cpmm;
1248
+ interface ClmmRewardType {
1249
+ mint: ApiV3Token;
1250
+ vault: string;
1251
+ }
1252
+ declare type ClmmKeys = Base & {
1253
+ config: ApiClmmConfigV3;
1254
+ rewardInfos: ClmmRewardType[];
1255
+ };
1256
+ declare type PoolKeys = AmmV4Keys | AmmV5Keys | ClmmKeys | CpmmKeys;
1257
+ interface ApiClmmConfigV3 {
1258
+ id: string;
1259
+ index: number;
1260
+ protocolFeeRate: number;
1261
+ tradeFeeRate: number;
1262
+ tickSpacing: number;
1263
+ fundFeeRate: number;
1264
+ description: string;
1265
+ defaultRange: number;
1266
+ defaultRangePoint: number[];
1267
+ }
1268
+ interface RpcItemA {
1269
+ url: string;
1270
+ weight: number;
1271
+ batch: boolean;
1272
+ name: string;
1273
+ }
1274
+ interface RpcItemB {
1275
+ url: string;
1276
+ batch: boolean;
1277
+ name: string;
1278
+ }
1279
+ declare type RpcStrategy = "speed" | "first";
1280
+ declare type RpcTypeWeight = {
1281
+ strategy: "weight";
1282
+ rpcs: RpcItemA[];
1283
+ };
1284
+ declare type RpcTypeOther = {
1285
+ strategy: RpcStrategy;
1286
+ rpcs: RpcItemB[];
1287
+ };
1288
+ declare type RpcType = RpcTypeWeight | RpcTypeOther;
1289
+ declare type FarmRewardTypeV6Key = "Standard SPL" | "Option tokens";
1290
+ interface RewardKeyInfoV345 {
1291
+ mint: ApiV3Token;
1292
+ vault: string;
1293
+ type: FarmRewardTypeV6Key;
1294
+ perSecond: number;
1295
+ perBlock: number;
1296
+ }
1297
+ interface RewardKeyInfoV6 {
1298
+ mint: ApiV3Token;
1299
+ vault: string;
1300
+ type: FarmRewardTypeV6Key;
1301
+ perSecond: number;
1302
+ openTime: string;
1303
+ endTime: string;
1304
+ sender: string;
1305
+ }
1306
+ interface FormatFarmKeyOutBase {
1307
+ programId: string;
1308
+ id: string;
1309
+ symbolMints: ApiV3Token[];
1310
+ lpMint: ApiV3Token;
1311
+ authority: string;
1312
+ lpVault: string;
1313
+ }
1314
+ declare type FormatFarmKeyOutV345 = FormatFarmKeyOutBase & {
1315
+ rewardInfos: RewardKeyInfoV345[];
1316
+ };
1317
+ declare type FormatFarmKeyOutV6 = FormatFarmKeyOutBase & {
1318
+ config: {
1319
+ periodMax: number;
1320
+ periodMin: number;
1321
+ periodExtend: number;
1322
+ };
1323
+ rewardInfos: RewardKeyInfoV6[];
1324
+ };
1325
+ declare type FormatFarmKeyOut = FormatFarmKeyOutV345 | FormatFarmKeyOutV6;
1326
+ interface RewardInfoV345 {
1327
+ mint: ApiV3Token;
1328
+ type: FarmRewardTypeV6Key;
1329
+ apr: number;
1330
+ perSecond: string;
1331
+ }
1332
+ interface RewardInfoV6 {
1333
+ mint: ApiV3Token;
1334
+ type: FarmRewardTypeV6Key;
1335
+ apr: number;
1336
+ perSecond: string;
1337
+ openTime: string;
1338
+ endTime: string;
1339
+ }
1340
+ declare type FarmTagsItem = "Ecosystem" | "Farm" | "Fusion" | "Stake";
1341
+ interface FormatFarmInfoOutBase {
1342
+ programId: string;
1343
+ id: string;
1344
+ symbolMints: ApiV3Token[];
1345
+ lpMint: ApiV3Token;
1346
+ tvl: number;
1347
+ lpPrice: number;
1348
+ apr: number;
1349
+ tags: FarmTagsItem[];
1350
+ }
1351
+ declare type FormatFarmInfoOutV345 = FormatFarmInfoOutBase & {
1352
+ rewardInfos: RewardInfoV345[];
1353
+ };
1354
+ declare type FormatFarmInfoOutV6 = FormatFarmInfoOutBase & {
1355
+ rewardInfos: RewardInfoV6[];
1356
+ };
1357
+ declare type FormatFarmInfoOut = FormatFarmInfoOutV345 | FormatFarmInfoOutV6;
1358
+ interface AvailabilityCheckAPI3 {
1359
+ all: boolean;
1360
+ swap: boolean;
1361
+ createConcentratedPosition: boolean;
1362
+ addConcentratedPosition: boolean;
1363
+ addStandardPosition: boolean;
1364
+ removeConcentratedPosition: boolean;
1365
+ removeStandardPosition: boolean;
1366
+ addFarm: boolean;
1367
+ removeFarm: boolean;
1368
+ }
1369
+ declare type OwnerCreatedFarmInfo = {
1370
+ farm: {
1371
+ id: string;
1372
+ programId: string;
1373
+ }[];
1374
+ clmm: {
1375
+ id: string;
1376
+ programId: string;
1377
+ }[];
1378
+ };
1379
+ declare type OwnerIdoInfo = Record<string, {
1380
+ programId: string;
1381
+ poolId: string;
1382
+ coin: string;
1383
+ pc: string;
1384
+ }>;
1385
+ declare type IdoKeysData = {
1386
+ programId: string;
1387
+ id: string;
1388
+ authority: string;
1389
+ projectInfo: {
1390
+ mint: ApiV3Token;
1391
+ vault: string;
1392
+ };
1393
+ buyInfo: {
1394
+ mint: ApiV3Token;
1395
+ vault: string;
1396
+ };
1397
+ };
1398
+ interface ApiStakePool {
1399
+ programId: string;
1400
+ id: string;
1401
+ apr: number;
1402
+ lpMint: ApiV3Token;
1403
+ lpPrice: number;
1404
+ symbolMints: ApiV3Token[];
1405
+ tvl: number;
1406
+ tags: FarmTagsItem[];
1407
+ rewardInfos: RewardInfoV345[];
1408
+ }
1409
+ declare type FarmPositionData = Record<string, Record<string, Record<string, {
1410
+ programId: string;
1411
+ lpAmount: string;
1412
+ version: "V1" | "V2";
1413
+ }>>>;
1414
+
1415
+ export { Rounding as $, ApiPoolInfoV4 as A, FarmRewardTypeV6Key as B, CpmmKeys as C, RewardKeyInfoV345 as D, RewardKeyInfoV6 as E, FarmRewardInfoV6 as F, FormatFarmKeyOutV345 as G, FormatFarmKeyOutV6 as H, FormatFarmKeyOut as I, JupTokenType as J, RewardInfoV345 as K, LiquidityVersion as L, RewardInfoV6 as M, FarmTagsItem as N, FormatFarmInfoOutBase as O, PoolsApiReturn as P, FormatFarmInfoOutV345 as Q, RpcItemA as R, FormatFarmInfoOutV6 as S, TransferFeeDataBaseType as T, FormatFarmInfoOut as U, AvailabilityCheckAPI3 as V, OwnerCreatedFarmInfo as W, OwnerIdoInfo as X, IdoKeysData as Y, ApiStakePool as Z, FarmPositionData as _, ApiStakePoolInfo as a, FarmLedgerLayoutV6_1 as a$, BN_ZERO as a0, BN_ONE as a1, BN_TWO as a2, BN_THREE as a3, BN_FIVE as a4, BN_TEN as a5, BN_100 as a6, BN_1000 as a7, BN_10000 as a8, BigNumberish as a9, realFarmStateV3Layout as aA, realFarmStateV5Layout as aB, realFarmV6Layout as aC, farmStateV3Layout as aD, farmStateV5Layout as aE, farmStateV6Layout as aF, farmRewardTimeInfoLayout as aG, farmRewardLayout as aH, farmRewardRestartLayout as aI, farmAddRewardLayout as aJ, FarmStateLayoutV3 as aK, FarmStateLayoutV5 as aL, FarmStateLayoutV6 as aM, FarmStateV3 as aN, FarmStateV5 as aO, FarmStateV6 as aP, FarmState as aQ, FarmStateLayout as aR, farmLedgerLayoutV3_1 as aS, farmLedgerLayoutV3_2 as aT, farmLedgerLayoutV5_1 as aU, farmLedgerLayoutV5_2 as aV, farmLedgerLayoutV6_1 as aW, FarmLedgerLayoutV3_1 as aX, FarmLedgerLayoutV3_2 as aY, FarmLedgerLayoutV5_1 as aZ, FarmLedgerLayoutV5_2 as a_, Numberish as aa, parseBigNumberish as ab, tenExponential as ac, parseNumberInfo as ad, divCeil as ae, shakeFractionDecimal as af, toBN as ag, toFraction as ah, toPercent as ai, toTokenPrice as aj, toUsdCurrency as ak, toTotalPrice as al, decimalToFraction as am, isDecimal as an, recursivelyDecimalToFraction as ao, AddInstructionParam as ap, TxBuildData as aq, TxV0BuildData as ar, ExecuteParam as as, MultiTxBuildData as at, MultiTxV0BuildData as au, MakeMultiTxData as av, MakeTxData as aw, TxBuilder as ax, associatedLedgerAccountLayout as ay, withdrawRewardLayout as az, ApiClmmConfigInfo as b, unionArr as b$, FarmLedgerLayout as b0, FarmLedgerV3_1 as b1, FarmLedgerV3_2 as b2, FarmLedgerV5_1 as b3, FarmLedgerV5_2 as b4, FarmLedgerV6_1 as b5, FarmLedger as b6, dwLayout as b7, VoterVotingMintConfig as b8, VoterRegistrar as b9, TokenJson as bA, SplToken as bB, LpToken as bC, SignAllTransactions as bD, MakeTransaction as bE, MakeV0Transaction as bF, MakeMultiTransaction as bG, InstructionReturn as bH, ComputeBudgetConfig as bI, LoadParams as bJ, TransferAmountFee as bK, GetTransferAmountFee as bL, ReturnTypeFetchMultipleMintInfo as bM, ReturnTypeFetchMultipleMintInfos as bN, ReplaceType as bO, MayArray as bP, MayDeepArray as bQ, MayFunction as bR, ArrayItem as bS, ExactPartial as bT, ExactRequired as bU, SKeyof as bV, GetValue as bW, SOR as bX, Fallback as bY, Cover as bZ, UnionCover as b_, VoterLockup as ba, VoterDepositEntry as bb, Voter as bc, RewardType as bd, APIRewardInfo as be, RewardInfoWithKey as bf, FarmRewardInfo as bg, FarmRewardInfoConfig as bh, RewardInfoKey as bi, FarmPoolInfoV6 as bj, CreateFarm as bk, CreateFarmExtInfo as bl, UpdateFarmReward as bm, UpdateFarmRewards as bn, FarmDWParam as bo, FarmPoolKeys as bp, FarmVersion as bq, FARM_LOCK_MINT as br, FARM_LOCK_VAULT as bs, FARM_VERSION_TO_STATE_LAYOUT as bt, FARM_VERSION_TO_LEDGER_LAYOUT as bu, isValidFarmVersion as bv, validateFarmRewards as bw, poolTypeV6 as bx, FARM_PROGRAM_TO_VERSION as by, TokenInfo as bz, ApiClmmPoolsItemStatistics as c, splitNumber as c0, TokenAmount as c1, CurrencyAmount as c2, Fraction as c3, _100_PERCENT as c4, Percent as c5, Price as c6, ApiV3PageIns as d, ApiV3Token as e, ApiV3TokenRes as f, ApiV3PoolInfoCountItem as g, PoolFarmRewardInfo as h, PoolRewardInfoItem as i, ApiV3PoolInfoBaseItem as j, ApiV3PoolInfoConcentratedItem as k, ApiV3PoolInfoStandardItem as l, ApiV3PoolInfoStandardItemCpmm as m, ApiV3PoolInfoItem as n, PoolFetchType as o, FetchPoolParams as p, Point as q, LiquidityLineApi as r, AmmV4Keys as s, AmmV5Keys as t, ClmmRewardType as u, ClmmKeys as v, PoolKeys as w, ApiClmmConfigV3 as x, RpcItemB as y, RpcType as z };