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