@drift-labs/sdk 0.1.18-master.7 → 0.1.18-orders.2

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 (136) hide show
  1. package/lib/accounts/bulkAccountLoader.d.ts +32 -0
  2. package/lib/accounts/bulkAccountLoader.js +156 -0
  3. package/lib/accounts/bulkUserSubscription.d.ts +7 -0
  4. package/lib/accounts/bulkUserSubscription.js +28 -0
  5. package/lib/accounts/pollingClearingHouseAccountSubscriber.d.ts +49 -0
  6. package/lib/accounts/pollingClearingHouseAccountSubscriber.js +228 -0
  7. package/lib/accounts/pollingTokenAccountSubscriber.d.ts +25 -0
  8. package/lib/accounts/pollingTokenAccountSubscriber.js +79 -0
  9. package/lib/accounts/pollingUserAccountSubscriber.d.ts +32 -0
  10. package/lib/accounts/pollingUserAccountSubscriber.js +133 -0
  11. package/lib/accounts/types.d.ts +34 -3
  12. package/lib/accounts/utils.d.ts +1 -0
  13. package/lib/accounts/utils.js +7 -0
  14. package/lib/accounts/webSocketAccountSubscriber.d.ts +0 -1
  15. package/lib/accounts/{defaultClearingHouseAccountSubscriber.d.ts → webSocketClearingHouseAccountSubscriber.d.ts} +8 -3
  16. package/lib/accounts/{defaultClearingHouseAccountSubscriber.js → webSocketClearingHouseAccountSubscriber.js} +30 -4
  17. package/lib/accounts/{defaultUserAccountSubscriber.d.ts → webSocketUserAccountSubscriber.d.ts} +6 -3
  18. package/lib/accounts/{defaultUserAccountSubscriber.js → webSocketUserAccountSubscriber.js} +16 -4
  19. package/lib/addresses.d.ts +4 -1
  20. package/lib/addresses.js +28 -1
  21. package/lib/admin.d.ts +11 -4
  22. package/lib/admin.js +71 -17
  23. package/lib/assert/assert.d.ts +0 -1
  24. package/lib/clearingHouse.d.ts +35 -4
  25. package/lib/clearingHouse.js +294 -23
  26. package/lib/clearingHouseUser.d.ts +19 -18
  27. package/lib/clearingHouseUser.js +129 -101
  28. package/lib/config.d.ts +0 -1
  29. package/lib/config.js +1 -1
  30. package/lib/constants/markets.d.ts +0 -1
  31. package/lib/constants/markets.js +13 -5
  32. package/lib/constants/numericConstants.d.ts +0 -1
  33. package/lib/examples/makeTradeExample.d.ts +0 -1
  34. package/lib/examples/makeTradeExample.js +6 -6
  35. package/lib/factory/clearingHouse.d.ts +25 -0
  36. package/lib/factory/clearingHouse.js +64 -0
  37. package/lib/factory/clearingHouseUser.d.ts +19 -0
  38. package/lib/factory/clearingHouseUser.js +34 -0
  39. package/lib/idl/clearing_house.json +1077 -54
  40. package/lib/index.d.ts +12 -4
  41. package/lib/index.js +17 -4
  42. package/lib/math/amm.d.ts +1 -1
  43. package/lib/math/amm.js +38 -15
  44. package/lib/math/conversion.d.ts +0 -1
  45. package/lib/math/conversion.js +1 -1
  46. package/lib/math/funding.d.ts +0 -1
  47. package/lib/math/funding.js +1 -1
  48. package/lib/math/insuranceFund.d.ts +0 -1
  49. package/lib/math/market.d.ts +2 -2
  50. package/lib/math/market.js +12 -2
  51. package/lib/math/orders.d.ts +3 -0
  52. package/lib/math/orders.js +30 -0
  53. package/lib/math/position.d.ts +4 -2
  54. package/lib/math/position.js +19 -5
  55. package/lib/math/trade.d.ts +0 -1
  56. package/lib/math/trade.js +16 -16
  57. package/lib/math/utils.d.ts +2 -3
  58. package/lib/math/utils.js +6 -3
  59. package/lib/mockUSDCFaucet.d.ts +0 -1
  60. package/lib/orderParams.d.ts +7 -0
  61. package/lib/orderParams.js +108 -0
  62. package/lib/orders.d.ts +5 -0
  63. package/lib/orders.js +136 -0
  64. package/lib/pythClient.d.ts +0 -1
  65. package/lib/pythClient.js +1 -1
  66. package/lib/token/index.d.ts +3 -0
  67. package/lib/token/index.js +38 -0
  68. package/lib/tx/defaultTxSender.d.ts +0 -1
  69. package/lib/tx/types.d.ts +0 -1
  70. package/lib/tx/utils.d.ts +0 -1
  71. package/lib/types.d.ts +144 -2
  72. package/lib/types.js +36 -1
  73. package/lib/util/computeUnits.d.ts +0 -1
  74. package/lib/util/tps.d.ts +0 -1
  75. package/lib/wallet.d.ts +0 -1
  76. package/package.json +3 -3
  77. package/src/accounts/bulkAccountLoader.ts +195 -0
  78. package/src/accounts/bulkUserSubscription.ts +28 -0
  79. package/src/accounts/pollingClearingHouseAccountSubscriber.ts +326 -0
  80. package/src/accounts/pollingTokenAccountSubscriber.ts +99 -0
  81. package/src/accounts/pollingUserAccountSubscriber.ts +186 -0
  82. package/src/accounts/types.ts +43 -1
  83. package/src/accounts/utils.ts +3 -0
  84. package/src/accounts/{defaultClearingHouseAccountSubscriber.ts → webSocketClearingHouseAccountSubscriber.ts} +51 -1
  85. package/src/accounts/{defaultUserAccountSubscriber.ts → webSocketUserAccountSubscriber.ts} +33 -3
  86. package/src/addresses.ts +37 -0
  87. package/src/admin.ts +111 -24
  88. package/src/clearingHouse.ts +399 -22
  89. package/src/clearingHouseUser.ts +179 -107
  90. package/src/config.ts +1 -1
  91. package/src/constants/markets.ts +13 -5
  92. package/src/factory/clearingHouse.ts +125 -0
  93. package/src/factory/clearingHouseUser.ts +73 -0
  94. package/src/idl/clearing_house.json +1077 -54
  95. package/src/index.ts +12 -3
  96. package/src/math/amm.ts +47 -14
  97. package/src/math/market.ts +28 -2
  98. package/src/math/orders.ts +39 -0
  99. package/src/math/position.ts +23 -3
  100. package/src/math/utils.ts +1 -1
  101. package/src/orderParams.ts +151 -0
  102. package/src/orders.ts +230 -0
  103. package/src/token/index.ts +37 -0
  104. package/src/types.ts +128 -1
  105. package/tsconfig.json +0 -1
  106. package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts.map +0 -1
  107. package/lib/accounts/defaultUserAccountSubscriber.d.ts.map +0 -1
  108. package/lib/accounts/types.d.ts.map +0 -1
  109. package/lib/accounts/webSocketAccountSubscriber.d.ts.map +0 -1
  110. package/lib/addresses.d.ts.map +0 -1
  111. package/lib/admin.d.ts.map +0 -1
  112. package/lib/assert/assert.d.ts.map +0 -1
  113. package/lib/clearingHouse.d.ts.map +0 -1
  114. package/lib/clearingHouseUser.d.ts.map +0 -1
  115. package/lib/config.d.ts.map +0 -1
  116. package/lib/constants/markets.d.ts.map +0 -1
  117. package/lib/constants/numericConstants.d.ts.map +0 -1
  118. package/lib/examples/makeTradeExample.d.ts.map +0 -1
  119. package/lib/index.d.ts.map +0 -1
  120. package/lib/math/amm.d.ts.map +0 -1
  121. package/lib/math/conversion.d.ts.map +0 -1
  122. package/lib/math/funding.d.ts.map +0 -1
  123. package/lib/math/insuranceFund.d.ts.map +0 -1
  124. package/lib/math/market.d.ts.map +0 -1
  125. package/lib/math/position.d.ts.map +0 -1
  126. package/lib/math/trade.d.ts.map +0 -1
  127. package/lib/math/utils.d.ts.map +0 -1
  128. package/lib/mockUSDCFaucet.d.ts.map +0 -1
  129. package/lib/pythClient.d.ts.map +0 -1
  130. package/lib/tx/defaultTxSender.d.ts.map +0 -1
  131. package/lib/tx/types.d.ts.map +0 -1
  132. package/lib/tx/utils.d.ts.map +0 -1
  133. package/lib/types.d.ts.map +0 -1
  134. package/lib/util/computeUnits.d.ts.map +0 -1
  135. package/lib/util/tps.d.ts.map +0 -1
  136. package/lib/wallet.d.ts.map +0 -1
