flash-sdk 1.0.0

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.
Files changed (98) hide show
  1. package/lib/CustodyAccount.d.ts +29 -0
  2. package/lib/CustodyAccount.d.ts.map +1 -0
  3. package/lib/CustodyAccount.js +64 -0
  4. package/lib/CustodyAccount.js.map +1 -0
  5. package/lib/OraclePrice.d.ts +18 -0
  6. package/lib/OraclePrice.d.ts.map +1 -0
  7. package/lib/OraclePrice.js +83 -0
  8. package/lib/OraclePrice.js.map +1 -0
  9. package/lib/PerpetualsClient.d.ts +1937 -0
  10. package/lib/PerpetualsClient.d.ts.map +1 -0
  11. package/lib/PerpetualsClient.js +1013 -0
  12. package/lib/PerpetualsClient.js.map +1 -0
  13. package/lib/PoolAccount.d.ts +34 -0
  14. package/lib/PoolAccount.d.ts.map +1 -0
  15. package/lib/PoolAccount.js +306 -0
  16. package/lib/PoolAccount.js.map +1 -0
  17. package/lib/PositionAccount.d.ts +26 -0
  18. package/lib/PositionAccount.d.ts.map +1 -0
  19. package/lib/PositionAccount.js +90 -0
  20. package/lib/PositionAccount.js.map +1 -0
  21. package/lib/client/src/CustodyAccount.d.ts +30 -0
  22. package/lib/client/src/CustodyAccount.d.ts.map +1 -0
  23. package/lib/client/src/CustodyAccount.js +64 -0
  24. package/lib/client/src/CustodyAccount.js.map +1 -0
  25. package/lib/client/src/OraclePrice.d.ts +19 -0
  26. package/lib/client/src/OraclePrice.d.ts.map +1 -0
  27. package/lib/client/src/OraclePrice.js +84 -0
  28. package/lib/client/src/OraclePrice.js.map +1 -0
  29. package/lib/client/src/PerpetualsClient.d.ts +1940 -0
  30. package/lib/client/src/PerpetualsClient.d.ts.map +1 -0
  31. package/lib/client/src/PerpetualsClient.js +1013 -0
  32. package/lib/client/src/PerpetualsClient.js.map +1 -0
  33. package/lib/client/src/PoolAccount.d.ts +35 -0
  34. package/lib/client/src/PoolAccount.d.ts.map +1 -0
  35. package/lib/client/src/PoolAccount.js +307 -0
  36. package/lib/client/src/PoolAccount.js.map +1 -0
  37. package/lib/client/src/PositionAccount.d.ts +27 -0
  38. package/lib/client/src/PositionAccount.d.ts.map +1 -0
  39. package/lib/client/src/PositionAccount.js +91 -0
  40. package/lib/client/src/PositionAccount.js.map +1 -0
  41. package/lib/client/src/constants/index.d.ts +12 -0
  42. package/lib/client/src/constants/index.d.ts.map +1 -0
  43. package/lib/client/src/constants/index.js +15 -0
  44. package/lib/client/src/constants/index.js.map +1 -0
  45. package/lib/client/src/index.d.ts +8 -0
  46. package/lib/client/src/index.d.ts.map +1 -0
  47. package/lib/client/src/index.js +24 -0
  48. package/lib/client/src/index.js.map +1 -0
  49. package/lib/client/src/target/types/perpetuals.d.ts +3539 -0
  50. package/lib/client/src/target/types/perpetuals.d.ts.map +1 -0
  51. package/lib/client/src/target/types/perpetuals.js +3541 -0
  52. package/lib/client/src/target/types/perpetuals.js.map +1 -0
  53. package/lib/client/src/types/index.d.ts +188 -0
  54. package/lib/client/src/types/index.d.ts.map +1 -0
  55. package/lib/client/src/types/index.js +57 -0
  56. package/lib/client/src/types/index.js.map +1 -0
  57. package/lib/client/src/utils/helpers.d.ts +8 -0
  58. package/lib/client/src/utils/helpers.d.ts.map +1 -0
  59. package/lib/client/src/utils/helpers.js +152 -0
  60. package/lib/client/src/utils/helpers.js.map +1 -0
  61. package/lib/constants/index.d.ts +11 -0
  62. package/lib/constants/index.d.ts.map +1 -0
  63. package/lib/constants/index.js +14 -0
  64. package/lib/constants/index.js.map +1 -0
  65. package/lib/index.d.ts +8 -0
  66. package/lib/index.d.ts.map +1 -0
  67. package/lib/index.js +24 -0
  68. package/lib/index.js.map +1 -0
  69. package/lib/target/types/perpetuals.d.ts +3538 -0
  70. package/lib/target/types/perpetuals.d.ts.map +1 -0
  71. package/lib/target/types/perpetuals.js +3540 -0
  72. package/lib/target/types/perpetuals.js.map +1 -0
  73. package/lib/tsconfig.tsbuildinfo +1 -0
  74. package/lib/types/index.d.ts +187 -0
  75. package/lib/types/index.d.ts.map +1 -0
  76. package/lib/types/index.js +56 -0
  77. package/lib/types/index.js.map +1 -0
  78. package/lib/utils/helpers.d.ts +7 -0
  79. package/lib/utils/helpers.d.ts.map +1 -0
  80. package/lib/utils/helpers.js +151 -0
  81. package/lib/utils/helpers.js.map +1 -0
  82. package/lib/utils/index.d.ts +7 -0
  83. package/lib/utils/index.js +151 -0
  84. package/package.json +35 -0
  85. package/readme.md +4 -0
  86. package/src/CustodyAccount.ts +90 -0
  87. package/src/OraclePrice.ts +108 -0
  88. package/src/PerpetualsClient.ts +983 -0
  89. package/src/PoolAccount.ts +434 -0
  90. package/src/PositionAccount.ts +57 -0
  91. package/src/constants/index.ts +17 -0
  92. package/src/index.ts +14 -0
  93. package/src/readme.md +4 -0
  94. package/src/target/types/perpetuals.js +3540 -0
  95. package/src/target/types/perpetuals.ts +7075 -0
  96. package/src/types/index.ts +260 -0
  97. package/src/utils/index.ts +169 -0
  98. package/tsconfig.json +23 -0
