@drift-labs/sdk 0.2.0-master.1 → 0.2.0-master.4

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.
@@ -234,8 +234,14 @@ export class BigNum {
234
234
  return printString;
235
235
  }
236
236
 
237
- public prettyPrint(): string {
238
- const [leftSide, rightSide] = this.printShort().split(BigNum.delim);
237
+ public prettyPrint(
238
+ useTradePrecision?: boolean,
239
+ precisionOverride?: number
240
+ ): string {
241
+ const [leftSide, rightSide] = this.printShort(
242
+ useTradePrecision,
243
+ precisionOverride
244
+ ).split(BigNum.delim);
239
245
 
240
246
  let formattedLeftSide = leftSide;
241
247
 
@@ -374,13 +380,24 @@ export class BigNum {
374
380
  return this.toPrecision(6, true);
375
381
  }
376
382
 
377
- public toNotional(): string {
378
- return `${this.lt(BigNum.zero()) ? `-` : ``}$${BigNum.fromPrint(
379
- this.toFixed(2),
380
- new BN(2)
381
- )
382
- .prettyPrint()
383
- .replace('-', '')}`;
383
+ /**
384
+ * Print dollar formatted value. Defaults to fixed decimals two unless a given precision is given.
385
+ * @param useTradePrecision
386
+ * @param precisionOverride
387
+ * @returns
388
+ */
389
+ public toNotional(
390
+ useTradePrecision?: boolean,
391
+ precisionOverride?: number
392
+ ): string {
393
+ const prefix = `${this.lt(BigNum.zero()) ? `-` : ``}$`;
394
+
395
+ const val =
396
+ useTradePrecision || precisionOverride
397
+ ? this.prettyPrint(useTradePrecision, precisionOverride)
398
+ : BigNum.fromPrint(this.toFixed(2), new BN(2)).prettyPrint();
399
+
400
+ return `${prefix}${val.replace('-', '')}`;
384
401
  }
385
402
 
386
403
  public toMillified(precision = 3): string {
@@ -381,11 +381,6 @@
381
381
  "name": "authority",
382
382
  "isMut": false,
383
383
  "isSigner": true
384
- },
385
- {
386
- "name": "oracle",
387
- "isMut": false,
388
- "isSigner": false
389
384
  }
390
385
  ],
391
386
  "args": [
@@ -414,17 +409,14 @@
414
409
  "name": "authority",
415
410
  "isMut": false,
416
411
  "isSigner": true
417
- },
418
- {
419
- "name": "oracle",
420
- "isMut": false,
421
- "isSigner": false
422
412
  }
423
413
  ],
424
414
  "args": [
425
415
  {
426
416
  "name": "orderId",
427
- "type": "u64"
417
+ "type": {
418
+ "option": "u64"
419
+ }
428
420
  }
429
421
  ]
430
422
  },
@@ -445,11 +437,6 @@
445
437
  "name": "authority",
446
438
  "isMut": false,
447
439
  "isSigner": true
448
- },
449
- {
450
- "name": "oracle",
451
- "isMut": false,
452
- "isSigner": false
453
440
  }
454
441
  ],
455
442
  "args": [
@@ -481,17 +468,14 @@
481
468
  "name": "user",
482
469
  "isMut": true,
483
470
  "isSigner": false
484
- },
485
- {
486
- "name": "oracle",
487
- "isMut": false,
488
- "isSigner": false
489
471
  }
490
472
  ],
491
473
  "args": [
492
474
  {
493
475
  "name": "orderId",
494
- "type": "u64"
476
+ "type": {
477
+ "option": "u64"
478
+ }
495
479
  },
496
480
  {
497
481
  "name": "makerOrderId",
@@ -518,11 +502,6 @@
518
502
  "name": "authority",
519
503
  "isMut": false,
520
504
  "isSigner": true
521
- },
522
- {
523
- "name": "oracle",
524
- "isMut": false,
525
- "isSigner": false
526
505
  }
527
506
  ],