@@ -126,6 +126,47 @@
126
126
  ],
127
127
  "args": []
128
128
  },
129
+ {
130
+ "name": "initializeOrderState",
131
+ "accounts": [
132
+ {
133
+ "name": "admin",
134
+ "isMut": false,
135
+ "isSigner": true
136
+ },
137
+ {
138
+ "name": "state",
139
+ "isMut": true,
140
+ "isSigner": false
141
+ },
142
+ {
143
+ "name": "orderState",
144
+ "isMut": true,
145
+ "isSigner": false
146
+ },
147
+ {
148
+ "name": "orderHistory",
149
+ "isMut": true,
150
+ "isSigner": false
151
+ },
152
+ {
153
+ "name": "rent",
154
+ "isMut": false,
155
+ "isSigner": false
156
+ },
157
+ {
158
+ "name": "systemProgram",
159
+ "isMut": false,
160
+ "isSigner": false
161
+ }
162
+ ],
163
+ "args": [
164
+ {
165
+ "name": "orderHouseNonce",
166
+ "type": "u8"
167
+ }
168
+ ]
169
+ },
129
170
  {
130
171
  "name": "initializeMarket",
131
172
  "accounts": [
@@ -448,6 +489,335 @@
448
489
  }
449
490
  ]
450
491
  },