@@ -0,0 +1,1937 @@
1
+ import { Program, AnchorProvider, BN } from "@coral-xyz/anchor";
2
+ import { PublicKey, Keypair } from "@solana/web3.js";
3
+ import { PoolAccount } from "./PoolAccount";
4
+ import { BorrowRateParams, Fees, OracleParams, Permissions, Position, PositionSide, PricingParams, TokenRatios } from "./types";
5
+ import { OraclePrice } from "./OraclePrice";
6
+ import { CustodyAccount } from "./CustodyAccount";
7
+ import { Perpetuals } from "./target/types/perpetuals";
8
+ export declare class PerpetualsClient {
9
+ provider: AnchorProvider;
10
+ program: Program<Perpetuals>;
11
+ admin: Keypair;
12
+ multisig: {
13
+ publicKey: PublicKey;
14
+ bump: number;
15
+ };
16
+ authority: {
17
+ publicKey: PublicKey;
18
+ bump: number;
19
+ };
20
+ perpetuals: {
21
+ publicKey: PublicKey;
22
+ bump: number;
23
+ };
24
+ constructor(clusterUrl: string, adminKey: string);
25
+ findProgramAddress: (label: string, extraSeeds?: any) => {
26
+ publicKey: PublicKey;
27
+ bump: number;
28
+ };
29
+ adjustTokenRatios: (ratios: TokenRatios[]) => TokenRatios[];
30
+ getPerpetuals: () => Promise<{
31
+ pool: PublicKey;
32
+ mint: PublicKey;
33
+ tokenAccount: PublicKey;
34
+ decimals: number;
35
+ isStable: boolean;
36
+ oracle: {
37
+ oracleAccount: PublicKey;
38
+ oracleType: {
39
+ none?: Record<string, never>;
40
+ test?: Record<string, never>;
41
+ pyth?: Record<string, never>;
42
+ };
43
+ maxPriceError: BN;
44
+ maxPriceAgeSec: number;
45
+ };
46
+ pricing: {
47
+ useEma: boolean;
48
+ useUnrealizedPnlInAum: boolean;
49
+ tradeSpreadLong: BN;
50
+ tradeSpreadShort: BN;
51
+ swapSpread: BN;
52
+ minInitialLeverage: BN;
53
+ maxInitialLeverage: BN;
54
+ maxLeverage: BN;
55
+ maxPayoffMult: BN;
56
+ maxUtilization: BN;
57
+ maxPositionLockedUsd: BN;
58
+ maxTotalLockedUsd: BN;
59
+ } | {
60
+ useEma: boolean;
61
+ useUnrealizedPnlInAum: boolean;
62
+ tradeSpreadLong: BN;
63
+ tradeSpreadShort: BN;
64
+ swapSpread: BN;
65
+ minInitialLeverage: BN;
66
+ maxLeverage: BN;
67
+ maxPayoffMult: BN;
68
+ };
69
+ permissions: {
70
+ allowSwap: boolean;
71
+ allowAddLiquidity: boolean;
72
+ allowRemoveLiquidity: boolean;
73
+ allowOpenPosition: boolean;
74
+ allowClosePosition: boolean;
75
+ allowPnlWithdrawal: boolean;
76
+ allowCollateralWithdrawal: boolean;
77
+ allowSizeChange: boolean;
78
+ };
79
+ fees: {
80
+ mode: {
81
+ fixed?: Record<string, never>;
82
+ linear?: Record<string, never>;
83
+ };
84
+ ratioMult: BN;
85
+ utilizationMult: BN;
86
+ swapIn: BN;
87
+ swapOut: BN;
88
+ stableSwapIn: BN;
89
+ stableSwapOut: BN;
90
+ addLiquidity: BN;
91
+ removeLiquidity: BN;
92
+ openPosition: BN;
93
+ closePosition: BN;
94
+ liquidation: BN;
95
+ protocolShare: BN;
96
+ };
97
+ borrowRate: {
98
+ baseRate: BN;
99
+ slope1: BN;
100
+ slope2: BN;
101
+ optimalUtilization: BN;
102
+ };
103
+ assets: {
104
+ collateral: BN;
105
+ protocolFees: BN;
106
+ owned: BN;
107
+ locked: BN;
108
+ };
109
+ collectedFees: {
110
+ swapUsd: BN;
111
+ addLiquidityUsd: BN;
112
+ removeLiquidityUsd: BN;
113
+ openPositionUsd: BN;
114
+ closePositionUsd: BN;
115
+ liquidationUsd: BN;
116
+ };
117
+ volumeStats: {
118
+ swapUsd: BN;
119
+ addLiquidityUsd: BN;
120
+ removeLiquidityUsd: BN;
121
+ openPositionUsd: BN;
122
+ closePositionUsd: BN;
123
+ liquidationUsd: BN;
124
+ };
125
+ tradeStats: {
126
+ profitUsd: BN;
127
+ lossUsd: BN;
128
+ oiLongUsd: BN;
129
+ oiShortUsd: BN;
130
+ };
131
+ longPositions: {
132
+ openPositions: BN;
133
+ collateralUsd: BN;
134
+ sizeUsd: BN;
135
+ lockedAmount: BN;
136
+ weightedPrice: BN;
137
+ totalQuantity: BN;
138
+ cumulativeInterestUsd: BN;
139
+ cumulativeInterestSnapshot: BN;
140
+ };
141
+ shortPositions: {
142
+ openPositions: BN;
143
+ collateralUsd: BN;
144
+ sizeUsd: BN;
145
+ lockedAmount: BN;
146
+ weightedPrice: BN;
147
+ totalQuantity: BN;
148
+ cumulativeInterestUsd: BN;
149
+ cumulativeInterestSnapshot: BN;
150
+ };
151
+ borrowRateState: {
152
+ currentRate: BN;
153
+ cumulativeInterest: BN;
154
+ lastUpdate: BN;
155
+ };
156
+ bump: number;
157
+ tokenAccountBump: number;
158
+ numSigners: number;
159
+ numSigned: number;
160
+ minSignatures: number;
161
+ instructionAccountsLen: number;
162
+ instructionDataLen: number;
163
+ instructionHash: BN;
164
+ signers: PublicKey[];
165
+ signed: boolean[];
166
+ price: BN;
167
+ expo: number;
168
+ conf: BN;
169
+ publishTime: BN;
170
+ pools: PublicKey[];
171
+ transferAuthorityBump: number;
172
+ perpetualsBump: number;
173
+ inceptionTime: BN;
174
+ name: string;
175
+ custodies: PublicKey[];
176
+ ratios: {
177
+ target: BN;
178
+ min: BN;
179
+ max: BN;
180
+ }[];
181
+ aumUsd: BN;
182
+ lpTokenBump: number;
183
+ owner: PublicKey;
184
+ custody: PublicKey;
185
+ openTime: BN;
186
+ updateTime: BN;
187
+ side: {
188
+ none?: Record<string, never>;
189
+ long?: Record<string, never>;
190
+ short?: Record<string, never>;
191
+ };
192
+ sizeUsd: BN;
193
+ collateralUsd: BN;
194
+ unrealizedProfitUsd: BN;
195
+ unrealizedLossUsd: BN;
196
+ cumulativeInterestSnapshot: BN;
197
+ lockedAmount: BN;
198
+ collateralAmount: BN;
199
+ }>;
200
+ getPoolKey: (name: string) => PublicKey;
201
+ getPool: (name: string) => Promise<{
202
+ pool: PublicKey;
203
+ mint: PublicKey;
204
+ tokenAccount: PublicKey;
205
+ decimals: number;
206
+ isStable: boolean;
207
+ oracle: {
208
+ oracleAccount: PublicKey;
209
+ oracleType: {
210
+ none?: Record<string, never>;
211
+ test?: Record<string, never>;
212
+ pyth?: Record<string, never>;
213
+ };
214
+ maxPriceError: BN;
215
+ maxPriceAgeSec: number;
216
+ };
217
+ pricing: {
218
+ useEma: boolean;
219
+ useUnrealizedPnlInAum: boolean;
220
+ tradeSpreadLong: BN;
221
+ tradeSpreadShort: BN;
222
+ swapSpread: BN;
223
+ minInitialLeverage: BN;
224
+ maxInitialLeverage: BN;
225
+ maxLeverage: BN;
226
+ maxPayoffMult: BN;
227
+ maxUtilization: BN;
228
+ maxPositionLockedUsd: BN;
229
+ maxTotalLockedUsd: BN;
230
+ } | {
231
+ useEma: boolean;
232
+ useUnrealizedPnlInAum: boolean;
233
+ tradeSpreadLong: BN;
234
+ tradeSpreadShort: BN;
235
+ swapSpread: BN;
236
+ minInitialLeverage: BN;
237
+ maxLeverage: BN;
238
+ maxPayoffMult: BN;
239
+ };
240
+ permissions: {
241
+ allowSwap: boolean;
242
+ allowAddLiquidity: boolean;
243
+ allowRemoveLiquidity: boolean;
244
+ allowOpenPosition: boolean;
245
+ allowClosePosition: boolean;
246
+ allowPnlWithdrawal: boolean;
247
+ allowCollateralWithdrawal: boolean;
248
+ allowSizeChange: boolean;
249
+ };
250
+ fees: {
251
+ mode: {
252
+ fixed?: Record<string, never>;
253
+ linear?: Record<string, never>;
254
+ };
255
+ ratioMult: BN;
256
+ utilizationMult: BN;
257
+ swapIn: BN;
258
+ swapOut: BN;
259
+ stableSwapIn: BN;
260
+ stableSwapOut: BN;
261
+ addLiquidity: BN;
262
+ removeLiquidity: BN;
263
+ openPosition: BN;
264
+ closePosition: BN;
265
+ liquidation: BN;
266
+ protocolShare: BN;
267
+ };
268
+ borrowRate: {
269
+ baseRate: BN;
270
+ slope1: BN;
271
+ slope2: BN;
272
+ optimalUtilization: BN;
273
+ };
274
+ assets: {
275
+ collateral: BN;
276
+ protocolFees: BN;
277
+ owned: BN;
278
+ locked: BN;
279
+ };
280
+ collectedFees: {
281
+ swapUsd: BN;
282
+ addLiquidityUsd: BN;
283
+ removeLiquidityUsd: BN;
284
+ openPositionUsd: BN;
285
+ closePositionUsd: BN;
286
+ liquidationUsd: BN;
287
+ };
288
+ volumeStats: {
289
+ swapUsd: BN;
290
+ addLiquidityUsd: BN;
291
+ removeLiquidityUsd: BN;
292
+ openPositionUsd: BN;
293
+ closePositionUsd: BN;
294
+ liquidationUsd: BN;
295
+ };
296
+ tradeStats: {
297
+ profitUsd: BN;
298
+ lossUsd: BN;
299
+ oiLongUsd: BN;
300
+ oiShortUsd: BN;
301
+ };
302
+ longPositions: {
303
+ openPositions: BN;
304
+ collateralUsd: BN;
305
+ sizeUsd: BN;
306
+ lockedAmount: BN;
307
+ weightedPrice: BN;
308
+ totalQuantity: BN;
309
+ cumulativeInterestUsd: BN;
310
+ cumulativeInterestSnapshot: BN;
311
+ };
312
+ shortPositions: {
313
+ openPositions: BN;
314
+ collateralUsd: BN;
315
+ sizeUsd: BN;
316
+ lockedAmount: BN;
317
+ weightedPrice: BN;
318
+ totalQuantity: BN;
319
+ cumulativeInterestUsd: BN;
320
+ cumulativeInterestSnapshot: BN;
321
+ };
322
+ borrowRateState: {
323
+ currentRate: BN;
324
+ cumulativeInterest: BN;
325
+ lastUpdate: BN;
326
+ };
327
+ bump: number;
328
+ tokenAccountBump: number;
329
+ numSigners: number;
330
+ numSigned: number;
331
+ minSignatures: number;
332
+ instructionAccountsLen: number;
333
+ instructionDataLen: number;
334
+ instructionHash: BN;
335
+ signers: PublicKey[];
336
+ signed: boolean[];
337
+ price: BN;
338
+ expo: number;
339
+ conf: BN;
340
+ publishTime: BN;
341
+ pools: PublicKey[];
342
+ transferAuthorityBump: number;
343
+ perpetualsBump: number;
344
+ inceptionTime: BN;
345
+ name: string;
346
+ custodies: PublicKey[];
347
+ ratios: {
348
+ target: BN;
349
+ min: BN;
350
+ max: BN;
351
+ }[];
352
+ aumUsd: BN;
353
+ lpTokenBump: number;
354
+ owner: PublicKey;
355
+ custody: PublicKey;
356
+ openTime: BN;
357
+ updateTime: BN;
358
+ side: {
359
+ none?: Record<string, never>;
360
+ long?: Record<string, never>;
361
+ short?: Record<string, never>;
362
+ };
363
+ sizeUsd: BN;
364
+ collateralUsd: BN;
365
+ unrealizedProfitUsd: BN;
366
+ unrealizedLossUsd: BN;
367
+ cumulativeInterestSnapshot: BN;
368
+ lockedAmount: BN;
369
+ collateralAmount: BN;
370
+ }>;
371
+ getPools: () => Promise<{
372
+ pool: PublicKey;
373
+ mint: PublicKey;
374
+ tokenAccount: PublicKey;
375
+ decimals: number;
376
+ isStable: boolean;
377
+ oracle: {
378
+ oracleAccount: PublicKey;
379
+ oracleType: {
380
+ none?: Record<string, never>;
381
+ test?: Record<string, never>;
382
+ pyth?: Record<string, never>;
383
+ };
384
+ maxPriceError: BN;
385
+ maxPriceAgeSec: number;
386
+ };
387
+ pricing: {
388
+ useEma: boolean;
389
+ useUnrealizedPnlInAum: boolean;
390
+ tradeSpreadLong: BN;
391
+ tradeSpreadShort: BN;
392
+ swapSpread: BN;
393
+ minInitialLeverage: BN;
394
+ maxInitialLeverage: BN;
395
+ maxLeverage: BN;
396
+ maxPayoffMult: BN;
397
+ maxUtilization: BN;
398
+ maxPositionLockedUsd: BN;
399
+ maxTotalLockedUsd: BN;
400
+ } | {
401
+ useEma: boolean;
402
+ useUnrealizedPnlInAum: boolean;
403
+ tradeSpreadLong: BN;
404
+ tradeSpreadShort: BN;
405
+ swapSpread: BN;
406
+ minInitialLeverage: BN;
407
+ maxLeverage: BN;
408
+ maxPayoffMult: BN;
409
+ };
410
+ permissions: {
411
+ allowSwap: boolean;
412
+ allowAddLiquidity: boolean;
413
+ allowRemoveLiquidity: boolean;
414
+ allowOpenPosition: boolean;
415
+ allowClosePosition: boolean;
416
+ allowPnlWithdrawal: boolean;
417
+ allowCollateralWithdrawal: boolean;
418
+ allowSizeChange: boolean;
419
+ };
420
+ fees: {
421
+ mode: {
422
+ fixed?: Record<string, never>;
423
+ linear?: Record<string, never>;
424
+ };
425
+ ratioMult: BN;
426
+ utilizationMult: BN;
427
+ swapIn: BN;
428
+ swapOut: BN;
429
+ stableSwapIn: BN;
430
+ stableSwapOut: BN;
431
+ addLiquidity: BN;
432
+ removeLiquidity: BN;
433
+ openPosition: BN;
434
+ closePosition: BN;
435
+ liquidation: BN;
436
+ protocolShare: BN;
437
+ };
438
+ borrowRate: {
439
+ baseRate: BN;
440
+ slope1: BN;
441
+ slope2: BN;
442
+ optimalUtilization: BN;
443
+ };
444
+ assets: {
445
+ collateral: BN;
446
+ protocolFees: BN;
447
+ owned: BN;
448
+ locked: BN;
449
+ };
450
+ collectedFees: {
451
+ swapUsd: BN;
452
+ addLiquidityUsd: BN;
453
+ removeLiquidityUsd: BN;
454
+ openPositionUsd: BN;
455
+ closePositionUsd: BN;
456
+ liquidationUsd: BN;
457
+ };
458
+ volumeStats: {
459
+ swapUsd: BN;
460
+ addLiquidityUsd: BN;
461
+ removeLiquidityUsd: BN;
462
+ openPositionUsd: BN;
463
+ closePositionUsd: BN;
464
+ liquidationUsd: BN;
465
+ };
466
+ tradeStats: {
467
+ profitUsd: BN;
468
+ lossUsd: BN;
469
+ oiLongUsd: BN;
470
+ oiShortUsd: BN;
471
+ };
472
+ longPositions: {
473
+ openPositions: BN;
474
+ collateralUsd: BN;
475
+ sizeUsd: BN;
476
+ lockedAmount: BN;
477
+ weightedPrice: BN;
478
+ totalQuantity: BN;
479
+ cumulativeInterestUsd: BN;
480
+ cumulativeInterestSnapshot: BN;
481
+ };
482
+ shortPositions: {
483
+ openPositions: BN;
484
+ collateralUsd: BN;
485
+ sizeUsd: BN;
486
+ lockedAmount: BN;
487
+ weightedPrice: BN;
488
+ totalQuantity: BN;
489
+ cumulativeInterestUsd: BN;
490
+ cumulativeInterestSnapshot: BN;
491
+ };
492
+ borrowRateState: {
493
+ currentRate: BN;
494
+ cumulativeInterest: BN;
495
+ lastUpdate: BN;
496
+ };
497
+ bump: number;
498
+ tokenAccountBump: number;
499
+ numSigners: number;
500
+ numSigned: number;
501
+ minSignatures: number;
502
+ instructionAccountsLen: number;
503
+ instructionDataLen: number;
504
+ instructionHash: BN;
505
+ signers: PublicKey[];
506
+ signed: boolean[];
507
+ price: BN;
508
+ expo: number;
509
+ conf: BN;
510
+ publishTime: BN;
511
+ pools: PublicKey[];
512
+ transferAuthorityBump: number;
513
+ perpetualsBump: number;
514
+ inceptionTime: BN;
515
+ name: string;
516
+ custodies: PublicKey[];
517
+ ratios: {
518
+ target: BN;
519
+ min: BN;
520
+ max: BN;
521
+ }[];
522
+ aumUsd: BN;
523
+ lpTokenBump: number;
524
+ owner: PublicKey;
525
+ custody: PublicKey;
526
+ openTime: BN;
527
+ updateTime: BN;
528
+ side: {
529
+ none?: Record<string, never>;
530
+ long?: Record<string, never>;
531
+ short?: Record<string, never>;
532
+ };
533
+ sizeUsd: BN;
534
+ collateralUsd: BN;
535
+ unrealizedProfitUsd: BN;
536
+ unrealizedLossUsd: BN;
537
+ cumulativeInterestSnapshot: BN;
538
+ lockedAmount: BN;
539
+ collateralAmount: BN;
540
+ }[]>;
541
+ getPoolLpTokenKey: (name: string) => PublicKey;
542
+ getCustodyKey: (poolName: string, tokenMint: PublicKey) => PublicKey;
543
+ getCustodyTokenAccountKey: (poolName: string, tokenMint: PublicKey) => PublicKey;
544
+ getCustodyOracleAccountKey: (poolName: string, tokenMint: PublicKey) => Promise<PublicKey>;
545
+ getCustodyTestOracleAccountKey: (poolName: string, tokenMint: PublicKey) => PublicKey;
546
+ getCustody: (poolName: string, tokenMint: PublicKey) => Promise<{
547
+ pool: PublicKey;
548
+ mint: PublicKey;
549
+ tokenAccount: PublicKey;
550
+ decimals: number;
551
+ isStable: boolean;
552
+ oracle: {
553
+ oracleAccount: PublicKey;
554
+ oracleType: {
555
+ none?: Record<string, never>;
556
+ test?: Record<string, never>;
557
+ pyth?: Record<string, never>;
558
+ };
559
+ maxPriceError: BN;
560
+ maxPriceAgeSec: number;
561
+ };
562
+ pricing: {
563
+ useEma: boolean;
564
+ useUnrealizedPnlInAum: boolean;
565
+ tradeSpreadLong: BN;
566
+ tradeSpreadShort: BN;
567
+ swapSpread: BN;
568
+ minInitialLeverage: BN;
569
+ maxInitialLeverage: BN;
570
+ maxLeverage: BN;
571
+ maxPayoffMult: BN;
572
+ maxUtilization: BN;
573
+ maxPositionLockedUsd: BN;
574
+ maxTotalLockedUsd: BN;
575
+ } | {
576
+ useEma: boolean;
577
+ useUnrealizedPnlInAum: boolean;
578
+ tradeSpreadLong: BN;
579
+ tradeSpreadShort: BN;
580
+ swapSpread: BN;
581
+ minInitialLeverage: BN;
582
+ maxLeverage: BN;
583
+ maxPayoffMult: BN;
584
+ };
585
+ permissions: {
586
+ allowSwap: boolean;
587
+ allowAddLiquidity: boolean;
588
+ allowRemoveLiquidity: boolean;
589
+ allowOpenPosition: boolean;
590
+ allowClosePosition: boolean;
591
+ allowPnlWithdrawal: boolean;
592
+ allowCollateralWithdrawal: boolean;
593
+ allowSizeChange: boolean;
594
+ };
595
+ fees: {
596
+ mode: {
597
+ fixed?: Record<string, never>;
598
+ linear?: Record<string, never>;
599
+ };
600
+ ratioMult: BN;
601
+ utilizationMult: BN;
602
+ swapIn: BN;
603
+ swapOut: BN;
604
+ stableSwapIn: BN;
605
+ stableSwapOut: BN;
606
+ addLiquidity: BN;
607
+ removeLiquidity: BN;
608
+ openPosition: BN;
609
+ closePosition: BN;
610
+ liquidation: BN;
611
+ protocolShare: BN;
612
+ };
613
+ borrowRate: {
614
+ baseRate: BN;
615
+ slope1: BN;
616
+ slope2: BN;
617
+ optimalUtilization: BN;
618
+ };
619
+ assets: {
620
+ collateral: BN;
621
+ protocolFees: BN;
622
+ owned: BN;
623
+ locked: BN;
624
+ };
625
+ collectedFees: {
626
+ swapUsd: BN;
627
+ addLiquidityUsd: BN;
628
+ removeLiquidityUsd: BN;
629
+ openPositionUsd: BN;
630
+ closePositionUsd: BN;
631
+ liquidationUsd: BN;
632
+ };
633
+ volumeStats: {
634
+ swapUsd: BN;
635
+ addLiquidityUsd: BN;
636
+ removeLiquidityUsd: BN;
637
+ openPositionUsd: BN;
638
+ closePositionUsd: BN;
639
+ liquidationUsd: BN;
640
+ };
641
+ tradeStats: {
642
+ profitUsd: BN;
643
+ lossUsd: BN;
644
+ oiLongUsd: BN;
645
+ oiShortUsd: BN;
646
+ };
647
+ longPositions: {
648
+ openPositions: BN;
649
+ collateralUsd: BN;
650
+ sizeUsd: BN;
651
+ lockedAmount: BN;
652
+ weightedPrice: BN;
653
+ totalQuantity: BN;
654
+ cumulativeInterestUsd: BN;
655
+ cumulativeInterestSnapshot: BN;
656
+ };
657
+ shortPositions: {
658
+ openPositions: BN;
659
+ collateralUsd: BN;
660
+ sizeUsd: BN;
661
+ lockedAmount: BN;
662
+ weightedPrice: BN;
663
+ totalQuantity: BN;
664
+ cumulativeInterestUsd: BN;
665
+ cumulativeInterestSnapshot: BN;
666
+ };
667
+ borrowRateState: {
668
+ currentRate: BN;
669
+ cumulativeInterest: BN;
670
+ lastUpdate: BN;
671
+ };
672
+ bump: number;
673
+ tokenAccountBump: number;
674
+ numSigners: number;
675
+ numSigned: number;
676
+ minSignatures: number;
677
+ instructionAccountsLen: number;
678
+ instructionDataLen: number;
679
+ instructionHash: BN;
680
+ signers: PublicKey[];
681
+ signed: boolean[];
682
+ price: BN;
683
+ expo: number;
684
+ conf: BN;
685
+ publishTime: BN;
686
+ pools: PublicKey[];
687
+ transferAuthorityBump: number;
688
+ perpetualsBump: number;
689
+ inceptionTime: BN;
690
+ name: string;
691
+ custodies: PublicKey[];
692
+ ratios: {
693
+ target: BN;
694
+ min: BN;
695
+ max: BN;
696
+ }[];
697
+ aumUsd: BN;
698
+ lpTokenBump: number;
699
+ owner: PublicKey;
700
+ custody: PublicKey;
701
+ openTime: BN;
702
+ updateTime: BN;
703
+ side: {
704
+ none?: Record<string, never>;
705
+ long?: Record<string, never>;
706
+ short?: Record<string, never>;
707
+ };
708
+ sizeUsd: BN;
709
+ collateralUsd: BN;
710
+ unrealizedProfitUsd: BN;
711
+ unrealizedLossUsd: BN;
712
+ cumulativeInterestSnapshot: BN;
713
+ lockedAmount: BN;
714
+ collateralAmount: BN;
715
+ }>;
716
+ getCustodies: (poolName: string) => Promise<{
717
+ pool: PublicKey;
718
+ mint: PublicKey;
719
+ tokenAccount: PublicKey;
720
+ decimals: number;
721
+ isStable: boolean;
722
+ oracle: {
723
+ oracleAccount: PublicKey;
724
+ oracleType: {
725
+ none?: Record<string, never>;
726
+ test?: Record<string, never>;
727
+ pyth?: Record<string, never>;
728
+ };
729
+ maxPriceError: BN;
730
+ maxPriceAgeSec: number;
731
+ };
732
+ pricing: {
733
+ useEma: boolean;
734
+ useUnrealizedPnlInAum: boolean;
735
+ tradeSpreadLong: BN;
736
+ tradeSpreadShort: BN;
737
+ swapSpread: BN;
738
+ minInitialLeverage: BN;
739
+ maxInitialLeverage: BN;
740
+ maxLeverage: BN;
741
+ maxPayoffMult: BN;
742
+ maxUtilization: BN;
743
+ maxPositionLockedUsd: BN;
744
+ maxTotalLockedUsd: BN;
745
+ } | {
746
+ useEma: boolean;
747
+ useUnrealizedPnlInAum: boolean;
748
+ tradeSpreadLong: BN;
749
+ tradeSpreadShort: BN;
750
+ swapSpread: BN;
751
+ minInitialLeverage: BN;
752
+ maxLeverage: BN;
753
+ maxPayoffMult: BN;
754
+ };
755
+ permissions: {
756
+ allowSwap: boolean;
757
+ allowAddLiquidity: boolean;
758
+ allowRemoveLiquidity: boolean;
759
+ allowOpenPosition: boolean;
760
+ allowClosePosition: boolean;
761
+ allowPnlWithdrawal: boolean;
762
+ allowCollateralWithdrawal: boolean;
763
+ allowSizeChange: boolean;
764
+ };
765
+ fees: {
766
+ mode: {
767
+ fixed?: Record<string, never>;
768
+ linear?: Record<string, never>;
769
+ };
770
+ ratioMult: BN;
771
+ utilizationMult: BN;
772
+ swapIn: BN;
773
+ swapOut: BN;
774
+ stableSwapIn: BN;
775
+ stableSwapOut: BN;
776
+ addLiquidity: BN;
777
+ removeLiquidity: BN;
778
+ openPosition: BN;
779
+ closePosition: BN;
780
+ liquidation: BN;
781
+ protocolShare: BN;
782
+ };
783
+ borrowRate: {
784
+ baseRate: BN;
785
+ slope1: BN;
786
+ slope2: BN;
787
+ optimalUtilization: BN;
788
+ };
789
+ assets: {
790
+ collateral: BN;
791
+ protocolFees: BN;
792
+ owned: BN;
793
+ locked: BN;
794
+ };
795
+ collectedFees: {
796
+ swapUsd: BN;
797
+ addLiquidityUsd: BN;
798
+ removeLiquidityUsd: BN;
799
+ openPositionUsd: BN;
800
+ closePositionUsd: BN;
801
+ liquidationUsd: BN;
802
+ };
803
+ volumeStats: {
804
+ swapUsd: BN;
805
+ addLiquidityUsd: BN;
806
+ removeLiquidityUsd: BN;
807
+ openPositionUsd: BN;
808
+ closePositionUsd: BN;
809
+ liquidationUsd: BN;
810
+ };
811
+ tradeStats: {
812
+ profitUsd: BN;
813
+ lossUsd: BN;
814
+ oiLongUsd: BN;
815
+ oiShortUsd: BN;
816
+ };
817
+ longPositions: {
818
+ openPositions: BN;
819
+ collateralUsd: BN;
820
+ sizeUsd: BN;
821
+ lockedAmount: BN;
822
+ weightedPrice: BN;
823
+ totalQuantity: BN;
824
+ cumulativeInterestUsd: BN;
825
+ cumulativeInterestSnapshot: BN;
826
+ };
827
+ shortPositions: {
828
+ openPositions: BN;
829
+ collateralUsd: BN;
830
+ sizeUsd: BN;
831
+ lockedAmount: BN;
832
+ weightedPrice: BN;
833
+ totalQuantity: BN;
834
+ cumulativeInterestUsd: BN;
835
+ cumulativeInterestSnapshot: BN;
836
+ };
837
+ borrowRateState: {
838
+ currentRate: BN;
839
+ cumulativeInterest: BN;
840
+ lastUpdate: BN;
841
+ };
842
+ bump: number;
843
+ tokenAccountBump: number;
844
+ numSigners: number;
845
+ numSigned: number;
846
+ minSignatures: number;
847
+ instructionAccountsLen: number;
848
+ instructionDataLen: number;
849
+ instructionHash: BN;
850
+ signers: PublicKey[];
851
+ signed: boolean[];
852
+ price: BN;
853
+ expo: number;
854
+ conf: BN;
855
+ publishTime: BN;
856
+ pools: PublicKey[];
857
+ transferAuthorityBump: number;
858
+ perpetualsBump: number;
859
+ inceptionTime: BN;
860
+ name: string;
861
+ custodies: PublicKey[];
862
+ ratios: {
863
+ target: BN;
864
+ min: BN;
865
+ max: BN;
866
+ }[];
867
+ aumUsd: BN;
868
+ lpTokenBump: number;
869
+ owner: PublicKey;
870
+ custody: PublicKey;
871
+ openTime: BN;
872
+ updateTime: BN;
873
+ side: {
874
+ none?: Record<string, never>;
875
+ long?: Record<string, never>;
876
+ short?: Record<string, never>;
877
+ };
878
+ sizeUsd: BN;
879
+ collateralUsd: BN;
880
+ unrealizedProfitUsd: BN;
881
+ unrealizedLossUsd: BN;
882
+ cumulativeInterestSnapshot: BN;
883
+ lockedAmount: BN;
884
+ collateralAmount: BN;
885
+ }[]>;
886
+ getCustodyMetas: (poolName: string) => Promise<any[]>;
887
+ getMultisig: () => Promise<{
888
+ pool: PublicKey;
889
+ mint: PublicKey;
890
+ tokenAccount: PublicKey;
891
+ decimals: number;
892
+ isStable: boolean;
893
+ oracle: {
894
+ oracleAccount: PublicKey;
895
+ oracleType: {
896
+ none?: Record<string, never>;
897
+ test?: Record<string, never>;
898
+ pyth?: Record<string, never>;
899
+ };
900
+ maxPriceError: BN;
901
+ maxPriceAgeSec: number;
902
+ };
903
+ pricing: {
904
+ useEma: boolean;
905
+ useUnrealizedPnlInAum: boolean;
906
+ tradeSpreadLong: BN;
907
+ tradeSpreadShort: BN;
908
+ swapSpread: BN;
909
+ minInitialLeverage: BN;
910
+ maxInitialLeverage: BN;
911
+ maxLeverage: BN;
912
+ maxPayoffMult: BN;
913
+ maxUtilization: BN;
914
+ maxPositionLockedUsd: BN;
915
+ maxTotalLockedUsd: BN;
916
+ } | {
917
+ useEma: boolean;
918
+ useUnrealizedPnlInAum: boolean;
919
+ tradeSpreadLong: BN;
920
+ tradeSpreadShort: BN;
921
+ swapSpread: BN;
922
+ minInitialLeverage: BN;
923
+ maxLeverage: BN;
924
+ maxPayoffMult: BN;
925
+ };
926
+ permissions: {
927
+ allowSwap: boolean;
928
+ allowAddLiquidity: boolean;
929
+ allowRemoveLiquidity: boolean;
930
+ allowOpenPosition: boolean;
931
+ allowClosePosition: boolean;
932
+ allowPnlWithdrawal: boolean;
933
+ allowCollateralWithdrawal: boolean;
934
+ allowSizeChange: boolean;
935
+ };
936
+ fees: {
937
+ mode: {
938
+ fixed?: Record<string, never>;
939
+ linear?: Record<string, never>;
940
+ };
941
+ ratioMult: BN;
942
+ utilizationMult: BN;
943
+ swapIn: BN;
944
+ swapOut: BN;
945
+ stableSwapIn: BN;
946
+ stableSwapOut: BN;
947
+ addLiquidity: BN;
948
+ removeLiquidity: BN;
949
+ openPosition: BN;
950
+ closePosition: BN;
951
+ liquidation: BN;
952
+ protocolShare: BN;
953
+ };
954
+ borrowRate: {
955
+ baseRate: BN;
956
+ slope1: BN;
957
+ slope2: BN;
958
+ optimalUtilization: BN;
959
+ };
960
+ assets: {
961
+ collateral: BN;
962
+ protocolFees: BN;
963
+ owned: BN;
964
+ locked: BN;
965
+ };
966
+ collectedFees: {
967
+ swapUsd: BN;
968
+ addLiquidityUsd: BN;
969
+ removeLiquidityUsd: BN;
970
+ openPositionUsd: BN;
971
+ closePositionUsd: BN;
972
+ liquidationUsd: BN;
973
+ };
974
+ volumeStats: {
975
+ swapUsd: BN;
976
+ addLiquidityUsd: BN;
977
+ removeLiquidityUsd: BN;
978
+ openPositionUsd: BN;
979
+ closePositionUsd: BN;
980
+ liquidationUsd: BN;
981
+ };
982
+ tradeStats: {
983
+ profitUsd: BN;
984
+ lossUsd: BN;
985
+ oiLongUsd: BN;
986
+ oiShortUsd: BN;
987
+ };
988
+ longPositions: {
989
+ openPositions: BN;
990
+ collateralUsd: BN;
991
+ sizeUsd: BN;
992
+ lockedAmount: BN;
993
+ weightedPrice: BN;
994
+ totalQuantity: BN;
995
+ cumulativeInterestUsd: BN;
996
+ cumulativeInterestSnapshot: BN;
997
+ };
998
+ shortPositions: {
999
+ openPositions: BN;
1000
+ collateralUsd: BN;
1001
+ sizeUsd: BN;
1002
+ lockedAmount: BN;
1003
+ weightedPrice: BN;
1004
+ totalQuantity: BN;
1005
+ cumulativeInterestUsd: BN;
1006
+ cumulativeInterestSnapshot: BN;
1007
+ };
1008
+ borrowRateState: {
1009
+ currentRate: BN;
1010
+ cumulativeInterest: BN;
1011
+ lastUpdate: BN;
1012
+ };
1013
+ bump: number;
1014
+ tokenAccountBump: number;
1015
+ numSigners: number;
1016
+ numSigned: number;
1017
+ minSignatures: number;
1018
+ instructionAccountsLen: number;
1019
+ instructionDataLen: number;
1020
+ instructionHash: BN;
1021
+ signers: PublicKey[];
1022
+ signed: boolean[];
1023
+ price: BN;
1024
+ expo: number;
1025
+ conf: BN;
1026
+ publishTime: BN;
1027
+ pools: PublicKey[];
1028
+ transferAuthorityBump: number;
1029
+ perpetualsBump: number;
1030
+ inceptionTime: BN;
1031
+ name: string;
1032
+ custodies: PublicKey[];
1033
+ ratios: {
1034
+ target: BN;
1035
+ min: BN;
1036
+ max: BN;
1037
+ }[];
1038
+ aumUsd: BN;
1039
+ lpTokenBump: number;
1040
+ owner: PublicKey;
1041
+ custody: PublicKey;
1042
+ openTime: BN;
1043
+ updateTime: BN;
1044
+ side: {
1045
+ none?: Record<string, never>;
1046
+ long?: Record<string, never>;
1047
+ short?: Record<string, never>;
1048
+ };
1049
+ sizeUsd: BN;
1050
+ collateralUsd: BN;
1051
+ unrealizedProfitUsd: BN;
1052
+ unrealizedLossUsd: BN;
1053
+ cumulativeInterestSnapshot: BN;
1054
+ lockedAmount: BN;
1055
+ collateralAmount: BN;
1056
+ }>;
1057
+ getPositionKey: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide) => PublicKey;
1058
+ getPosition: (postionKey: PublicKey) => Promise<{
1059
+ pool: PublicKey;
1060
+ mint: PublicKey;
1061
+ tokenAccount: PublicKey;
1062
+ decimals: number;
1063
+ isStable: boolean;
1064
+ oracle: {
1065
+ oracleAccount: PublicKey;
1066
+ oracleType: {
1067
+ none?: Record<string, never>;
1068
+ test?: Record<string, never>;
1069
+ pyth?: Record<string, never>;
1070
+ };
1071
+ maxPriceError: BN;
1072
+ maxPriceAgeSec: number;
1073
+ };
1074
+ pricing: {
1075
+ useEma: boolean;
1076
+ useUnrealizedPnlInAum: boolean;
1077
+ tradeSpreadLong: BN;
1078
+ tradeSpreadShort: BN;
1079
+ swapSpread: BN;
1080
+ minInitialLeverage: BN;
1081
+ maxInitialLeverage: BN;
1082
+ maxLeverage: BN;
1083
+ maxPayoffMult: BN;
1084
+ maxUtilization: BN;
1085
+ maxPositionLockedUsd: BN;
1086
+ maxTotalLockedUsd: BN;
1087
+ } | {
1088
+ useEma: boolean;
1089
+ useUnrealizedPnlInAum: boolean;
1090
+ tradeSpreadLong: BN;
1091
+ tradeSpreadShort: BN;
1092
+ swapSpread: BN;
1093
+ minInitialLeverage: BN;
1094
+ maxLeverage: BN;
1095
+ maxPayoffMult: BN;
1096
+ };
1097
+ permissions: {
1098
+ allowSwap: boolean;
1099
+ allowAddLiquidity: boolean;
1100
+ allowRemoveLiquidity: boolean;
1101
+ allowOpenPosition: boolean;
1102
+ allowClosePosition: boolean;
1103
+ allowPnlWithdrawal: boolean;
1104
+ allowCollateralWithdrawal: boolean;
1105
+ allowSizeChange: boolean;
1106
+ };
1107
+ fees: {
1108
+ mode: {
1109
+ fixed?: Record<string, never>;
1110
+ linear?: Record<string, never>;
1111
+ };
1112
+ ratioMult: BN;
1113
+ utilizationMult: BN;
1114
+ swapIn: BN;
1115
+ swapOut: BN;
1116
+ stableSwapIn: BN;
1117
+ stableSwapOut: BN;
1118
+ addLiquidity: BN;
1119
+ removeLiquidity: BN;
1120
+ openPosition: BN;
1121
+ closePosition: BN;
1122
+ liquidation: BN;
1123
+ protocolShare: BN;
1124
+ };
1125
+ borrowRate: {
1126
+ baseRate: BN;
1127
+ slope1: BN;
1128
+ slope2: BN;
1129
+ optimalUtilization: BN;
1130
+ };
1131
+ assets: {
1132
+ collateral: BN;
1133
+ protocolFees: BN;
1134
+ owned: BN;
1135
+ locked: BN;
1136
+ };
1137
+ collectedFees: {
1138
+ swapUsd: BN;
1139
+ addLiquidityUsd: BN;
1140
+ removeLiquidityUsd: BN;
1141
+ openPositionUsd: BN;
1142
+ closePositionUsd: BN;
1143
+ liquidationUsd: BN;
1144
+ };
1145
+ volumeStats: {
1146
+ swapUsd: BN;
1147
+ addLiquidityUsd: BN;
1148
+ removeLiquidityUsd: BN;
1149
+ openPositionUsd: BN;
1150
+ closePositionUsd: BN;
1151
+ liquidationUsd: BN;
1152
+ };
1153
+ tradeStats: {
1154
+ profitUsd: BN;
1155
+ lossUsd: BN;
1156
+ oiLongUsd: BN;
1157
+ oiShortUsd: BN;
1158
+ };
1159
+ longPositions: {
1160
+ openPositions: BN;
1161
+ collateralUsd: BN;
1162
+ sizeUsd: BN;
1163
+ lockedAmount: BN;
1164
+ weightedPrice: BN;
1165
+ totalQuantity: BN;
1166
+ cumulativeInterestUsd: BN;
1167
+ cumulativeInterestSnapshot: BN;
1168
+ };
1169
+ shortPositions: {
1170
+ openPositions: BN;
1171
+ collateralUsd: BN;
1172
+ sizeUsd: BN;
1173
+ lockedAmount: BN;
1174
+ weightedPrice: BN;
1175
+ totalQuantity: BN;
1176
+ cumulativeInterestUsd: BN;
1177
+ cumulativeInterestSnapshot: BN;
1178
+ };
1179
+ borrowRateState: {
1180
+ currentRate: BN;
1181
+ cumulativeInterest: BN;
1182
+ lastUpdate: BN;
1183
+ };
1184
+ bump: number;
1185
+ tokenAccountBump: number;
1186
+ numSigners: number;
1187
+ numSigned: number;
1188
+ minSignatures: number;
1189
+ instructionAccountsLen: number;
1190
+ instructionDataLen: number;
1191
+ instructionHash: BN;
1192
+ signers: PublicKey[];
1193
+ signed: boolean[];
1194
+ price: BN;
1195
+ expo: number;
1196
+ conf: BN;
1197
+ publishTime: BN;
1198
+ pools: PublicKey[];
1199
+ transferAuthorityBump: number;
1200
+ perpetualsBump: number;
1201
+ inceptionTime: BN;
1202
+ name: string;
1203
+ custodies: PublicKey[];
1204
+ ratios: {
1205
+ target: BN;
1206
+ min: BN;
1207
+ max: BN;
1208
+ }[];
1209
+ aumUsd: BN;
1210
+ lpTokenBump: number;
1211
+ owner: PublicKey;
1212
+ custody: PublicKey;
1213
+ openTime: BN;
1214
+ updateTime: BN;
1215
+ side: {
1216
+ none?: Record<string, never>;
1217
+ long?: Record<string, never>;
1218
+ short?: Record<string, never>;
1219
+ };
1220
+ sizeUsd: BN;
1221
+ collateralUsd: BN;
1222
+ unrealizedProfitUsd: BN;
1223
+ unrealizedLossUsd: BN;
1224
+ cumulativeInterestSnapshot: BN;
1225
+ lockedAmount: BN;
1226
+ collateralAmount: BN;
1227
+ }>;
1228
+ getUserPosition: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide) => Promise<{
1229
+ pool: PublicKey;
1230
+ mint: PublicKey;
1231
+ tokenAccount: PublicKey;
1232
+ decimals: number;
1233
+ isStable: boolean;
1234
+ oracle: {
1235
+ oracleAccount: PublicKey;
1236
+ oracleType: {
1237
+ none?: Record<string, never>;
1238
+ test?: Record<string, never>;
1239
+ pyth?: Record<string, never>;
1240
+ };
1241
+ maxPriceError: BN;
1242
+ maxPriceAgeSec: number;
1243
+ };
1244
+ pricing: {
1245
+ useEma: boolean;
1246
+ useUnrealizedPnlInAum: boolean;
1247
+ tradeSpreadLong: BN;
1248
+ tradeSpreadShort: BN;
1249
+ swapSpread: BN;
1250
+ minInitialLeverage: BN;
1251
+ maxInitialLeverage: BN;
1252
+ maxLeverage: BN;
1253
+ maxPayoffMult: BN;
1254
+ maxUtilization: BN;
1255
+ maxPositionLockedUsd: BN;
1256
+ maxTotalLockedUsd: BN;
1257
+ } | {
1258
+ useEma: boolean;
1259
+ useUnrealizedPnlInAum: boolean;
1260
+ tradeSpreadLong: BN;
1261
+ tradeSpreadShort: BN;
1262
+ swapSpread: BN;
1263
+ minInitialLeverage: BN;
1264
+ maxLeverage: BN;
1265
+ maxPayoffMult: BN;
1266
+ };
1267
+ permissions: {
1268
+ allowSwap: boolean;
1269
+ allowAddLiquidity: boolean;
1270
+ allowRemoveLiquidity: boolean;
1271
+ allowOpenPosition: boolean;
1272
+ allowClosePosition: boolean;
1273
+ allowPnlWithdrawal: boolean;
1274
+ allowCollateralWithdrawal: boolean;
1275
+ allowSizeChange: boolean;
1276
+ };
1277
+ fees: {
1278
+ mode: {
1279
+ fixed?: Record<string, never>;
1280
+ linear?: Record<string, never>;
1281
+ };
1282
+ ratioMult: BN;
1283
+ utilizationMult: BN;
1284
+ swapIn: BN;
1285
+ swapOut: BN;
1286
+ stableSwapIn: BN;
1287
+ stableSwapOut: BN;
1288
+ addLiquidity: BN;
1289
+ removeLiquidity: BN;
1290
+ openPosition: BN;
1291
+ closePosition: BN;
1292
+ liquidation: BN;
1293
+ protocolShare: BN;
1294
+ };
1295
+ borrowRate: {
1296
+ baseRate: BN;
1297
+ slope1: BN;
1298
+ slope2: BN;
1299
+ optimalUtilization: BN;
1300
+ };
1301
+ assets: {
1302
+ collateral: BN;
1303
+ protocolFees: BN;
1304
+ owned: BN;
1305
+ locked: BN;
1306
+ };
1307
+ collectedFees: {
1308
+ swapUsd: BN;
1309
+ addLiquidityUsd: BN;
1310
+ removeLiquidityUsd: BN;
1311
+ openPositionUsd: BN;
1312
+ closePositionUsd: BN;
1313
+ liquidationUsd: BN;
1314
+ };
1315
+ volumeStats: {
1316
+ swapUsd: BN;
1317
+ addLiquidityUsd: BN;
1318
+ removeLiquidityUsd: BN;
1319
+ openPositionUsd: BN;
1320
+ closePositionUsd: BN;
1321
+ liquidationUsd: BN;
1322
+ };
1323
+ tradeStats: {
1324
+ profitUsd: BN;
1325
+ lossUsd: BN;
1326
+ oiLongUsd: BN;
1327
+ oiShortUsd: BN;
1328
+ };
1329
+ longPositions: {
1330
+ openPositions: BN;
1331
+ collateralUsd: BN;
1332
+ sizeUsd: BN;
1333
+ lockedAmount: BN;
1334
+ weightedPrice: BN;
1335
+ totalQuantity: BN;
1336
+ cumulativeInterestUsd: BN;
1337
+ cumulativeInterestSnapshot: BN;
1338
+ };
1339
+ shortPositions: {
1340
+ openPositions: BN;
1341
+ collateralUsd: BN;
1342
+ sizeUsd: BN;
1343
+ lockedAmount: BN;
1344
+ weightedPrice: BN;
1345
+ totalQuantity: BN;
1346
+ cumulativeInterestUsd: BN;
1347
+ cumulativeInterestSnapshot: BN;
1348
+ };
1349
+ borrowRateState: {
1350
+ currentRate: BN;
1351
+ cumulativeInterest: BN;
1352
+ lastUpdate: BN;
1353
+ };
1354
+ bump: number;
1355
+ tokenAccountBump: number;
1356
+ numSigners: number;
1357
+ numSigned: number;
1358
+ minSignatures: number;
1359
+ instructionAccountsLen: number;
1360
+ instructionDataLen: number;
1361
+ instructionHash: BN;
1362
+ signers: PublicKey[];
1363
+ signed: boolean[];
1364
+ price: BN;
1365
+ expo: number;
1366
+ conf: BN;
1367
+ publishTime: BN;
1368
+ pools: PublicKey[];
1369
+ transferAuthorityBump: number;
1370
+ perpetualsBump: number;
1371
+ inceptionTime: BN;
1372
+ name: string;
1373
+ custodies: PublicKey[];
1374
+ ratios: {
1375
+ target: BN;
1376
+ min: BN;
1377
+ max: BN;
1378
+ }[];
1379
+ aumUsd: BN;
1380
+ lpTokenBump: number;
1381
+ owner: PublicKey;
1382
+ custody: PublicKey;
1383
+ openTime: BN;
1384
+ updateTime: BN;
1385
+ side: {
1386
+ none?: Record<string, never>;
1387
+ long?: Record<string, never>;
1388
+ short?: Record<string, never>;
1389
+ };
1390
+ sizeUsd: BN;
1391
+ collateralUsd: BN;
1392
+ unrealizedProfitUsd: BN;
1393
+ unrealizedLossUsd: BN;
1394
+ cumulativeInterestSnapshot: BN;
1395
+ lockedAmount: BN;
1396
+ collateralAmount: BN;
1397
+ }>;
1398
+ getUserPositions: (wallet: PublicKey) => Promise<{
1399
+ pool: PublicKey;
1400
+ mint: PublicKey;
1401
+ tokenAccount: PublicKey;
1402
+ decimals: number;
1403
+ isStable: boolean;
1404
+ oracle: {
1405
+ oracleAccount: PublicKey;
1406
+ oracleType: {
1407
+ none?: Record<string, never>;
1408
+ test?: Record<string, never>;
1409
+ pyth?: Record<string, never>;
1410
+ };
1411
+ maxPriceError: BN;
1412
+ maxPriceAgeSec: number;
1413
+ };
1414
+ pricing: {
1415
+ useEma: boolean;
1416
+ useUnrealizedPnlInAum: boolean;
1417
+ tradeSpreadLong: BN;
1418
+ tradeSpreadShort: BN;
1419
+ swapSpread: BN;
1420
+ minInitialLeverage: BN;
1421
+ maxInitialLeverage: BN;
1422
+ maxLeverage: BN;
1423
+ maxPayoffMult: BN;
1424
+ maxUtilization: BN;
1425
+ maxPositionLockedUsd: BN;
1426
+ maxTotalLockedUsd: BN;
1427
+ } | {
1428
+ useEma: boolean;
1429
+ useUnrealizedPnlInAum: boolean;
1430
+ tradeSpreadLong: BN;
1431
+ tradeSpreadShort: BN;
1432
+ swapSpread: BN;
1433
+ minInitialLeverage: BN;
1434
+ maxLeverage: BN;
1435
+ maxPayoffMult: BN;
1436
+ };
1437
+ permissions: {
1438
+ allowSwap: boolean;
1439
+ allowAddLiquidity: boolean;
1440
+ allowRemoveLiquidity: boolean;
1441
+ allowOpenPosition: boolean;
1442
+ allowClosePosition: boolean;
1443
+ allowPnlWithdrawal: boolean;
1444
+ allowCollateralWithdrawal: boolean;
1445
+ allowSizeChange: boolean;
1446
+ };
1447
+ fees: {
1448
+ mode: {
1449
+ fixed?: Record<string, never>;
1450
+ linear?: Record<string, never>;
1451
+ };
1452
+ ratioMult: BN;
1453
+ utilizationMult: BN;
1454
+ swapIn: BN;
1455
+ swapOut: BN;
1456
+ stableSwapIn: BN;
1457
+ stableSwapOut: BN;
1458
+ addLiquidity: BN;
1459
+ removeLiquidity: BN;
1460
+ openPosition: BN;
1461
+ closePosition: BN;
1462
+ liquidation: BN;
1463
+ protocolShare: BN;
1464
+ };
1465
+ borrowRate: {
1466
+ baseRate: BN;
1467
+ slope1: BN;
1468
+ slope2: BN;
1469
+ optimalUtilization: BN;
1470
+ };
1471
+ assets: {
1472
+ collateral: BN;
1473
+ protocolFees: BN;
1474
+ owned: BN;
1475
+ locked: BN;
1476
+ };
1477
+ collectedFees: {
1478
+ swapUsd: BN;
1479
+ addLiquidityUsd: BN;
1480
+ removeLiquidityUsd: BN;
1481
+ openPositionUsd: BN;
1482
+ closePositionUsd: BN;
1483
+ liquidationUsd: BN;
1484
+ };
1485
+ volumeStats: {
1486
+ swapUsd: BN;
1487
+ addLiquidityUsd: BN;
1488
+ removeLiquidityUsd: BN;
1489
+ openPositionUsd: BN;
1490
+ closePositionUsd: BN;
1491
+ liquidationUsd: BN;
1492
+ };
1493
+ tradeStats: {
1494
+ profitUsd: BN;
1495
+ lossUsd: BN;
1496
+ oiLongUsd: BN;
1497
+ oiShortUsd: BN;
1498
+ };
1499
+ longPositions: {
1500
+ openPositions: BN;
1501
+ collateralUsd: BN;
1502
+ sizeUsd: BN;
1503
+ lockedAmount: BN;
1504
+ weightedPrice: BN;
1505
+ totalQuantity: BN;
1506
+ cumulativeInterestUsd: BN;
1507
+ cumulativeInterestSnapshot: BN;
1508
+ };
1509
+ shortPositions: {
1510
+ openPositions: BN;
1511
+ collateralUsd: BN;
1512
+ sizeUsd: BN;
1513
+ lockedAmount: BN;
1514
+ weightedPrice: BN;
1515
+ totalQuantity: BN;
1516
+ cumulativeInterestUsd: BN;
1517
+ cumulativeInterestSnapshot: BN;
1518
+ };
1519
+ borrowRateState: {
1520
+ currentRate: BN;
1521
+ cumulativeInterest: BN;
1522
+ lastUpdate: BN;
1523
+ };
1524
+ bump: number;
1525
+ tokenAccountBump: number;
1526
+ numSigners: number;
1527
+ numSigned: number;
1528
+ minSignatures: number;
1529
+ instructionAccountsLen: number;
1530
+ instructionDataLen: number;
1531
+ instructionHash: BN;
1532
+ signers: PublicKey[];
1533
+ signed: boolean[];
1534
+ price: BN;
1535
+ expo: number;
1536
+ conf: BN;
1537
+ publishTime: BN;
1538
+ pools: PublicKey[];
1539
+ transferAuthorityBump: number;
1540
+ perpetualsBump: number;
1541
+ inceptionTime: BN;
1542
+ name: string;
1543
+ custodies: PublicKey[];
1544
+ ratios: {
1545
+ target: BN;
1546
+ min: BN;
1547
+ max: BN;
1548
+ }[];
1549
+ aumUsd: BN;
1550
+ lpTokenBump: number;
1551
+ owner: PublicKey;
1552
+ custody: PublicKey;
1553
+ openTime: BN;
1554
+ updateTime: BN;
1555
+ side: {
1556
+ none?: Record<string, never>;
1557
+ long?: Record<string, never>;
1558
+ short?: Record<string, never>;
1559
+ };
1560
+ sizeUsd: BN;
1561
+ collateralUsd: BN;
1562
+ unrealizedProfitUsd: BN;
1563
+ unrealizedLossUsd: BN;
1564
+ cumulativeInterestSnapshot: BN;
1565
+ lockedAmount: BN;
1566
+ collateralAmount: BN;
1567
+ }[]>;
1568
+ getPoolTokenPositions: (poolName: string, tokenMint: PublicKey) => Promise<{
1569
+ pool: PublicKey;
1570
+ mint: PublicKey;
1571
+ tokenAccount: PublicKey;
1572
+ decimals: number;
1573
+ isStable: boolean;
1574
+ oracle: {
1575
+ oracleAccount: PublicKey;
1576
+ oracleType: {
1577
+ none?: Record<string, never>;
1578
+ test?: Record<string, never>;
1579
+ pyth?: Record<string, never>;
1580
+ };
1581
+ maxPriceError: BN;
1582
+ maxPriceAgeSec: number;
1583
+ };
1584
+ pricing: {
1585
+ useEma: boolean;
1586
+ useUnrealizedPnlInAum: boolean;
1587
+ tradeSpreadLong: BN;
1588
+ tradeSpreadShort: BN;
1589
+ swapSpread: BN;
1590
+ minInitialLeverage: BN;
1591
+ maxInitialLeverage: BN;
1592
+ maxLeverage: BN;
1593
+ maxPayoffMult: BN;
1594
+ maxUtilization: BN;
1595
+ maxPositionLockedUsd: BN;
1596
+ maxTotalLockedUsd: BN;
1597
+ } | {
1598
+ useEma: boolean;
1599
+ useUnrealizedPnlInAum: boolean;
1600
+ tradeSpreadLong: BN;
1601
+ tradeSpreadShort: BN;
1602
+ swapSpread: BN;
1603
+ minInitialLeverage: BN;
1604
+ maxLeverage: BN;
1605
+ maxPayoffMult: BN;
1606
+ };
1607
+ permissions: {
1608
+ allowSwap: boolean;
1609
+ allowAddLiquidity: boolean;
1610
+ allowRemoveLiquidity: boolean;
1611
+ allowOpenPosition: boolean;
1612
+ allowClosePosition: boolean;
1613
+ allowPnlWithdrawal: boolean;
1614
+ allowCollateralWithdrawal: boolean;
1615
+ allowSizeChange: boolean;
1616
+ };
1617
+ fees: {
1618
+ mode: {
1619
+ fixed?: Record<string, never>;
1620
+ linear?: Record<string, never>;
1621
+ };
1622
+ ratioMult: BN;
1623
+ utilizationMult: BN;
1624
+ swapIn: BN;
1625
+ swapOut: BN;
1626
+ stableSwapIn: BN;
1627
+ stableSwapOut: BN;
1628
+ addLiquidity: BN;
1629
+ removeLiquidity: BN;
1630
+ openPosition: BN;
1631
+ closePosition: BN;
1632
+ liquidation: BN;
1633
+ protocolShare: BN;
1634
+ };
1635
+ borrowRate: {
1636
+ baseRate: BN;
1637
+ slope1: BN;
1638
+ slope2: BN;
1639
+ optimalUtilization: BN;
1640
+ };
1641
+ assets: {
1642
+ collateral: BN;
1643
+ protocolFees: BN;
1644
+ owned: BN;
1645
+ locked: BN;
1646
+ };
1647
+ collectedFees: {
1648
+ swapUsd: BN;
1649
+ addLiquidityUsd: BN;
1650
+ removeLiquidityUsd: BN;
1651
+ openPositionUsd: BN;
1652
+ closePositionUsd: BN;
1653
+ liquidationUsd: BN;
1654
+ };
1655
+ volumeStats: {
1656
+ swapUsd: BN;
1657
+ addLiquidityUsd: BN;
1658
+ removeLiquidityUsd: BN;
1659
+ openPositionUsd: BN;
1660
+ closePositionUsd: BN;
1661
+ liquidationUsd: BN;
1662
+ };
1663
+ tradeStats: {
1664
+ profitUsd: BN;
1665
+ lossUsd: BN;
1666
+ oiLongUsd: BN;
1667
+ oiShortUsd: BN;
1668
+ };
1669
+ longPositions: {
1670
+ openPositions: BN;
1671
+ collateralUsd: BN;
1672
+ sizeUsd: BN;
1673
+ lockedAmount: BN;
1674
+ weightedPrice: BN;
1675
+ totalQuantity: BN;
1676
+ cumulativeInterestUsd: BN;
1677
+ cumulativeInterestSnapshot: BN;
1678
+ };
1679
+ shortPositions: {
1680
+ openPositions: BN;
1681
+ collateralUsd: BN;
1682
+ sizeUsd: BN;
1683
+ lockedAmount: BN;
1684
+ weightedPrice: BN;
1685
+ totalQuantity: BN;
1686
+ cumulativeInterestUsd: BN;
1687
+ cumulativeInterestSnapshot: BN;
1688
+ };
1689
+ borrowRateState: {
1690
+ currentRate: BN;
1691
+ cumulativeInterest: BN;
1692
+ lastUpdate: BN;
1693
+ };
1694
+ bump: number;
1695
+ tokenAccountBump: number;
1696
+ numSigners: number;
1697
+ numSigned: number;
1698
+ minSignatures: number;
1699
+ instructionAccountsLen: number;
1700
+ instructionDataLen: number;
1701
+ instructionHash: BN;
1702
+ signers: PublicKey[];
1703
+ signed: boolean[];
1704
+ price: BN;
1705
+ expo: number;
1706
+ conf: BN;
1707
+ publishTime: BN;
1708
+ pools: PublicKey[];
1709
+ transferAuthorityBump: number;
1710
+ perpetualsBump: number;
1711
+ inceptionTime: BN;
1712
+ name: string;
1713
+ custodies: PublicKey[];
1714
+ ratios: {
1715
+ target: BN;
1716
+ min: BN;
1717
+ max: BN;
1718
+ }[];
1719
+ aumUsd: BN;
1720
+ lpTokenBump: number;
1721
+ owner: PublicKey;
1722
+ custody: PublicKey;
1723
+ openTime: BN;
1724
+ updateTime: BN;
1725
+ side: {
1726
+ none?: Record<string, never>;
1727
+ long?: Record<string, never>;
1728
+ short?: Record<string, never>;
1729
+ };
1730
+ sizeUsd: BN;
1731
+ collateralUsd: BN;
1732
+ unrealizedProfitUsd: BN;
1733
+ unrealizedLossUsd: BN;
1734
+ cumulativeInterestSnapshot: BN;
1735
+ lockedAmount: BN;
1736
+ collateralAmount: BN;
1737
+ }[]>;
1738
+ getAllPositions: () => Promise<import("@coral-xyz/anchor").ProgramAccount<{
1739
+ pool: PublicKey;
1740
+ mint: PublicKey;
1741
+ tokenAccount: PublicKey;
1742
+ decimals: number;
1743
+ isStable: boolean;
1744
+ oracle: {
1745
+ oracleAccount: PublicKey;
1746
+ oracleType: {
1747
+ none?: Record<string, never>;
1748
+ test?: Record<string, never>;
1749
+ pyth?: Record<string, never>;
1750
+ };
1751
+ maxPriceError: BN;
1752
+ maxPriceAgeSec: number;
1753
+ };
1754
+ pricing: {
1755
+ useEma: boolean;
1756
+ useUnrealizedPnlInAum: boolean;
1757
+ tradeSpreadLong: BN;
1758
+ tradeSpreadShort: BN;
1759
+ swapSpread: BN;
1760
+ minInitialLeverage: BN;
1761
+ maxInitialLeverage: BN;
1762
+ maxLeverage: BN;
1763
+ maxPayoffMult: BN;
1764
+ maxUtilization: BN;
1765
+ maxPositionLockedUsd: BN;
1766
+ maxTotalLockedUsd: BN;
1767
+ } | {
1768
+ useEma: boolean;
1769
+ useUnrealizedPnlInAum: boolean;
1770
+ tradeSpreadLong: BN;
1771
+ tradeSpreadShort: BN;
1772
+ swapSpread: BN;
1773
+ minInitialLeverage: BN;
1774
+ maxLeverage: BN;
1775
+ maxPayoffMult: BN;
1776
+ };
1777
+ permissions: {
1778
+ allowSwap: boolean;
1779
+ allowAddLiquidity: boolean;
1780
+ allowRemoveLiquidity: boolean;
1781
+ allowOpenPosition: boolean;
1782
+ allowClosePosition: boolean;
1783
+ allowPnlWithdrawal: boolean;
1784
+ allowCollateralWithdrawal: boolean;
1785
+ allowSizeChange: boolean;
1786
+ };
1787
+ fees: {
1788
+ mode: {
1789
+ fixed?: Record<string, never>;
1790
+ linear?: Record<string, never>;
1791
+ };
1792
+ ratioMult: BN;
1793
+ utilizationMult: BN;
1794
+ swapIn: BN;
1795
+ swapOut: BN;
1796
+ stableSwapIn: BN;
1797
+ stableSwapOut: BN;
1798
+ addLiquidity: BN;
1799
+ removeLiquidity: BN;
1800
+ openPosition: BN;
1801
+ closePosition: BN;
1802
+ liquidation: BN;
1803
+ protocolShare: BN;
1804
+ };
1805
+ borrowRate: {
1806
+ baseRate: BN;
1807
+ slope1: BN;
1808
+ slope2: BN;
1809
+ optimalUtilization: BN;
1810
+ };
1811
+ assets: {
1812
+ collateral: BN;
1813
+ protocolFees: BN;
1814
+ owned: BN;
1815
+ locked: BN;
1816
+ };
1817
+ collectedFees: {
1818
+ swapUsd: BN;
1819
+ addLiquidityUsd: BN;
1820
+ removeLiquidityUsd: BN;
1821
+ openPositionUsd: BN;
1822
+ closePositionUsd: BN;
1823
+ liquidationUsd: BN;
1824
+ };
1825
+ volumeStats: {
1826
+ swapUsd: BN;
1827
+ addLiquidityUsd: BN;
1828
+ removeLiquidityUsd: BN;
1829
+ openPositionUsd: BN;
1830
+ closePositionUsd: BN;
1831
+ liquidationUsd: BN;
1832
+ };
1833
+ tradeStats: {
1834
+ profitUsd: BN;
1835
+ lossUsd: BN;
1836
+ oiLongUsd: BN;
1837
+ oiShortUsd: BN;
1838
+ };
1839
+ longPositions: {
1840
+ openPositions: BN;
1841
+ collateralUsd: BN;
1842
+ sizeUsd: BN;
1843
+ lockedAmount: BN;
1844
+ weightedPrice: BN;
1845
+ totalQuantity: BN;
1846
+ cumulativeInterestUsd: BN;
1847
+ cumulativeInterestSnapshot: BN;
1848
+ };
1849
+ shortPositions: {
1850
+ openPositions: BN;
1851
+ collateralUsd: BN;
1852
+ sizeUsd: BN;
1853
+ lockedAmount: BN;
1854
+ weightedPrice: BN;
1855
+ totalQuantity: BN;
1856
+ cumulativeInterestUsd: BN;
1857
+ cumulativeInterestSnapshot: BN;
1858
+ };
1859
+ borrowRateState: {
1860
+ currentRate: BN;
1861
+ cumulativeInterest: BN;
1862
+ lastUpdate: BN;
1863
+ };
1864
+ bump: number;
1865
+ tokenAccountBump: number;
1866
+ numSigners: number;
1867
+ numSigned: number;
1868
+ minSignatures: number;
1869
+ instructionAccountsLen: number;
1870
+ instructionDataLen: number;
1871
+ instructionHash: BN;
1872
+ signers: PublicKey[];
1873
+ signed: boolean[];
1874
+ price: BN;
1875
+ expo: number;
1876
+ conf: BN;
1877
+ publishTime: BN;
1878
+ pools: PublicKey[];
1879
+ transferAuthorityBump: number;
1880
+ perpetualsBump: number;
1881
+ inceptionTime: BN;
1882
+ name: string;
1883
+ custodies: PublicKey[];
1884
+ ratios: {
1885
+ target: BN;
1886
+ min: BN;
1887
+ max: BN;
1888
+ }[];
1889
+ aumUsd: BN;
1890
+ lpTokenBump: number;
1891
+ owner: PublicKey;
1892
+ custody: PublicKey;
1893
+ openTime: BN;
1894
+ updateTime: BN;
1895
+ side: {
1896
+ none?: Record<string, never>;
1897
+ long?: Record<string, never>;
1898
+ short?: Record<string, never>;
1899
+ };
1900
+ sizeUsd: BN;
1901
+ collateralUsd: BN;
1902
+ unrealizedProfitUsd: BN;
1903
+ unrealizedLossUsd: BN;
1904
+ cumulativeInterestSnapshot: BN;
1905
+ lockedAmount: BN;
1906
+ collateralAmount: BN;
1907
+ }>[]>;
1908
+ getAccountDiscriminator: (name: string) => Buffer;
1909
+ log: (...message: string[]) => void;
1910
+ prettyPrint: (object: object) => void;
1911
+ init: (admins: PublicKey[], config: any) => Promise<void>;
1912
+ setAdminSigners: (admins: PublicKey[], minSignatures: number) => Promise<void>;
1913
+ addPool: (name: string) => Promise<void>;
1914
+ removePool: (name: string) => Promise<void>;
1915
+ addCustody: (poolName: string, tokenMint: PublicKey, isStable: boolean, oracle: OracleParams, pricing: PricingParams, permissions: Permissions, fees: Fees, borrowRate: BorrowRateParams, ratios: TokenRatios[]) => Promise<void>;
1916
+ editCustody: (poolName: string, tokenMint: PublicKey, isStable: boolean, oracle: OracleParams, pricing: PricingParams, permissions: Permissions, fees: Fees, borrowRate: BorrowRateParams, ratios: TokenRatios[]) => Promise<void>;
1917
+ removeCustody: (poolName: string, tokenMint: PublicKey, ratios: TokenRatios[]) => Promise<void>;
1918
+ upgradeCustody: (poolName: string, tokenMint: PublicKey) => Promise<void>;
1919
+ liquidate: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide, receivingAccount: PublicKey, rewardsReceivingAccount: PublicKey) => Promise<string>;
1920
+ getOraclePrice: (poolName: string, tokenMint: PublicKey, ema: boolean) => Promise<any>;
1921
+ getAddLiquidityAmountAndFee: (poolName: string, tokenMint: PublicKey, amount: BN) => Promise<any>;
1922
+ getRemoveLiquidityAmountAndFee: (poolName: string, tokenMint: PublicKey, lpAmount: BN) => Promise<any>;
1923
+ getEntryPriceAndFee: (poolName: string, tokenMint: PublicKey, collateral: BN, size: BN, side: PositionSide) => Promise<any>;
1924
+ getExitPriceAndFee: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide) => Promise<any>;
1925
+ getLiquidationPrice: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide, addCollateral: BN, removeCollateral: BN) => Promise<any>;
1926
+ getLiquidationPriceTrx: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide, addCollateral: BN, removeCollateral: BN) => Promise<string>;
1927
+ getLiquidationPrice2: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide, addCollateral: BN, removeCollateral: BN) => Promise<any>;
1928
+ getLiquidationState: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide) => Promise<any>;
1929
+ getPnl: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide) => Promise<any>;
1930
+ getPnlTrx: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, side: PositionSide) => Promise<string>;
1931
+ getPnl2: (postionKey: PublicKey, postionData: Position, tokenPrice: OraclePrice, tokenEmaPrice: OraclePrice, custodyAccount: CustodyAccount, poolAccount: PoolAccount, currentTime: BN) => {
1932
+ profit: BN;
1933
+ loss: BN;
1934
+ };
1935
+ getSwapAmountAndFees: (poolName: string, tokenMintIn: PublicKey, tokenMintOut: PublicKey, amountIn: BN) => Promise<any>;
1936
+ getAum: (poolName: string) => Promise<any>;
1937
+ }