528
507
  "args": [
@@ -562,11 +541,6 @@
562
541
  "name": "authority",
563
542
  "isMut": false,
564
543
  "isSigner": true
565
- },
566
- {
567
- "name": "oracle",
568
- "isMut": false,
569
- "isSigner": false
570
544
  }
571
545
  ],
572
546
  "args": [
@@ -582,6 +556,37 @@
582
556
  }
583
557
  ]
584
558
  },
559
+ {
560
+ "name": "triggerOrder",
561
+ "accounts": [
562
+ {
563
+ "name": "state",
564
+ "isMut": false,
565
+ "isSigner": false
566
+ },
567
+ {
568
+ "name": "authority",
569
+ "isMut": false,
570
+ "isSigner": true
571
+ },
572
+ {
573
+ "name": "filler",
574
+ "isMut": true,
575
+ "isSigner": false
576
+ },
577
+ {
578
+ "name": "user",
579
+ "isMut": true,
580
+ "isSigner": false
581
+ }
582
+ ],
583
+ "args": [
584
+ {
585
+ "name": "orderId",
586
+ "type": "u64"
587
+ }
588
+ ]
589
+ },
585
590
  {
586
591
  "name": "updateAmms",
587
592
  "accounts": [
@@ -993,11 +998,6 @@
993
998
  "name": "user",
994
999
  "isMut": true,
995
1000
  "isSigner": false
996
- },
997
- {
998
- "name": "market",
999
- "isMut": false,
1000
- "isSigner": false
1001
1001
  }
1002
1002
  ],
1003
1003
  "args": []
@@ -1389,6 +1389,32 @@
1389
1389
  }
1390
1390
  ]
1391
1391
  },
1392
+ {
1393
+ "name": "updateMarketMaxSpread",
1394
+ "accounts": [
1395
+ {
1396
+ "name": "admin",
1397
+ "isMut": false,
1398
+ "isSigner": true
1399
+ },
1400
+ {
1401
+ "name": "state",
1402
+ "isMut": false,
1403
+ "isSigner": false
1404
+ },
1405
+ {
1406
+ "name": "market",
1407
+ "isMut": true,
1408
+ "isSigner": false
1409
+ }
1410
+ ],
1411
+ "args": [
1412
+ {
1413
+ "name": "maxSpread",
1414
+ "type": "u32"
1415
+ }
1416
+ ]
1417
+ },
1392
1418
  {
1393
1419
  "name": "updateMarketBaseAssetAmountStepSize",
1394
1420
  "accounts": [
@@ -1415,6 +1441,58 @@
1415
1441
  }
1416
1442
  ]
1417
1443
  },
1444
+ {
1445
+ "name": "updateMarketMaxSlippageRatio",
1446
+ "accounts": [
1447
+ {
1448
+ "name": "admin",
1449
+ "isMut": false,
1450
+ "isSigner": true
1451
+ },
1452
+ {
1453
+ "name": "state",
1454
+ "isMut": false,
1455
+ "isSigner": false
1456
+ },
1457
+ {
1458
+ "name": "market",
1459
+ "isMut": true,
1460
+ "isSigner": false
1461
+ }
1462
+ ],
1463
+ "args": [
1464
+ {
1465
+ "name": "maxSlippageRatio",
1466
+ "type": "u16"
1467
+ }
1468
+ ]
1469
+ },
1470
+ {
1471
+ "name": "updateMaxBaseAssetAmountRatio",
1472
+ "accounts": [
1473
+ {
1474
+ "name": "admin",
1475
+ "isMut": false,
1476
+ "isSigner": true
1477
+ },
1478
+ {
1479
+ "name": "state",
1480
+ "isMut": false,
1481
+ "isSigner": false
1482
+ },
1483
+ {
1484
+ "name": "market",
1485
+ "isMut": true,
1486
+ "isSigner": false
1487
+ }
1488
+ ],
1489
+ "args": [
1490
+ {
1491
+ "name": "maxBaseAssetAmountRatio",
1492
+ "type": "u16"
1493
+ }
1494
+ ]
1495
+ },
1418
1496
  {
1419
1497
  "name": "updateAdmin",
1420
1498
  "accounts": [
@@ -1537,7 +1615,7 @@
1537
1615
  ]
1538
1616
  },