492
+ {
493
+ "name": "placeOrder",
494
+ "accounts": [
495
+ {
496
+ "name": "state",
497
+ "isMut": false,
498
+ "isSigner": false
499
+ },
500
+ {
501
+ "name": "orderState",
502
+ "isMut": false,
503
+ "isSigner": false
504
+ },
505
+ {
506
+ "name": "user",
507
+ "isMut": false,
508
+ "isSigner": false
509
+ },
510
+ {
511
+ "name": "authority",
512
+ "isMut": false,
513
+ "isSigner": true
514
+ },
515
+ {
516
+ "name": "markets",
517
+ "isMut": false,
518
+ "isSigner": false
519
+ },
520
+ {
521
+ "name": "userPositions",
522
+ "isMut": true,
523
+ "isSigner": false
524
+ },
525
+ {
526
+ "name": "userOrders",
527
+ "isMut": true,
528
+ "isSigner": false
529
+ },
530
+ {
531
+ "name": "fundingPaymentHistory",
532
+ "isMut": true,
533
+ "isSigner": false
534
+ },
535
+ {
536
+ "name": "orderHistory",
537
+ "isMut": true,
538
+ "isSigner": false
539
+ }
540
+ ],
541
+ "args": [
542
+ {
543
+ "name": "params",
544
+ "type": {
545
+ "defined": "OrderParams"
546
+ }
547
+ }
548
+ ]
549
+ },
550
+ {
551
+ "name": "cancelOrder",
552
+ "accounts": [
553
+ {
554
+ "name": "state",
555
+ "isMut": false,
556
+ "isSigner": false
557
+ },
558
+ {
559
+ "name": "orderState",
560
+ "isMut": false,
561
+ "isSigner": false
562
+ },
563
+ {
564
+ "name": "user",
565
+ "isMut": false,
566
+ "isSigner": false
567
+ },
568
+ {
569
+ "name": "authority",
570
+ "isMut": false,
571
+ "isSigner": true
572
+ },
573
+ {
574
+ "name": "markets",
575
+ "isMut": true,
576
+ "isSigner": false
577
+ },
578
+ {
579
+ "name": "userPositions",
580
+ "isMut": true,
581
+ "isSigner": false
582
+ },
583
+ {
584
+ "name": "userOrders",
585
+ "isMut": true,
586
+ "isSigner": false
587
+ },
588
+ {
589
+ "name": "fundingPaymentHistory",
590
+ "isMut": true,
591
+ "isSigner": false
592
+ },
593
+ {
594
+ "name": "orderHistory",
595
+ "isMut": true,
596
+ "isSigner": false
597
+ }
598
+ ],
599
+ "args": [
600
+ {
601
+ "name": "orderId",
602
+ "type": "u128"
603
+ }
604
+ ]
605
+ },
606
+ {
607
+ "name": "cancelOrderByUserId",
608
+ "accounts": [
609
+ {
610
+ "name": "state",
611
+ "isMut": false,
612
+ "isSigner": false
613
+ },
614
+ {
615
+ "name": "orderState",
616
+ "isMut": false,
617
+ "isSigner": false
618
+ },
619
+ {
620
+ "name": "user",
621
+ "isMut": false,
622
+ "isSigner": false
623
+ },
624
+ {
625
+ "name": "authority",
626
+ "isMut": false,
627
+ "isSigner": true
628
+ },
629
+ {
630
+ "name": "markets",
631
+ "isMut": true,
632
+ "isSigner": false
633
+ },
634
+ {
635
+ "name": "userPositions",
636
+ "isMut": true,
637
+ "isSigner": false
638
+ },
639
+ {
640
+ "name": "userOrders",
641
+ "isMut": true,
642
+ "isSigner": false
643
+ },
644
+ {
645
+ "name": "fundingPaymentHistory",
646
+ "isMut": true,
647
+ "isSigner": false
648
+ },
649
+ {
650
+ "name": "orderHistory",
651
+ "isMut": true,
652
+ "isSigner": false
653
+ }
654
+ ],
655
+ "args": [
656
+ {
657
+ "name": "userOrderId",
658
+ "type": "u8"
659
+ }
660
+ ]
661
+ },
662
+ {
663
+ "name": "fillOrder",
664
+ "accounts": [
665
+ {
666
+ "name": "state",
667
+ "isMut": false,
668
+ "isSigner": false
669
+ },
670
+ {
671
+ "name": "orderState",
672
+ "isMut": false,
673
+ "isSigner": false
674
+ },
675
+ {
676
+ "name": "authority",
677
+ "isMut": false,
678
+ "isSigner": true
679
+ },
680
+ {
681
+ "name": "filler",
682
+ "isMut": true,
683
+ "isSigner": false
684
+ },
685
+ {
686
+ "name": "user",
687
+ "isMut": true,
688
+ "isSigner": false
689
+ },
690
+ {
691
+ "name": "markets",
692
+ "isMut": true,
693
+ "isSigner": false
694
+ },
695
+ {
696
+ "name": "userPositions",
697
+ "isMut": true,
698
+ "isSigner": false
699
+ },
700
+ {
701
+ "name": "userOrders",
702
+ "isMut": true,
703
+ "isSigner": false
704
+ },
705
+ {
706
+ "name": "tradeHistory",
707
+ "isMut": true,
708
+ "isSigner": false
709
+ },
710
+ {
711
+ "name": "fundingPaymentHistory",
712
+ "isMut": true,
713
+ "isSigner": false
714
+ },
715
+ {
716
+ "name": "fundingRateHistory",
717
+ "isMut": true,
718
+ "isSigner": false
719
+ },
720
+ {
721
+ "name": "orderHistory",
722
+ "isMut": true,
723
+ "isSigner": false
724
+ },
725
+ {
726
+ "name": "extendedCurveHistory",
727
+ "isMut": true,
728
+ "isSigner": false
729
+ },
730
+ {
731
+ "name": "oracle",
732
+ "isMut": false,
733
+ "isSigner": false
734
+ }
735
+ ],
736
+ "args": [
737
+ {
738
+ "name": "orderId",
739
+ "type": "u128"
740
+ }
741
+ ]
742
+ },
743
+ {
744
+ "name": "placeAndFillOrder",
745
+ "accounts": [
746
+ {
747
+ "name": "state",
748
+ "isMut": false,
749
+ "isSigner": false
750
+ },
751
+ {
752
+ "name": "orderState",
753
+ "isMut": false,
754
+ "isSigner": false
755
+ },
756
+ {
757
+ "name": "user",
758
+ "isMut": true,
759
+ "isSigner": false
760
+ },
761
+ {
762
+ "name": "authority",
763
+ "isMut": false,
764
+ "isSigner": true
765
+ },
766
+ {
767
+ "name": "markets",
768
+ "isMut": true,
769
+ "isSigner": false
770
+ },
771
+ {
772
+ "name": "userPositions",
773
+ "isMut": true,
774
+ "isSigner": false
775
+ },
776
+ {
777
+ "name": "userOrders",
778
+ "isMut": true,
779
+ "isSigner": false
780
+ },
781
+ {
782
+ "name": "fundingPaymentHistory",
783
+ "isMut": true,
784
+ "isSigner": false
785
+ },
786
+ {
787
+ "name": "tradeHistory",
788
+ "isMut": true,
789
+ "isSigner": false
790
+ },
791
+ {
792
+ "name": "fundingRateHistory",
793
+ "isMut": true,
794
+ "isSigner": false
795
+ },
796
+ {
797
+ "name": "orderHistory",
798
+ "isMut": true,
799
+ "isSigner": false
800
+ },
801
+ {
802
+ "name": "extendedCurveHistory",
803
+ "isMut": true,
804
+ "isSigner": false
805
+ },
806
+ {
807
+ "name": "oracle",
808
+ "isMut": false,
809
+ "isSigner": false
810
+ }
811
+ ],
812
+ "args": [
813
+ {
814
+ "name": "params",
815
+ "type": {
816
+ "defined": "OrderParams"
817
+ }
818
+ }
819
+ ]
820
+ },
451
821
  {
452
822
  "name": "liquidate",
453
823
  "accounts": [
@@ -910,6 +1280,47 @@
910
1280
  }
911
1281
  ]
