flash-sdk 1.0.4 → 1.0.6

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