flash-sdk 1.0.133 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TradingAccount = void 0;
4
+ var TradingAccount = (function () {
5
+ function TradingAccount(publicKey, parseData) {
6
+ this.publicKey = publicKey;
7
+ Object.assign(this, parseData);
8
+ }
9
+ TradingAccount.from = function (publicKey, parseData) {
10
+ return new TradingAccount(publicKey, parseData);
11
+ };
12
+ TradingAccount.prototype.updatePoolData = function (parseData) {
13
+ Object.assign(this, parseData);
14
+ };
15
+ return TradingAccount;
16
+ }());
17
+ exports.TradingAccount = TradingAccount;
@@ -49,14 +49,27 @@ exports.pythPriceServiceConnection = new price_service_client_1.PriceServiceConn
49
49
  priceFeedRequestConfig: {},
50
50
  });
51
51
  var getPythnetOraclePrices = function (program, poolConfig, backupOracleSecretKey) { return __awaiter(void 0, void 0, void 0, function () {
52
- var pythPriceIds, currentPrices, backupOracleAccount, caches_1, permissionlessPythCache, message, signature, preInstruction;
52
+ var custodyMintKeys, pythPriceIds, _loop_1, _i, custodyMintKeys_1, custodyMintKey, currentPrices, backupOracleAccount, caches_1, permissionlessPythCache, message, signature, preInstruction;
53
53
  return __generator(this, function (_a) {
54
54
  switch (_a.label) {
55
55
  case 0:
56
- pythPriceIds = poolConfig.tokens.map(function (f) { return f.pythPriceId; });
56
+ custodyMintKeys = poolConfig.custodies.map(function (f) { return f.mintKey; });
57
+ pythPriceIds = [];
58
+ _loop_1 = function (custodyMintKey) {
59
+ var t = poolConfig.tokens.find(function (f) { return f.mintKey.equals(custodyMintKey); });
60
+ if (t) {
61
+ pythPriceIds.push(t.pythPriceId);
62
+ }
63
+ };
64
+ for (_i = 0, custodyMintKeys_1 = custodyMintKeys; _i < custodyMintKeys_1.length; _i++) {
65
+ custodyMintKey = custodyMintKeys_1[_i];
66
+ _loop_1(custodyMintKey);
67
+ }
57
68
  return [4, exports.pythPriceServiceConnection.getLatestPriceFeeds(pythPriceIds)];
58
69
  case 1:
59
70
  currentPrices = _a.sent();
71
+ if (!currentPrices)
72
+ return [2];
60
73
  backupOracleAccount = web3_js_1.Keypair.fromSecretKey(bs58_1.default.decode(backupOracleSecretKey));
61
74
  if (pythPriceIds.length === currentPrices.length) {
62
75
  caches_1 = currentPrices.map(function (price) {
@@ -66,7 +79,7 @@ var getPythnetOraclePrices = function (program, poolConfig, backupOracleSecretKe
66
79
  price: new bn_js_1.default(uncheckedPrice.price),
67
80
  expo: uncheckedPrice.expo,
68
81
  conf: new bn_js_1.default(uncheckedPrice.conf),
69
- ema: new bn_js_1.default(uncheckedEmaPrice.price),
82
+ emaPrice: new bn_js_1.default(uncheckedEmaPrice.price),
70
83
  publishTime: new bn_js_1.default(uncheckedPrice.publishTime)
71
84
  };
72
85
  });
@@ -1,9 +1,8 @@
1
1
  /// <reference types="bn.js" />
2
- import { Cluster } from '@solana/web3.js';
2
+ import { Cluster, PublicKey } from '@solana/web3.js';
3
3
  export declare const DEFAULT_CLUSTER: Cluster;
4
4
  export declare const DEFAULT_POOL: string;
5
5
  export declare const PERCENTAGE_DECIMALS = 4;
6
- export declare const PRICE_DECIMALS = 6;
7
6
  export declare const USD_DECIMALS = 6;
8
7
  export declare const BPS_DECIMALS = 4;
9
8
  export declare const BPS_POWER: number;
@@ -12,3 +11,4 @@ export declare const RATE_DECIMALS = 9;
12
11
  export declare const RATE_POWER: number;
13
12
  export declare const BN_ZERO: import("bn.js");
14
13
  export declare const BN_ONE: import("bn.js");
14
+ export declare const METAPLEX_PROGRAM_ID: PublicKey;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BN_ONE = exports.BN_ZERO = exports.RATE_POWER = exports.RATE_DECIMALS = exports.LP_DECIMALS = exports.BPS_POWER = exports.BPS_DECIMALS = exports.USD_DECIMALS = exports.PRICE_DECIMALS = exports.PERCENTAGE_DECIMALS = exports.DEFAULT_POOL = exports.DEFAULT_CLUSTER = void 0;
3
+ exports.METAPLEX_PROGRAM_ID = exports.BN_ONE = exports.BN_ZERO = exports.RATE_POWER = exports.RATE_DECIMALS = exports.LP_DECIMALS = exports.BPS_POWER = exports.BPS_DECIMALS = exports.USD_DECIMALS = exports.PERCENTAGE_DECIMALS = exports.DEFAULT_POOL = exports.DEFAULT_CLUSTER = void 0;
4
+ var web3_js_1 = require("@solana/web3.js");
4
5
  var bn_js_1 = require("bn.js");
5
6
  exports.DEFAULT_CLUSTER = 'devnet';
6
7
  exports.DEFAULT_POOL = 'pool1';
7
8
  exports.PERCENTAGE_DECIMALS = 4;
8
- exports.PRICE_DECIMALS = 6;
9
9
  exports.USD_DECIMALS = 6;
10
10
  exports.BPS_DECIMALS = 4;
11
11
  exports.BPS_POWER = Math.pow(10, (exports.BPS_DECIMALS));
@@ -14,3 +14,4 @@ exports.RATE_DECIMALS = 9;
14
14
  exports.RATE_POWER = Math.pow(10, (exports.RATE_DECIMALS));
15
15
  exports.BN_ZERO = new bn_js_1.BN(0);
16
16
  exports.BN_ONE = new bn_js_1.BN(1);
17
+ exports.METAPLEX_PROGRAM_ID = new web3_js_1.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
@@ -6,14 +6,14 @@ export type PerpComposability = {
6
6
  "name": "swapAndOpen";
7
7
  "accounts": [
8
8
  {
9
- "name": "delegate";
10
- "isMut": true;
11
- "isSigner": true;
9
+ "name": "perpProgram";
10
+ "isMut": false;
11
+ "isSigner": false;
12
12
  },
13
13
  {
14
14
  "name": "owner";
15
15
  "isMut": true;
16
- "isSigner": false;
16
+ "isSigner": true;
17
17
  },
18
18
  {
19
19
  "name": "fundingAccount";
@@ -36,7 +36,7 @@ export type PerpComposability = {
36
36
  "isSigner": false;
37
37
  },
38
38
  {
39
- "name": "pool";
39
+ "name": "swapPool";
40
40
  "isMut": true;
41
41
  "isSigner": false;
42
42
  },
@@ -50,11 +50,6 @@ export type PerpComposability = {
50
50
  "isMut": false;
51
51
  "isSigner": false;
52
52
  },
53
- {
54
- "name": "receivingCustodyCustomOracleAccount";
55
- "isMut": false;
56
- "isSigner": false;
57
- },
58
53
  {
59
54
  "name": "receivingCustodyTokenAccount";
60
55
  "isMut": true;
@@ -70,18 +65,13 @@ export type PerpComposability = {
70
65
  "isMut": false;
71
66
  "isSigner": false;
72
67
  },
73
- {
74
- "name": "dispensingCustodyCustomOracleAccount";
75
- "isMut": false;
76
- "isSigner": false;
77
- },
78
68
  {
79
69
  "name": "dispensingCustodyTokenAccount";
80
70
  "isMut": true;
81
71
  "isSigner": false;
82
72
  },
83
73
  {
84
- "name": "perpProgram";
74
+ "name": "positionPool";
85
75
  "isMut": false;
86
76
  "isSigner": false;
87
77
  },
@@ -91,20 +81,35 @@ export type PerpComposability = {
91
81
  "isSigner": false;
92
82
  },
93
83
  {
94
- "name": "custody";
84
+ "name": "market";
95
85
  "isMut": true;
96
86
  "isSigner": false;
97
87
  },
98
88
  {
99
- "name": "custodyOracleAccount";
89
+ "name": "targetCustody";
90
+ "isMut": false;
91
+ "isSigner": false;
92
+ },
93
+ {
94
+ "name": "targetOracleAccount";
100
95
  "isMut": false;
101
96
  "isSigner": false;
102
97
  },
103
98
  {
104
- "name": "custodyCustomOracleAccount";
99
+ "name": "collateralCustody";
100
+ "isMut": true;
101
+ "isSigner": false;
102
+ },
103
+ {
104
+ "name": "collateralOracleAccount";
105
105
  "isMut": false;
106
106
  "isSigner": false;
107
107
  },
108
+ {
109
+ "name": "collateralCustodyTokenAccount";
110
+ "isMut": true;
111
+ "isSigner": false;
112
+ },
108
113
  {
109
114
  "name": "systemProgram";
110
115
  "isMut": false;
@@ -139,14 +144,14 @@ export type PerpComposability = {
139
144
  "name": "swapAndAddCollateral";
140
145
  "accounts": [
141
146
  {
142
- "name": "delegate";
143
- "isMut": true;
144
- "isSigner": true;
147
+ "name": "perpProgram";
148
+ "isMut": false;
149
+ "isSigner": false;
145
150
  },
146
151
  {
147
152
  "name": "owner";
148
153
  "isMut": true;
149
- "isSigner": false;
154
+ "isSigner": true;
150
155
  },
151
156
  {
152
157
  "name": "fundingAccount";
@@ -169,7 +174,7 @@ export type PerpComposability = {
169
174
  "isSigner": false;
170
175
  },
171
176
  {
172
- "name": "pool";
177
+ "name": "swapPool";
173
178
  "isMut": true;
174
179
  "isSigner": false;
175
180
  },
@@ -183,11 +188,6 @@ export type PerpComposability = {
183
188
  "isMut": false;
184
189
  "isSigner": false;
185
190
  },
186
- {
187
- "name": "receivingCustodyCustomOracleAccount";
188
- "isMut": false;
189
- "isSigner": false;
190
- },
191
191
  {
192
192
  "name": "receivingCustodyTokenAccount";
193
193
  "isMut": true;
@@ -203,18 +203,13 @@ export type PerpComposability = {
203
203
  "isMut": false;
204
204
  "isSigner": false;
205
205
  },
206
- {
207
- "name": "dispensingCustodyCustomOracleAccount";
208
- "isMut": false;
209
- "isSigner": false;
210
- },
211
206
  {
212
207
  "name": "dispensingCustodyTokenAccount";
213
208
  "isMut": true;
214
209
  "isSigner": false;
215
210
  },
216
211
  {
217
- "name": "perpProgram";
212
+ "name": "positionPool";
218
213
  "isMut": false;
219
214
  "isSigner": false;
220
215
  },
@@ -224,20 +219,35 @@ export type PerpComposability = {
224
219
  "isSigner": false;
225
220
  },
226
221
  {
227
- "name": "custody";
222
+ "name": "market";
228
223
  "isMut": true;
229
224
  "isSigner": false;
230
225
  },
231
226
  {
232
- "name": "custodyOracleAccount";
227
+ "name": "targetCustody";
233
228
  "isMut": false;
234
229
  "isSigner": false;
235
230
  },
236
231
  {
237
- "name": "custodyCustomOracleAccount";
232
+ "name": "targetOracleAccount";
238
233
  "isMut": false;
239
234
  "isSigner": false;
240
235
  },
236
+ {
237
+ "name": "collateralCustody";
238
+ "isMut": true;
239
+ "isSigner": false;
240
+ },
241
+ {
242
+ "name": "collateralOracleAccount";
243
+ "isMut": false;
244
+ "isSigner": false;
245
+ },
246
+ {
247
+ "name": "collateralCustodyTokenAccount";
248
+ "isMut": true;
249
+ "isSigner": false;
250
+ },
241
251
  {
242
252
  "name": "tokenProgram";
243
253
  "isMut": false;
@@ -267,14 +277,14 @@ export type PerpComposability = {
267
277
  "name": "closeAndSwap";
268
278
  "accounts": [
269
279
  {
270
- "name": "delegate";
271
- "isMut": true;
272
- "isSigner": true;
280
+ "name": "perpProgram";
281
+ "isMut": false;
282
+ "isSigner": false;
273
283
  },
274
284
  {
275
285
  "name": "owner";
276
286
  "isMut": true;
277
- "isSigner": false;
287
+ "isSigner": true;
278
288
  },
279
289
  {
280
290
  "name": "fundingAccount";
@@ -297,7 +307,7 @@ export type PerpComposability = {
297
307
  "isSigner": false;
298
308
  },
299
309
  {
300
- "name": "pool";
310
+ "name": "swapPool";
301
311
  "isMut": true;
302
312
  "isSigner": false;
303
313
  },
@@ -311,11 +321,6 @@ export type PerpComposability = {
311
321
  "isMut": false;
312
322
  "isSigner": false;
313
323
  },
314
- {
315
- "name": "receivingCustodyCustomOracleAccount";
316
- "isMut": false;
317
- "isSigner": false;
318
- },
319
324
  {
320
325
  "name": "receivingCustodyTokenAccount";
321
326
  "isMut": true;
@@ -331,18 +336,13 @@ export type PerpComposability = {
331
336
  "isMut": false;
332
337
  "isSigner": false;
333
338
  },
334
- {
335
- "name": "dispensingCustodyCustomOracleAccount";
336
- "isMut": false;
337
- "isSigner": false;
338
- },
339
339
  {
340
340
  "name": "dispensingCustodyTokenAccount";
341
341
  "isMut": true;
342
342
  "isSigner": false;
343
343
  },
344
344
  {
345
- "name": "perpProgram";
345
+ "name": "positionPool";
346
346
  "isMut": false;
347
347
  "isSigner": false;
348
348
  },
@@ -352,20 +352,35 @@ export type PerpComposability = {
352
352
  "isSigner": false;
353
353
  },
354
354
  {
355
- "name": "custody";
355
+ "name": "market";
356
356
  "isMut": true;
357
357
  "isSigner": false;
358
358
  },
359
359
  {
360
- "name": "custodyOracleAccount";
360
+ "name": "targetCustody";
361
361
  "isMut": false;
362
362
  "isSigner": false;
363
363
  },
364
364
  {
365
- "name": "custodyCustomOracleAccount";
365
+ "name": "targetOracleAccount";
366
366
  "isMut": false;
367
367
  "isSigner": false;
368
368
  },
369
+ {
370
+ "name": "collateralCustody";
371
+ "isMut": true;
372
+ "isSigner": false;
373
+ },
374
+ {
375
+ "name": "collateralOracleAccount";
376
+ "isMut": false;
377
+ "isSigner": false;
378
+ },
379
+ {
380
+ "name": "collateralCustodyTokenAccount";
381
+ "isMut": true;
382
+ "isSigner": false;
383
+ },
369
384
  {
370
385
  "name": "tokenProgram";
371
386
  "isMut": false;
@@ -395,14 +410,14 @@ export type PerpComposability = {
395
410
  "name": "removeCollateralAndSwap";
396
411
  "accounts": [
397
412
  {
398
- "name": "delegate";
399
- "isMut": true;
400
- "isSigner": true;
413
+ "name": "perpProgram";
414
+ "isMut": false;
415
+ "isSigner": false;
401
416
  },
402
417
  {
403
418
  "name": "owner";
404
419
  "isMut": true;
405
- "isSigner": false;
420
+ "isSigner": true;
406
421
  },
407
422
  {
408
423
  "name": "fundingAccount";
@@ -425,7 +440,7 @@ export type PerpComposability = {
425
440
  "isSigner": false;
426
441
  },
427
442
  {
428
- "name": "pool";
443
+ "name": "swapPool";
429
444
  "isMut": true;
430
445
  "isSigner": false;
431
446
  },
@@ -439,11 +454,6 @@ export type PerpComposability = {
439
454
  "isMut": false;
440
455
  "isSigner": false;
441
456
  },
442
- {
443
- "name": "receivingCustodyCustomOracleAccount";
444
- "isMut": false;
445
- "isSigner": false;
446
- },
447
457
  {
448
458
  "name": "receivingCustodyTokenAccount";
449
459
  "isMut": true;
@@ -459,18 +469,13 @@ export type PerpComposability = {
459
469
  "isMut": false;
460
470
  "isSigner": false;
461
471
  },
462
- {
463
- "name": "dispensingCustodyCustomOracleAccount";
464
- "isMut": false;
465
- "isSigner": false;
466
- },
467
472
  {
468
473
  "name": "dispensingCustodyTokenAccount";
469
474
  "isMut": true;
470
475
  "isSigner": false;
471
476
  },
472
477
  {
473
- "name": "perpProgram";
478
+ "name": "positionPool";
474
479
  "isMut": false;
475
480
  "isSigner": false;
476
481
  },
@@ -480,20 +485,35 @@ export type PerpComposability = {
480
485
  "isSigner": false;
481
486
  },
482
487
  {
483
- "name": "custody";
488
+ "name": "market";
484
489
  "isMut": true;
485
490
  "isSigner": false;
486
491
  },
487
492
  {
488
- "name": "custodyOracleAccount";
493
+ "name": "targetCustody";
489
494
  "isMut": false;
490
495
  "isSigner": false;
491
496
  },
492
497
  {
493
- "name": "custodyCustomOracleAccount";
498
+ "name": "targetOracleAccount";
494
499
  "isMut": false;
495
500
  "isSigner": false;
496
501
  },
502
+ {
503
+ "name": "collateralCustody";
504
+ "isMut": true;
505
+ "isSigner": false;
506
+ },
507
+ {
508
+ "name": "collateralOracleAccount";
509
+ "isMut": false;
510
+ "isSigner": false;
511
+ },
512
+ {
513
+ "name": "collateralCustodyTokenAccount";
514
+ "isMut": true;
515
+ "isSigner": false;
516
+ },
497
517
  {
498
518
  "name": "tokenProgram";
499
519
  "isMut": false;
@@ -535,17 +555,19 @@ export type PerpComposability = {
535
555
  "type": "u64";
536
556
  },
537
557
  {
538
- "name": "openPrice";
539
- "type": "u64";
558
+ "name": "openPriceWithSlippage";
559
+ "type": {
560
+ "defined": "OraclesPrice";
561
+ };
540
562
  },
541
563
  {
542
- "name": "openSize";
564
+ "name": "openSizeAmount";
543
565
  "type": "u64";
544
566
  },
545
567
  {
546
- "name": "side";
568
+ "name": "privilege";
547
569
  "type": {
548
- "defined": "Side";
570
+ "defined": "Privilege";
549
571
  };
550
572
  }
551
573
  ];
@@ -567,6 +589,22 @@ export type PerpComposability = {
567
589
  ];
568
590
  };
569
591
  },
592
+ {
593
+ "name": "OraclesPrice";
594
+ "type": {
595
+ "kind": "struct";
596
+ "fields": [
597
+ {
598
+ "name": "price";
599
+ "type": "u64";
600
+ },
601
+ {
602
+ "name": "exponent";
603
+ "type": "i32";
604
+ }
605
+ ];
606
+ };
607
+ },
570
608
  {
571
609
  "name": "CloseAndSwapParams";
572
610
  "type": {
@@ -577,8 +615,16 @@ export type PerpComposability = {
577
615
  "type": "u64";
578
616
  },
579
617
  {
580
- "name": "closePrice";
581
- "type": "u64";
618
+ "name": "closePriceWithSlippage";
619
+ "type": {
620
+ "defined": "OraclesPrice";
621
+ };
622
+ },
623
+ {
624
+ "name": "privilege";
625
+ "type": {
626
+ "defined": "Privilege";
627
+ };
582
628
  }
583
629
  ];
584
630
  };
@@ -600,7 +646,7 @@ export type PerpComposability = {
600
646
  };
601
647
  },
602
648
  {
603
- "name": "Side";
649
+ "name": "Privilege";
604
650
  "type": {
605
651
  "kind": "enum";
606
652
  "variants": [
@@ -608,10 +654,10 @@ export type PerpComposability = {
608
654
  "name": "None";
609
655
  },
610
656
  {
611
- "name": "Long";
657
+ "name": "NFT";
612
658
  },
613
659
  {
614
- "name": "Short";
660
+ "name": "Referral";
615
661
  }
616
662
  ];
617
663
  };