912
1282
  },
1283
+ {
1284
+ "name": "initializeUserOrders",
1285
+ "accounts": [
1286
+ {
1287
+ "name": "user",
1288
+ "isMut": false,
1289
+ "isSigner": false
1290
+ },
1291
+ {
1292
+ "name": "userOrders",
1293
+ "isMut": true,
1294
+ "isSigner": false
1295
+ },
1296
+ {
1297
+ "name": "state",
1298
+ "isMut": false,
1299
+ "isSigner": false
1300
+ },
1301
+ {
1302
+ "name": "authority",
1303
+ "isMut": false,
1304
+ "isSigner": true
1305
+ },
1306
+ {
1307
+ "name": "rent",
1308
+ "isMut": false,
1309
+ "isSigner": false
1310
+ },
1311
+ {
1312
+ "name": "systemProgram",
1313
+ "isMut": false,
1314
+ "isSigner": false
1315
+ }
1316
+ ],
1317
+ "args": [
1318
+ {
1319
+ "name": "userOrdersNonce",
1320
+ "type": "u8"
1321
+ }
1322
+ ]
1323
+ },
913
1324
  {
914
1325
  "name": "deleteUser",
915
1326
  "accounts": [
@@ -1228,6 +1639,34 @@
1228
1639
  }
1229
1640
  ]
1230
1641
  },
1642
+ {
1643
+ "name": "updateOrderFillerRewardStructure",
1644
+ "accounts": [
1645
+ {
1646
+ "name": "admin",
1647
+ "isMut": false,
1648
+ "isSigner": true
1649
+ },
1650
+ {
1651
+ "name": "state",
1652
+ "isMut": false,
1653
+ "isSigner": false
1654
+ },
1655
+ {
1656
+ "name": "orderState",
1657
+ "isMut": true,
1658
+ "isSigner": false
1659
+ }
1660
+ ],
1661
+ "args": [
1662
+ {
1663
+ "name": "orderFillerRewardStructure",
1664
+ "type": {
1665
+ "defined": "OrderFillerRewardStructure"
1666
+ }
1667
+ }
1668
+ ]
1669
+ },
1231
1670
  {
1232
1671
  "name": "updateOracleGuardRails",
1233
1672
  "accounts": [
@@ -1237,22 +1676,58 @@
1237
1676
  "isSigner": true
1238
1677
  },
1239
1678
  {
1240
- "name": "state",
1679
+ "name": "state",
1680
+ "isMut": true,
1681
+ "isSigner": false
1682
+ }
1683
+ ],
1684
+ "args": [
1685
+ {
1686
+ "name": "oracleGuardRails",
1687
+ "type": {
1688
+ "defined": "OracleGuardRails"
1689
+ }
1690
+ }
1691
+ ]
1692
+ },
1693
+ {
1694
+ "name": "updateMarketOracle",
1695
+ "accounts": [
1696
+ {
1697
+ "name": "admin",
1698
+ "isMut": false,
1699
+ "isSigner": true
1700
+ },
1701
+ {
1702
+ "name": "state",
1703
+ "isMut": false,
1704
+ "isSigner": false
1705
+ },
1706
+ {
1707
+ "name": "markets",
1241
1708
  "isMut": true,
1242
1709
  "isSigner": false
1243
1710
  }
1244
1711
  ],
1245
1712
  "args": [
1246
1713
  {
1247
- "name": "oracleGuardRails",
1714
+ "name": "marketIndex",
1715
+ "type": "u64"
1716
+ },
1717
+ {
1718
+ "name": "oracle",
1719
+ "type": "publicKey"
1720
+ },
1721
+ {
1722
+ "name": "oracleSource",
1248
1723
  "type": {
1249
- "defined": "OracleGuardRails"
1724
+ "defined": "OracleSource"
1250
1725
  }
1251
1726
  }
1252
1727
  ]
1253
1728
  },