1539
1617
  {
1540
- "name": "updateOrderAuctionTime",
1618
+ "name": "updateAuctionDuration",
1541
1619
  "accounts": [
1542
1620
  {
1543
1621
  "name": "admin",
@@ -1552,7 +1630,11 @@
1552
1630
  ],
1553
1631
  "args": [
1554
1632
  {
1555
- "name": "orderAuctionTime",
1633
+ "name": "minAuctionDuration",
1634
+ "type": "u8"
1635
+ },
1636
+ {
1637
+ "name": "maxAuctionDuration",
1556
1638
  "type": "u8"
1557
1639
  }
1558
1640
  ]
@@ -1859,7 +1941,11 @@
1859
1941
  "type": "u128"
1860
1942
  },
1861
1943
  {
1862
- "name": "orderAuctionDuration",
1944
+ "name": "minAuctionDuration",
1945
+ "type": "u8"
1946
+ },
1947
+ {
1948
+ "name": "maxAuctionDuration",
1863
1949
  "type": "u8"
1864
1950
  },
1865
1951
  {
@@ -1964,10 +2050,6 @@
1964
2050
  "name": "userOrderId",
1965
2051
  "type": "u8"
1966
2052
  },
1967
- {
1968
- "name": "quoteAssetAmount",
1969
- "type": "u128"
1970
- },
1971
2053
  {
1972
2054
  "name": "baseAssetAmount",
1973
2055
  "type": "u128"
@@ -2016,6 +2098,10 @@
2016
2098
  "name": "oraclePriceOffset",
2017
2099
  "type": "i128"
2018
2100
  },
2101
+ {
2102
+ "name": "auctionDuration",
2103
+ "type": "u8"
2104
+ },
2019
2105
  {
2020
2106
  "name": "padding0",
2021
2107
  "type": "bool"
@@ -2178,6 +2264,14 @@
2178
2264
  "name": "minimumQuoteAssetTradeSize",
2179
2265
  "type": "u128"
2180
2266
  },
2267
+ {
2268
+ "name": "maxBaseAssetAmountRatio",
2269
+ "type": "u16"
2270
+ },
2271
+ {
2272
+ "name": "maxSlippageRatio",
2273
+ "type": "u16"
2274
+ },
2181
2275
  {
2182
2276
  "name": "baseAssetAmountStepSize",
2183
2277
  "type": "u128"
@@ -2194,6 +2288,10 @@
2194
2288
  "name": "shortSpread",
2195
2289
  "type": "u128"
2196
2290
  },
2291
+ {
2292
+ "name": "maxSpread",
2293
+ "type": "u32"
2294
+ },
2197
2295
  {
2198
2296
  "name": "askBaseAssetReserve",
2199
2297
  "type": "u128"
@@ -2252,7 +2350,7 @@
2252
2350
  },
2253
2351
  {
2254
2352
  "name": "totalFeeMinusDistributions",
2255
- "type": "u128"
2353
+ "type": "i128"
2256
2354
  },
2257
2355
  {
2258
2356
  "name": "totalFeeWithdrawn",
@@ -2658,10 +2756,6 @@
2658
2756
  "defined": "PositionDirection"
2659
2757
  }
2660
2758
  },
2661
- {
2662
- "name": "quoteAssetAmount",
2663
- "type": "u128"
2664
- },
2665
2759
  {
2666
2760
  "name": "baseAssetAmount",
2667
2761
  "type": "u128"
@@ -2712,6 +2806,10 @@
2712
2806
  "defined": "OrderTriggerCondition"
2713
2807
  }