1254
1729
  {
1255
- "name": "updateMarketOracle",
1730
+ "name": "updateMarketMinimumQuoteAssetTradeSize",
1256
1731
  "accounts": [
1257
1732
  {
1258
1733
  "name": "admin",
@@ -1276,19 +1751,13 @@
1276
1751
  "type": "u64"
1277
1752
  },
1278
1753
  {
1279
- "name": "oracle",
1280
- "type": "publicKey"
1281
- },
1282
- {
1283
- "name": "oracleSource",
1284
- "type": {
1285
- "defined": "OracleSource"
1286
- }
1754
+ "name": "minimumTradeSize",
1755
+ "type": "u128"
1287
1756
  }
1288
1757
  ]
1289
1758
  },
1290
1759
  {
1291
- "name": "updateMarketMinimumTradeSize",
1760
+ "name": "updateMarketMinimumBaseAssetTradeSize",
1292
1761
  "accounts": [
1293
1762
  {
1294
1763
  "name": "admin",
@@ -1618,6 +2087,64 @@
1618
2087
  ]
1619
2088
  }
1620
2089
  },
2090
+ {
2091
+ "name": "OrderHistory",
2092
+ "type": {
2093
+ "kind": "struct",
2094
+ "fields": [
2095
+ {
2096
+ "name": "head",
2097
+ "type": "u64"
2098
+ },
2099
+ {
2100
+ "name": "lastOrderId",
2101
+ "type": "u128"
2102
+ },
2103
+ {
2104
+ "name": "orderRecords",
2105
+ "type": {
2106
+ "array": [
2107
+ {
2108
+ "defined": "OrderRecord"
2109
+ },
2110
+ 1024
2111
+ ]
2112
+ }
2113
+ }
2114
+ ]
2115
+ }
2116
+ },
2117
+ {
2118
+ "name": "OrderState",
2119
+ "type": {
2120
+ "kind": "struct",
2121
+ "fields": [
2122
+ {
2123
+ "name": "orderHistory",
2124
+ "type": "publicKey"
2125
+ },
2126
+ {
2127
+ "name": "orderFillerRewardStructure",
2128
+ "type": {
2129
+ "defined": "OrderFillerRewardStructure"
2130
+ }
2131
+ },
2132
+ {
2133
+ "name": "minOrderQuoteAssetAmount",
2134
+ "type": "u128"
2135
+ },
2136
+ {
2137
+ "name": "padding",
2138
+ "type": {
2139
+ "array": [
2140
+ "u128",
2141
+ 10
2142
+ ]
2143
+ }
2144
+ }
2145
+ ]
2146
+ }
2147
+ },
1621
2148
  {
1622
2149
  "name": "State",
1623
2150
  "type": {
@@ -1763,6 +2290,10 @@
1763
2290
  "name": "maxDeposit",
1764
2291
  "type": "u128"
1765
2292
  },
2293
+ {
2294
+ "name": "orderState",
2295
+ "type": "publicKey"
2296
+ },
1766
2297
  {
1767
2298
  "name": "extendedCurveHistory",
1768
2299
  "type": "publicKey"
@@ -1782,14 +2313,6 @@
1782
2313
  {
1783
2314
  "name": "padding3",
1784
2315
  "type": "u128"
1785
- },
1786
- {
1787
- "name": "padding4",
1788
- "type": "u128"
1789
- },
1790
- {
1791
- "name": "padding5",
1792
- "type": "u128"
1793
2316
  }
1794
2317
  ]
1795
2318
  }
@@ -1895,6 +2418,29 @@
1895
2418
  }
1896
2419
  ]
1897
2420
  }
2421
+ },
2422
+ {
2423
+ "name": "UserOrders",
2424
+ "type": {
2425
+ "kind": "struct",
2426
+ "fields": [
2427
+ {
2428
+ "name": "user",
2429
+ "type": "publicKey"
2430
+ },
2431
+ {
2432
+ "name": "orders",
2433
+ "type": {
2434
+ "array": [
2435
+ {
2436
+ "defined": "Order"
2437
+ },
2438
+ 20
2439
+ ]
2440
+ }
2441
+ }
2442
+ ]
2443
+ }
1898
2444
  }
1899
2445
  ],
1900
2446
  "types": [
@@ -1926,6 +2472,106 @@
1926
2472
  ]
1927
2473
  }
1928
2474
  },
2475
+ {
2476
+ "name": "OrderParams",
2477
+ "type": {
2478
+ "kind": "struct",
2479
+ "fields": [
2480
+ {
2481
+ "name": "orderType",
2482
+ "type": {
2483
+ "defined": "OrderType"
2484
+ }
2485
+ },
2486
+ {
2487
+ "name": "direction",
2488
+ "type": {
2489
+ "defined": "PositionDirection"
2490
+ }
2491
+ },
2492
+ {
2493
+ "name": "userOrderId",
2494
+ "type": "u8"
2495
+ },
2496
+ {
2497
+ "name": "quoteAssetAmount",
2498
+ "type": "u128"
2499
+ },
2500
+ {
2501
+ "name": "baseAssetAmount",
2502
+ "type": "u128"
2503
+ },
2504
+ {
2505
+ "name": "price",
2506
+ "type": "u128"
2507
+ },
2508
+ {
2509
+ "name": "marketIndex",
2510
+ "type": "u64"
2511
+ },
2512
+ {
2513
+ "name": "reduceOnly",
2514
+ "type": "bool"
2515
+ },
2516
+ {
2517
+ "name": "postOnly",
2518
+ "type": "bool"
2519
+ },
2520
+ {
2521
+ "name": "immediateOrCancel",
2522
+ "type": "bool"
2523
+ },
2524
+ {
2525
+ "name": "triggerPrice",
2526
+ "type": "u128"
2527
+ },
2528
+ {
2529
+ "name": "triggerCondition",
2530
+ "type": {
2531
+ "defined": "OrderTriggerCondition"
2532
+ }
2533
+ },
2534
+ {
2535
+ "name": "optionalAccounts",
2536
+ "type": {
2537
+ "defined": "OrderParamsOptionalAccounts"
2538
+ }
2539
+ },
2540
+ {
2541
+ "name": "positionLimit",
2542
+ "type": "u128"
2543
+ },
2544
+ {
2545
+ "name": "oraclePriceOffset",
2546
+ "type": "u128"
2547
+ },
2548
+ {
2549
+ "name": "padding0",
2550
+ "type": "bool"
2551
+ },
2552
+ {
2553
+ "name": "padding1",
2554
+ "type": "bool"
2555
+ }
2556
+ ]
2557
+ }
2558
+ },
2559
+ {
2560
+ "name": "OrderParamsOptionalAccounts",
2561
+ "type": {
2562
+ "kind": "struct",
2563
+ "fields": [
2564
+ {
2565
+ "name": "discountToken",
2566
+ "type": "bool"
2567
+ },
2568
+ {
2569
+ "name": "referrer",
2570
+ "type": "bool"
2571
+ }
2572
+ ]
2573
+ }
2574
+ },
1929
2575
  {
1930
2576
  "name": "CurveRecord",
1931
2577
  "type": {
@@ -2411,63 +3057,152 @@
2411
3057
  "type": "i64"
2412
3058
  },
2413
3059
  {
2414
- "name": "lastOraclePriceTwap",
2415
- "type": "i128"
3060
+ "name": "lastOraclePriceTwap",
3061
+ "type": "i128"
3062
+ },
3063
+ {
3064
+ "name": "lastMarkPriceTwap",
3065
+ "type": "u128"
3066
+ },
3067
+ {
3068
+ "name": "lastMarkPriceTwapTs",
3069
+ "type": "i64"
3070
+ },
3071
+ {
3072
+ "name": "sqrtK",
3073
+ "type": "u128"
3074
+ },
3075
+ {
3076
+ "name": "pegMultiplier",
3077
+ "type": "u128"
3078
+ },
3079
+ {
3080
+ "name": "totalFee",
3081
+ "type": "u128"
3082
+ },
3083
+ {
3084
+ "name": "totalFeeMinusDistributions",
3085
+ "type": "u128"
3086
+ },
3087
+ {
3088
+ "name": "totalFeeWithdrawn",
3089
+ "type": "u128"
3090
+ },
3091
+ {
3092
+ "name": "minimumQuoteAssetTradeSize",
3093
+ "type": "u128"
3094
+ },
3095
+ {
3096
+ "name": "lastOraclePriceTwapTs",
3097
+ "type": "i64"
3098
+ },
3099
+ {
3100
+ "name": "lastOraclePrice",
3101
+ "type": "i128"
3102
+ },
3103
+ {
3104
+ "name": "minimumBaseAssetTradeSize",
3105
+ "type": "u128"
3106
+ },
3107
+ {
3108
+ "name": "padding1",
3109
+ "type": "u64"
3110
+ },
3111
+ {
3112
+ "name": "padding2",
3113
+ "type": "u128"
3114
+ },
3115
+ {
3116
+ "name": "padding3",
3117
+ "type": "u128"
3118
+ }
3119
+ ]
3120
+ }
3121
+ },
3122
+ {
3123
+ "name": "OrderRecord",
3124
+ "type": {
3125
+ "kind": "struct",
3126
+ "fields": [
3127
+ {
3128
+ "name": "ts",
3129
+ "type": "i64"
3130
+ },
3131
+ {
3132
+ "name": "recordId",
3133
+ "type": "u128"
2416
3134
  },
2417
3135
  {
2418
- "name": "lastMarkPriceTwap",
2419
- "type": "u128"
3136
+ "name": "user",
3137
+ "type": "publicKey"
2420
3138
  },
2421
3139
  {
2422
- "name": "lastMarkPriceTwapTs",
2423
- "type": "i64"
3140
+ "name": "authority",
3141
+ "type": "publicKey"
2424
3142
  },
2425
3143
  {
2426
- "name": "sqrtK",
2427
- "type": "u128"
3144
+ "name": "order",
3145
+ "type": {
3146
+ "defined": "Order"
3147
+ }
2428
3148
  },
2429
3149
  {
2430
- "name": "pegMultiplier",
2431
- "type": "u128"
3150
+ "name": "action",
3151
+ "type": {
3152
+ "defined": "OrderAction"
3153
+ }
2432
3154
  },
2433
3155
  {
2434
- "name": "totalFee",
2435
- "type": "u128"
3156
+ "name": "filler",
3157
+ "type": "publicKey"
2436
3158
  },
2437
3159
  {
2438
- "name": "totalFeeMinusDistributions",
3160
+ "name": "tradeRecordId",
2439
3161
  "type": "u128"
2440
3162
  },
2441
3163
  {
2442
- "name": "totalFeeWithdrawn",
3164
+ "name": "baseAssetAmountFilled",
2443
3165
  "type": "u128"
2444
3166
  },
2445
3167
  {
2446
- "name": "minimumTradeSize",
3168
+ "name": "quoteAssetAmountFilled",
2447
3169
  "type": "u128"
2448
3170
  },
2449
3171
  {
2450
- "name": "lastOraclePriceTwapTs",
2451
- "type": "i64"
3172
+ "name": "fee",
3173
+ "type": "u128"
2452
3174
  },
2453
3175
  {
2454
- "name": "lastOraclePrice",
2455
- "type": "i128"
3176
+ "name": "fillerReward",
3177
+ "type": "u128"
2456
3178
  },
2457
3179
  {
2458
- "name": "padding1",
2459
- "type": "u64"
2460
- },
3180
+ "name": "padding",
3181
+ "type": {
3182
+ "array": [
3183
+ "u64",
3184
+ 10
3185
+ ]
3186
+ }
3187
+ }
3188
+ ]
3189
+ }
3190
+ },
3191
+ {
3192
+ "name": "OrderFillerRewardStructure",
3193
+ "type": {
3194
+ "kind": "struct",
3195
+ "fields": [
2461
3196
  {
2462
- "name": "padding2",
3197
+ "name": "rewardNumerator",
2463
3198
  "type": "u128"
2464
3199
  },
2465
3200
  {
2466
- "name": "padding3",
3201
+ "name": "rewardDenominator",
2467
3202
  "type": "u128"
2468
3203
  },
2469
3204
  {
2470
- "name": "padding4",
3205
+ "name": "timeBasedRewardLowerBound",
2471
3206
  "type": "u128"
2472
3207
  }
2473
3208
  ]
@@ -2741,32 +3476,147 @@
2741
3476
  "type": "i64"
2742
3477
  },
2743
3478
  {
2744
- "name": "stopLossPrice",
3479
+ "name": "openOrders",
2745
3480
  "type": "u128"
2746
3481
  },
2747
3482
  {
2748
- "name": "stopLossAmount",
3483
+ "name": "padding0",
2749
3484
  "type": "u128"
2750
3485
  },
2751
3486
  {
2752
- "name": "stopProfitPrice",
3487
+ "name": "padding1",
2753
3488
  "type": "u128"
2754
3489
  },
2755
3490
  {
2756
- "name": "stopProfitAmount",
3491
+ "name": "padding2",
2757
3492
  "type": "u128"
2758
3493
  },
2759
3494
  {
2760
- "name": "transferTo",
2761
- "type": "publicKey"
3495
+ "name": "padding3",
3496
+ "type": "u128"
2762
3497
  },
2763
3498
  {
2764
- "name": "padding0",
3499
+ "name": "padding4",
2765
3500
  "type": "u128"
2766
3501
  },
2767
3502
  {
2768
- "name": "padding1",
3503
+ "name": "padding5",
3504
+ "type": "u128"
3505
+ },
3506
+ {
3507
+ "name": "padding6",
3508
+ "type": "u128"
3509
+ }
3510
+ ]
3511
+ }
3512
+ },
3513
+ {
3514
+ "name": "Order",
3515
+ "type": {
3516
+ "kind": "struct",
3517
+ "fields": [
3518
+ {
3519
+ "name": "status",
3520
+ "type": {
3521
+ "defined": "OrderStatus"
3522
+ }
3523
+ },
3524
+ {
3525
+ "name": "orderType",
3526
+ "type": {
3527
+ "defined": "OrderType"
3528
+ }
3529
+ },
3530
+ {
3531
+ "name": "ts",
3532
+ "type": "i64"
3533
+ },
3534
+ {
3535
+ "name": "orderId",
3536
+ "type": "u128"
3537
+ },
3538
+ {
3539
+ "name": "userOrderId",
3540
+ "type": "u8"
3541
+ },
3542
+ {
3543
+ "name": "marketIndex",
3544
+ "type": "u64"
3545
+ },
3546
+ {
3547
+ "name": "price",
3548
+ "type": "u128"
3549
+ },
3550
+ {
3551
+ "name": "quoteAssetAmount",
3552
+ "type": "u128"
3553
+ },
3554
+ {
3555
+ "name": "baseAssetAmount",
3556
+ "type": "u128"
3557
+ },
3558
+ {
3559
+ "name": "baseAssetAmountFilled",
3560
+ "type": "u128"
3561
+ },
3562
+ {
3563
+ "name": "quoteAssetAmountFilled",
3564
+ "type": "u128"
3565
+ },
3566
+ {
3567
+ "name": "fee",
3568
+ "type": "u128"
3569
+ },
3570
+ {
3571
+ "name": "direction",
3572
+ "type": {
3573
+ "defined": "PositionDirection"
3574
+ }
3575
+ },
3576
+ {
3577
+ "name": "reduceOnly",
3578
+ "type": "bool"
3579
+ },
3580
+ {
3581
+ "name": "postOnly",
3582
+ "type": "bool"
3583
+ },
3584
+ {
3585
+ "name": "immediateOrCancel",
3586
+ "type": "bool"
3587
+ },
3588
+ {
3589
+ "name": "discountTier",
3590
+ "type": {
3591
+ "defined": "OrderDiscountTier"
3592
+ }
3593
+ },
3594
+ {
3595
+ "name": "triggerPrice",
2769
3596
  "type": "u128"
3597
+ },
3598
+ {
3599
+ "name": "triggerCondition",
3600
+ "type": {
3601
+ "defined": "OrderTriggerCondition"
3602
+ }
3603
+ },
3604
+ {
3605
+ "name": "referrer",
3606
+ "type": "publicKey"
3607
+ },
3608
+ {
3609
+ "name": "oraclePriceOffset",
3610
+ "type": "i128"
3611
+ },
3612
+ {
3613
+ "name": "padding",
3614
+ "type": {
3615
+ "array": [
3616
+ "u16",
3617
+ 3
3618
+ ]
3619
+ }
2770
3620
  }
2771
3621
  ]
2772
3622
  }
@@ -2827,6 +3677,23 @@
2827
3677
  ]