2714
2808
  },
2809
+ {
2810
+ "name": "triggered",
2811
+ "type": "bool"
2812
+ },
2715
2813
  {
2716
2814
  "name": "referrer",
2717
2815
  "type": "publicKey"
@@ -2848,6 +2946,9 @@
2848
2946
  {
2849
2947
  "name": "Fill"
2850
2948
  },
2949
+ {
2950
+ "name": "Trigger"
2951
+ },
2851
2952
  {
2852
2953
  "name": "Expire"
2853
2954
  }
@@ -2867,6 +2968,12 @@
2867
2968
  },
2868
2969
  {
2869
2970
  "name": "OraclePriceBreachedLimitPrice"
2971
+ },
2972
+ {
2973
+ "name": "MarketOrderFilledToLimitPrice"
2974
+ },
2975
+ {
2976
+ "name": "MarketOrderAuctionExpired"
2870
2977
  }
2871
2978
  ]
2872
2979
  }
@@ -3016,6 +3123,11 @@
3016
3123
  "type": "u64",
3017
3124
  "index": false
3018
3125
  },
3126
+ {
3127
+ "name": "oraclePrice",
3128
+ "type": "i128",
3129
+ "index": false
3130
+ },
3019
3131
  {
3020
3132
  "name": "from",
3021
3133
  "type": {
@@ -3217,7 +3329,7 @@
3217
3329
  },
3218
3330
  {
3219
3331
  "name": "totalFeeMinusDistributions",
3220
- "type": "u128",
3332
+ "type": "i128",
3221
3333
  "index": false
3222
3334
  },
3223
3335
  {
@@ -3349,6 +3461,16 @@
3349
3461
  },
3350
3462
  "index": false
3351
3463
  },
3464
+ {
3465
+ "name": "makerUnsettledPnl",
3466
+ "type": "i128",
3467
+ "index": false
3468
+ },
3469
+ {
3470
+ "name": "takerUnsettledPnl",
3471
+ "type": "i128",
3472
+ "index": false
3473
+ },
3352
3474
  {
3353
3475
  "name": "action",
3354
3476
  "type": {
@@ -3639,8 +3761,8 @@
3639
3761
  },
3640
3762
  {
3641
3763
  "code": 6044,
3642
- "name": "CouldNotFillOrder",
3643
- "msg": "CouldNotFillOrder"
3764
+ "name": "FillOrderDidNotUpdateState",
3765
+ "msg": "FillOrderDidNotUpdateState"
3644
3766
  },
3645
3767
  {
3646
3768
  "code": 6045,
@@ -3854,6 +3976,21 @@
3854
3976
  },
3855
3977
  {
3856
3978
  "code": 6087,
3979
+ "name": "OrderMustBeTriggeredFirst",
3980
+ "msg": "OrderMustBeTriggeredFirst"
3981
+ },
3982
+ {
3983
+ "code": 6088,
3984
+ "name": "OrderNotTriggerable",
3985
+ "msg": "OrderNotTriggerable"
3986
+ },
3987
+ {
3988
+ "code": 6089,
3989
+ "name": "OrderDidNotSatisfyTriggerCondition",
3990
+ "msg": "OrderDidNotSatisfyTriggerCondition"
3991
+ },
3992
+ {
3993
+ "code": 6090,
3857
3994
  "name": "DefaultError",
3858
3995
  "msg": "DefaultError"
3859
3996
  }
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { BN } from '@project-serum/anchor';
2
2
  import { PublicKey } from '@solana/web3.js';
3
+ import pyth from '@pythnetwork/client';
3
4
 
4
5
  export * from './mockUSDCFaucet';
5
6
  export * from './oracles/types';
@@ -49,4 +50,4 @@ export * from './math/bankBalance';
49
50
  export * from './constants/banks';
50
51
  export * from './clearingHouseConfig';
51
52
 
52
- export { BN, PublicKey };
53
+ export { BN, PublicKey, pyth };