2828
3678
  }
2829
3679
  },
3680
+ {
3681
+ "name": "OrderAction",
3682
+ "type": {
3683
+ "kind": "enum",
3684
+ "variants": [
3685
+ {
3686
+ "name": "Place"
3687
+ },
3688
+ {
3689
+ "name": "Cancel"
3690
+ },
3691
+ {
3692
+ "name": "Fill"
3693
+ }
3694
+ ]
3695
+ }
3696
+ },
2830
3697
  {
2831
3698
  "name": "PositionDirection",
2832
3699
  "type": {
@@ -2840,6 +3707,77 @@
2840
3707
  }
2841
3708
  ]
2842
3709
  }
3710
+ },
3711
+ {
3712
+ "name": "OrderStatus",
3713
+ "type": {
3714
+ "kind": "enum",
3715
+ "variants": [
3716
+ {
3717
+ "name": "Init"
3718
+ },
3719
+ {
3720
+ "name": "Open"
3721
+ }
3722
+ ]
3723
+ }
3724
+ },
3725
+ {
3726
+ "name": "OrderType",
3727
+ "type": {
3728
+ "kind": "enum",
3729
+ "variants": [
3730
+ {
3731
+ "name": "Market"
3732
+ },
3733
+ {
3734
+ "name": "Limit"
3735
+ },
3736
+ {
3737
+ "name": "Stop"
3738
+ },
3739
+ {
3740
+ "name": "StopLimit"
3741
+ }
3742
+ ]
3743
+ }
3744
+ },
3745
+ {
3746
+ "name": "OrderDiscountTier",
3747
+ "type": {
3748
+ "kind": "enum",
3749
+ "variants": [
3750
+ {
3751
+ "name": "None"
3752
+ },
3753
+ {
3754
+ "name": "First"
3755
+ },
3756
+ {
3757
+ "name": "Second"
3758
+ },
3759
+ {
3760
+ "name": "Third"
3761
+ },
3762
+ {
3763
+ "name": "Fourth"
3764
+ }
3765
+ ]
3766
+ }
3767
+ },
3768
+ {
3769
+ "name": "OrderTriggerCondition",
3770
+ "type": {
3771
+ "kind": "enum",
3772
+ "variants": [
3773
+ {
3774
+ "name": "Above"
3775
+ },
3776
+ {
3777
+ "name": "Below"
3778
+ }
3779
+ ]
3780
+ }
2843
3781
  }
2844
3782
  ],
2845
3783
  "errors": [
@@ -3037,6 +3975,91 @@
3037
3975
  "code": 6038,
3038
3976
  "name": "CastingFailure",
3039
3977
  "msg": "Casting Failure"
3978
+ },
3979
+ {
3980
+ "code": 6039,
3981
+ "name": "InvalidOrder",
3982
+ "msg": "Invalid Order"
3983
+ },
3984
+ {
3985
+ "code": 6040,
3986
+ "name": "UserHasNoOrder",
3987
+ "msg": "User has no order"
3988
+ },
3989
+ {
3990
+ "code": 6041,
3991
+ "name": "OrderAmountTooSmall",
3992
+ "msg": "Order Amount Too Small"
3993
+ },
3994
+ {
3995
+ "code": 6042,
3996
+ "name": "MaxNumberOfOrders",
3997
+ "msg": "Max number of orders taken"
3998
+ },
3999
+ {
4000
+ "code": 6043,
4001
+ "name": "OrderDoesNotExist",
4002
+ "msg": "Order does not exist"
4003
+ },
4004
+ {
4005
+ "code": 6044,
4006
+ "name": "OrderNotOpen",
4007
+ "msg": "Order not open"
4008
+ },
4009
+ {
4010
+ "code": 6045,
4011
+ "name": "CouldNotFillOrder",
4012
+ "msg": "CouldNotFillOrder"
4013
+ },
4014
+ {
4015
+ "code": 6046,
4016
+ "name": "ReduceOnlyOrderIncreasedRisk",
4017
+ "msg": "Reduce only order increased risk"
4018
+ },
4019
+ {
4020
+ "code": 6047,
4021
+ "name": "OrderStateAlreadyInitialized",
4022
+ "msg": "Order state already initialized"
4023
+ },
4024
+ {
4025
+ "code": 6048,
4026
+ "name": "UnableToLoadAccountLoader",
4027
+ "msg": "Unable to load AccountLoader"
4028
+ },
4029
+ {
4030
+ "code": 6049,
4031
+ "name": "TradeSizeTooLarge",
4032
+ "msg": "Trade Size Too Large"
4033
+ },
4034
+ {
4035
+ "code": 6050,
4036
+ "name": "UnableToWriteToRemainingAccount",
4037
+ "msg": "Unable to write to remaining account"
4038
+ },
4039
+ {
4040
+ "code": 6051,
4041
+ "name": "UserCantReferThemselves",
4042
+ "msg": "User cant refer themselves"
4043
+ },
4044
+ {
4045
+ "code": 6052,
4046
+ "name": "DidNotReceiveExpectedReferrer",
4047
+ "msg": "Did not receive expected referrer"
4048
+ },
4049
+ {
4050
+ "code": 6053,
4051
+ "name": "CouldNotDeserializeReferrer",
4052
+ "msg": "Could not deserialize referrer"
4053
+ },
4054
+ {
4055
+ "code": 6054,
4056
+ "name": "MarketOrderMustBeInPlaceAndFill",
4057
+ "msg": "Market order must be in place and fill"
4058
+ },
4059
+ {
4060
+ "code": 6055,
4061
+ "name": "UserOrderIdAlreadyInUse",
4062
+ "msg": "User Order Id Already In Use"
3040
4063
  }
3041
4064
  ]
3042
4065
  }