@drift-labs/sdk 0.1.17 → 0.1.18-orders.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts +5 -2
  2. package/lib/accounts/defaultClearingHouseAccountSubscriber.js +25 -0
  3. package/lib/accounts/defaultHistoryAccountSubscriber.d.ts +28 -0
  4. package/lib/accounts/defaultHistoryAccountSubscriber.js +110 -0
  5. package/lib/accounts/defaultUserAccountSubscriber.d.ts +3 -2
  6. package/lib/accounts/defaultUserAccountSubscriber.js +11 -0
  7. package/lib/accounts/types.d.ts +29 -3
  8. package/lib/accounts/webSocketAccountSubscriber.d.ts +0 -1
  9. package/lib/addresses.d.ts +4 -1
  10. package/lib/addresses.js +28 -1
  11. package/lib/admin.d.ts +10 -4
  12. package/lib/admin.js +48 -3
  13. package/lib/assert/assert.d.ts +0 -1
  14. package/lib/clearingHouse.d.ts +21 -2
  15. package/lib/clearingHouse.js +238 -7
  16. package/lib/clearingHouseUser.d.ts +10 -17
  17. package/lib/clearingHouseUser.js +98 -84
  18. package/lib/config.d.ts +0 -1
  19. package/lib/config.js +1 -1
  20. package/lib/constants/markets.d.ts +0 -1
  21. package/lib/constants/numericConstants.d.ts +0 -1
  22. package/lib/examples/makeTradeExample.d.ts +0 -1
  23. package/lib/idl/clearing_house.json +956 -59
  24. package/lib/index.d.ts +3 -1
  25. package/lib/index.js +3 -0
  26. package/lib/math/amm.d.ts +1 -1
  27. package/lib/math/amm.js +31 -8
  28. package/lib/math/conversion.d.ts +0 -1
  29. package/lib/math/funding.d.ts +0 -1
  30. package/lib/math/insuranceFund.d.ts +0 -1
  31. package/lib/math/market.d.ts +2 -2
  32. package/lib/math/market.js +11 -1
  33. package/lib/math/orders.d.ts +3 -0
  34. package/lib/math/orders.js +30 -0
  35. package/lib/math/position.d.ts +4 -2
  36. package/lib/math/position.js +18 -4
  37. package/lib/math/trade.d.ts +0 -1
  38. package/lib/math/utils.d.ts +0 -1
  39. package/lib/mockUSDCFaucet.d.ts +0 -1
  40. package/lib/orderParams.d.ts +7 -0
  41. package/lib/orderParams.js +88 -0
  42. package/lib/orders.d.ts +5 -0
  43. package/lib/orders.js +136 -0
  44. package/lib/pythClient.d.ts +0 -1
  45. package/lib/tx/defaultTxSender.d.ts +0 -1
  46. package/lib/tx/types.d.ts +0 -1
  47. package/lib/tx/utils.d.ts +0 -1
  48. package/lib/types.d.ts +137 -2
  49. package/lib/types.js +36 -1
  50. package/lib/util/computeUnits.d.ts +0 -1
  51. package/lib/util/tps.d.ts +0 -1
  52. package/lib/wallet.d.ts +0 -1
  53. package/package.json +1 -1
  54. package/src/accounts/defaultClearingHouseAccountSubscriber.ts +47 -0
  55. package/src/accounts/defaultHistoryAccountSubscriber.ts +176 -0
  56. package/src/accounts/defaultUserAccountSubscriber.ts +29 -2
  57. package/src/accounts/types.ts +38 -1
  58. package/src/addresses.ts +35 -0
  59. package/src/admin.ts +84 -6
  60. package/src/clearingHouse.ts +338 -5
  61. package/src/clearingHouseUser.ts +154 -102
  62. package/src/config.ts +1 -1
  63. package/src/idl/clearing_house.json +956 -59
  64. package/src/index.ts +3 -0
  65. package/src/math/amm.ts +47 -14
  66. package/src/math/market.ts +28 -2
  67. package/src/math/orders.ts +39 -0
  68. package/src/math/position.ts +23 -3
  69. package/src/orderParams.ts +128 -0
  70. package/src/orders.ts +230 -0
  71. package/src/types.ts +121 -1
  72. package/tsconfig.json +0 -1
  73. package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts.map +0 -1
  74. package/lib/accounts/defaultUserAccountSubscriber.d.ts.map +0 -1
  75. package/lib/accounts/types.d.ts.map +0 -1
  76. package/lib/accounts/webSocketAccountSubscriber.d.ts.map +0 -1
  77. package/lib/addresses.d.ts.map +0 -1
  78. package/lib/admin.d.ts.map +0 -1
  79. package/lib/assert/assert.d.ts.map +0 -1
  80. package/lib/clearingHouse.d.ts.map +0 -1
  81. package/lib/clearingHouseUser.d.ts.map +0 -1
  82. package/lib/config.d.ts.map +0 -1
  83. package/lib/constants/markets.d.ts.map +0 -1
  84. package/lib/constants/numericConstants.d.ts.map +0 -1
  85. package/lib/examples/makeTradeExample.d.ts.map +0 -1
  86. package/lib/index.d.ts.map +0 -1
  87. package/lib/math/amm.d.ts.map +0 -1
  88. package/lib/math/conversion.d.ts.map +0 -1
  89. package/lib/math/funding.d.ts.map +0 -1
  90. package/lib/math/insuranceFund.d.ts.map +0 -1
  91. package/lib/math/market.d.ts.map +0 -1
  92. package/lib/math/position.d.ts.map +0 -1
  93. package/lib/math/trade.d.ts.map +0 -1
  94. package/lib/math/utils.d.ts.map +0 -1
  95. package/lib/mockUSDCFaucet.d.ts.map +0 -1
  96. package/lib/pythClient.d.ts.map +0 -1
  97. package/lib/tx/defaultTxSender.d.ts.map +0 -1
  98. package/lib/tx/types.d.ts.map +0 -1
  99. package/lib/tx/utils.d.ts.map +0 -1
  100. package/lib/types.d.ts.map +0 -1
  101. package/lib/util/computeUnits.d.ts.map +0 -1
  102. package/lib/util/tps.d.ts.map +0 -1
  103. 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,269 @@
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": "fillOrder",
608
+ "accounts": [
609
+ {
610
+ "name": "state",
611
+ "isMut": true,
612
+ "isSigner": false
613
+ },
614
+ {
615
+ "name": "orderState",
616
+ "isMut": false,
617
+ "isSigner": false
618
+ },
619
+ {
620
+ "name": "authority",
621
+ "isMut": false,
622
+ "isSigner": true
623
+ },
624
+ {
625
+ "name": "filler",
626
+ "isMut": true,
627
+ "isSigner": false
628
+ },
629
+ {
630
+ "name": "user",
631
+ "isMut": true,
632
+ "isSigner": false
633
+ },
634
+ {
635
+ "name": "markets",
636
+ "isMut": true,
637
+ "isSigner": false
638
+ },
639
+ {
640
+ "name": "userPositions",
641
+ "isMut": true,
642
+ "isSigner": false
643
+ },
644
+ {
645
+ "name": "userOrders",
646
+ "isMut": true,
647
+ "isSigner": false
648
+ },
649
+ {
650
+ "name": "tradeHistory",
651
+ "isMut": true,
652
+ "isSigner": false
653
+ },
654
+ {
655
+ "name": "fundingPaymentHistory",
656
+ "isMut": true,
657
+ "isSigner": false
658
+ },
659
+ {
660
+ "name": "fundingRateHistory",
661
+ "isMut": true,
662
+ "isSigner": false
663
+ },
664
+ {
665
+ "name": "orderHistory",
666
+ "isMut": true,
667
+ "isSigner": false
668
+ },
669
+ {
670
+ "name": "oracle",
671
+ "isMut": false,
672
+ "isSigner": false
673
+ }
674
+ ],
675
+ "args": [
676
+ {
677
+ "name": "orderId",
678
+ "type": "u128"
679
+ }
680
+ ]
681
+ },
682
+ {
683
+ "name": "placeAndFillOrder",
684
+ "accounts": [
685
+ {
686
+ "name": "state",
687
+ "isMut": false,
688
+ "isSigner": false
689
+ },
690
+ {
691
+ "name": "orderState",
692
+ "isMut": false,
693
+ "isSigner": false
694
+ },
695
+ {
696
+ "name": "user",
697
+ "isMut": true,
698
+ "isSigner": false
699
+ },
700
+ {
701
+ "name": "authority",
702
+ "isMut": false,
703
+ "isSigner": true
704
+ },
705
+ {
706
+ "name": "markets",
707
+ "isMut": true,
708
+ "isSigner": false
709
+ },
710
+ {
711
+ "name": "userPositions",
712
+ "isMut": true,
713
+ "isSigner": false
714
+ },
715
+ {
716
+ "name": "userOrders",
717
+ "isMut": true,
718
+ "isSigner": false
719
+ },
720
+ {
721
+ "name": "fundingPaymentHistory",
722
+ "isMut": true,
723
+ "isSigner": false
724
+ },
725
+ {
726
+ "name": "tradeHistory",
727
+ "isMut": true,
728
+ "isSigner": false
729
+ },
730
+ {
731
+ "name": "fundingRateHistory",
732
+ "isMut": true,
733
+ "isSigner": false
734
+ },
735
+ {
736
+ "name": "orderHistory",
737
+ "isMut": true,
738
+ "isSigner": false
739
+ },
740
+ {
741
+ "name": "oracle",
742
+ "isMut": false,
743
+ "isSigner": false
744
+ }
745
+ ],
746
+ "args": [
747
+ {
748
+ "name": "params",
749
+ "type": {
750
+ "defined": "OrderParams"
751
+ }
752
+ }
753
+ ]
754
+ },
451
755
  {
452
756
  "name": "liquidate",
453
757
  "accounts": [
@@ -787,10 +1091,67 @@
787
1091
  ]
788
1092
  },
789
1093
  {
790
- "name": "initializeUserWithExplicitPayer",
1094
+ "name": "initializeUserWithExplicitPayer",
1095
+ "accounts": [
1096
+ {
1097
+ "name": "user",
1098
+ "isMut": true,
1099
+ "isSigner": false
1100
+ },
1101
+ {
1102
+ "name": "state",
1103
+ "isMut": false,
1104
+ "isSigner": false
1105
+ },
1106
+ {
1107
+ "name": "userPositions",
1108
+ "isMut": true,
1109
+ "isSigner": true
1110
+ },
1111
+ {
1112
+ "name": "authority",
1113
+ "isMut": false,
1114
+ "isSigner": true
1115
+ },
1116
+ {
1117
+ "name": "payer",
1118
+ "isMut": true,
1119
+ "isSigner": true
1120
+ },
1121
+ {
1122
+ "name": "rent",
1123
+ "isMut": false,
1124
+ "isSigner": false
1125
+ },
1126
+ {
1127
+ "name": "systemProgram",
1128
+ "isMut": false,
1129
+ "isSigner": false
1130
+ }
1131
+ ],
1132
+ "args": [
1133
+ {
1134
+ "name": "userNonce",
1135
+ "type": "u8"
1136
+ },
1137
+ {
1138
+ "name": "optionalAccounts",
1139
+ "type": {
1140
+ "defined": "InitializeUserOptionalAccounts"
1141
+ }
1142
+ }
1143
+ ]
1144
+ },
1145
+ {
1146
+ "name": "initializeUserOrders",
791
1147
  "accounts": [
792
1148
  {
793
1149
  "name": "user",
1150
+ "isMut": false,
1151
+ "isSigner": false
1152
+ },
1153
+ {
1154
+ "name": "userOrders",
794
1155
  "isMut": true,
795
1156
  "isSigner": false
796
1157
  },
@@ -799,21 +1160,11 @@
799
1160
  "isMut": false,
800
1161
  "isSigner": false
801
1162
  },
802
- {
803
- "name": "userPositions",
804
- "isMut": true,
805
- "isSigner": true
806
- },
807
1163
  {
808
1164
  "name": "authority",
809
1165
  "isMut": false,
810
1166
  "isSigner": true
811
1167
  },
812
- {
813
- "name": "payer",
814
- "isMut": true,
815
- "isSigner": true
816
- },
817
1168
  {
818
1169
  "name": "rent",
819
1170
  "isMut": false,
@@ -827,14 +1178,8 @@
827
1178
  ],
828
1179
  "args": [
829
1180
  {
830
- "name": "userNonce",
1181
+ "name": "userOrdersNonce",
831
1182
  "type": "u8"
832
- },
833
- {
834
- "name": "optionalAccounts",
835
- "type": {
836
- "defined": "InitializeUserOptionalAccounts"
837
- }
838
1183
  }
839
1184
  ]
840
1185
  },
@@ -1125,6 +1470,34 @@
1125
1470
  }
1126
1471
  ]
1127
1472
  },
1473
+ {
1474
+ "name": "updateOrderFillerRewardStructure",
1475
+ "accounts": [
1476
+ {
1477
+ "name": "admin",
1478
+ "isMut": false,
1479
+ "isSigner": true
1480
+ },
1481
+ {
1482
+ "name": "state",
1483
+ "isMut": false,
1484
+ "isSigner": false
1485
+ },
1486
+ {
1487
+ "name": "orderState",
1488
+ "isMut": true,
1489
+ "isSigner": false
1490
+ }
1491
+ ],
1492
+ "args": [
1493
+ {
1494
+ "name": "orderFillerRewardStructure",
1495
+ "type": {
1496
+ "defined": "OrderFillerRewardStructure"
1497
+ }
1498
+ }
1499
+ ]
1500
+ },
1128
1501
  {
1129
1502
  "name": "updateOracleGuardRails",
1130
1503
  "accounts": [
@@ -1185,7 +1558,37 @@
1185
1558
  ]
1186
1559
  },
1187
1560
  {
1188
- "name": "updateMarketMinimumTradeSize",
1561
+ "name": "updateMarketMinimumQuoteAssetTradeSize",
1562
+ "accounts": [
1563
+ {
1564
+ "name": "admin",
1565
+ "isMut": false,
1566
+ "isSigner": true
1567
+ },
1568
+ {
1569
+ "name": "state",
1570
+ "isMut": false,
1571
+ "isSigner": false
1572
+ },
1573
+ {
1574
+ "name": "markets",
1575
+ "isMut": true,
1576
+ "isSigner": false
1577
+ }
1578
+ ],
1579
+ "args": [
1580
+ {
1581
+ "name": "marketIndex",
1582
+ "type": "u64"
1583
+ },
1584
+ {
1585
+ "name": "minimumTradeSize",
1586
+ "type": "u128"
1587
+ }
1588
+ ]
1589
+ },
1590
+ {
1591
+ "name": "updateMarketMinimumBaseAssetTradeSize",
1189
1592
  "accounts": [
1190
1593
  {
1191
1594
  "name": "admin",
@@ -1492,6 +1895,55 @@
1492
1895
  ]
1493
1896
  }
1494
1897
  },
1898
+ {
1899
+ "name": "OrderHistory",
1900
+ "type": {
1901
+ "kind": "struct",
1902
+ "fields": [
1903
+ {
1904
+ "name": "head",
1905
+ "type": "u64"
1906
+ },
1907
+ {
1908
+ "name": "lastOrderId",
1909
+ "type": "u128"
1910
+ },
1911
+ {
1912
+ "name": "orderRecords",
1913
+ "type": {
1914
+ "array": [
1915
+ {
1916
+ "defined": "OrderRecord"
1917
+ },
1918
+ 1024
1919
+ ]
1920
+ }
1921
+ }
1922
+ ]
1923
+ }
1924
+ },
1925
+ {
1926
+ "name": "OrderState",
1927
+ "type": {
1928
+ "kind": "struct",
1929
+ "fields": [
1930
+ {
1931
+ "name": "orderHistory",
1932
+ "type": "publicKey"
1933
+ },
1934
+ {
1935
+ "name": "orderFillerRewardStructure",
1936
+ "type": {
1937
+ "defined": "OrderFillerRewardStructure"
1938
+ }
1939
+ },
1940
+ {
1941
+ "name": "minOrderQuoteAssetAmount",
1942
+ "type": "u128"
1943
+ }
1944
+ ]
1945
+ }
1946
+ },
1495
1947
  {
1496
1948
  "name": "State",
1497
1949
  "type": {
@@ -1637,6 +2089,10 @@
1637
2089
  "name": "maxDeposit",
1638
2090
  "type": "u128"
1639
2091
  },
2092
+ {
2093
+ "name": "orderState",
2094
+ "type": "publicKey"
2095
+ },
1640
2096
  {
1641
2097
  "name": "padding0",
1642
2098
  "type": "u128"
@@ -1660,14 +2116,6 @@
1660
2116
  {
1661
2117
  "name": "padding5",
1662
2118
  "type": "u128"
1663
- },
1664
- {
1665
- "name": "padding6",
1666
- "type": "u128"
1667
- },
1668
- {
1669
- "name": "padding7",
1670
- "type": "u128"
1671
2119
  }
1672
2120
  ]
1673
2121
  }
@@ -1773,6 +2221,29 @@
1773
2221
  }
1774
2222
  ]
1775
2223
  }
2224
+ },
2225
+ {
2226
+ "name": "UserOrders",
2227
+ "type": {
2228
+ "kind": "struct",
2229
+ "fields": [
2230
+ {
2231
+ "name": "user",
2232
+ "type": "publicKey"
2233
+ },
2234
+ {
2235
+ "name": "orders",
2236
+ "type": {
2237
+ "array": [
2238
+ {
2239
+ "defined": "Order"
2240
+ },
2241
+ 20
2242
+ ]
2243
+ }
2244
+ }
2245
+ ]
2246
+ }
1776
2247
  }
1777
2248
  ],
1778
2249
  "types": [
@@ -1804,6 +2275,86 @@
1804
2275
  ]
1805
2276
  }
1806
2277
  },
2278
+ {
2279
+ "name": "OrderParams",
2280
+ "type": {
2281
+ "kind": "struct",
2282
+ "fields": [
2283
+ {
2284
+ "name": "orderType",
2285
+ "type": {
2286
+ "defined": "OrderType"
2287
+ }
2288
+ },
2289
+ {
2290
+ "name": "direction",
2291
+ "type": {
2292
+ "defined": "PositionDirection"
2293
+ }
2294
+ },
2295
+ {
2296
+ "name": "quoteAssetAmount",
2297
+ "type": "u128"
2298
+ },
2299
+ {
2300
+ "name": "baseAssetAmount",
2301
+ "type": "u128"
2302
+ },
2303
+ {
2304
+ "name": "price",
2305
+ "type": "u128"
2306
+ },
2307
+ {
2308
+ "name": "marketIndex",
2309
+ "type": "u64"
2310
+ },
2311
+ {
2312
+ "name": "reduceOnly",
2313
+ "type": "bool"
2314
+ },
2315
+ {
2316
+ "name": "postOnly",
2317
+ "type": "bool"
2318
+ },
2319
+ {
2320
+ "name": "immediateOrCancel",
2321
+ "type": "bool"
2322
+ },
2323
+ {
2324
+ "name": "triggerPrice",
2325
+ "type": "u128"
2326
+ },
2327
+ {
2328
+ "name": "triggerCondition",
2329
+ "type": {
2330
+ "defined": "OrderTriggerCondition"
2331
+ }
2332
+ },
2333
+ {
2334
+ "name": "optionalAccounts",
2335
+ "type": {
2336
+ "defined": "OrderParamsOptionalAccounts"
2337
+ }
2338
+ }
2339
+ ]
2340
+ }
2341
+ },
2342
+ {
2343
+ "name": "OrderParamsOptionalAccounts",
2344
+ "type": {
2345
+ "kind": "struct",
2346
+ "fields": [
2347
+ {
2348
+ "name": "discountToken",
2349
+ "type": "bool"
2350
+ },
2351
+ {
2352
+ "name": "referrer",
2353
+ "type": "bool"
2354
+ }
2355
+ ]
2356
+ }
2357
+ },
1807
2358
  {
1808
2359
  "name": "CurveRecord",
1809
2360
  "type": {
@@ -2188,67 +2739,147 @@
2188
2739
  "type": "i64"
2189
2740
  },
2190
2741
  {
2191
- "name": "fundingPeriod",
2192
- "type": "i64"
2742
+ "name": "fundingPeriod",
2743
+ "type": "i64"
2744
+ },
2745
+ {
2746
+ "name": "lastOraclePriceTwap",
2747
+ "type": "i128"
2748
+ },
2749
+ {
2750
+ "name": "lastMarkPriceTwap",
2751
+ "type": "u128"
2752
+ },
2753
+ {
2754
+ "name": "lastMarkPriceTwapTs",
2755
+ "type": "i64"
2756
+ },
2757
+ {
2758
+ "name": "sqrtK",
2759
+ "type": "u128"
2760
+ },
2761
+ {
2762
+ "name": "pegMultiplier",
2763
+ "type": "u128"
2764
+ },
2765
+ {
2766
+ "name": "totalFee",
2767
+ "type": "u128"
2768
+ },
2769
+ {
2770
+ "name": "totalFeeMinusDistributions",
2771
+ "type": "u128"
2772
+ },
2773
+ {
2774
+ "name": "totalFeeWithdrawn",
2775
+ "type": "u128"
2776
+ },
2777
+ {
2778
+ "name": "minimumQuoteAssetTradeSize",
2779
+ "type": "u128"
2780
+ },
2781
+ {
2782
+ "name": "lastOraclePriceTwapTs",
2783
+ "type": "i64"
2784
+ },
2785
+ {
2786
+ "name": "minimumBaseAssetTradeSize",
2787
+ "type": "u128"
2788
+ },
2789
+ {
2790
+ "name": "padding0",
2791
+ "type": "u64"
2193
2792
  },
2194
2793
  {
2195
- "name": "lastOraclePriceTwap",
2196
- "type": "i128"
2794
+ "name": "padding1",
2795
+ "type": "u128"
2197
2796
  },
2198
2797
  {
2199
- "name": "lastMarkPriceTwap",
2798
+ "name": "padding2",
2200
2799
  "type": "u128"
2201
2800
  },
2202
2801
  {
2203
- "name": "lastMarkPriceTwapTs",
2802
+ "name": "padding3",
2803
+ "type": "u128"
2804
+ }
2805
+ ]
2806
+ }
2807
+ },
2808
+ {
2809
+ "name": "OrderRecord",
2810
+ "type": {
2811
+ "kind": "struct",
2812
+ "fields": [
2813
+ {
2814
+ "name": "ts",
2204
2815
  "type": "i64"
2205
2816
  },
2206
2817
  {
2207
- "name": "sqrtK",
2818
+ "name": "recordId",
2208
2819
  "type": "u128"
2209
2820
  },
2210
2821
  {
2211
- "name": "pegMultiplier",
2212
- "type": "u128"
2822
+ "name": "user",
2823
+ "type": "publicKey"
2213
2824
  },
2214
2825
  {
2215
- "name": "totalFee",
2216
- "type": "u128"
2826
+ "name": "authority",
2827
+ "type": "publicKey"
2217
2828
  },
2218
2829
  {
2219
- "name": "totalFeeMinusDistributions",
2220
- "type": "u128"
2830
+ "name": "order",
2831
+ "type": {
2832
+ "defined": "Order"
2833
+ }
2221
2834
  },
2222
2835
  {
2223
- "name": "totalFeeWithdrawn",
2224
- "type": "u128"
2836
+ "name": "action",
2837
+ "type": {
2838
+ "defined": "OrderAction"
2839
+ }
2840
+ },
2841
+ {
2842
+ "name": "filler",
2843
+ "type": "publicKey"
2225
2844
  },
2226
2845
  {
2227
- "name": "minimumTradeSize",
2846
+ "name": "tradeRecordId",
2228
2847
  "type": "u128"
2229
2848
  },
2230
2849
  {
2231
- "name": "lastOraclePriceTwapTs",
2232
- "type": "i64"
2850
+ "name": "baseAssetAmountFilled",
2851
+ "type": "u128"
2233
2852
  },
2234
2853
  {
2235
- "name": "padding0",
2236
- "type": "u64"
2854
+ "name": "quoteAssetAmountFilled",
2855
+ "type": "u128"
2237
2856
  },
2238
2857
  {
2239
- "name": "padding1",
2858
+ "name": "fee",
2240
2859
  "type": "u128"
2241
2860
  },
2242
2861
  {
2243
- "name": "padding2",
2862
+ "name": "fillerReward",
2863
+ "type": "u128"
2864
+ }
2865
+ ]
2866
+ }
2867
+ },
2868
+ {
2869
+ "name": "OrderFillerRewardStructure",
2870
+ "type": {
2871
+ "kind": "struct",
2872
+ "fields": [
2873
+ {
2874
+ "name": "rewardNumerator",
2244
2875
  "type": "u128"
2245
2876
  },
2246
2877
  {
2247
- "name": "padding3",
2878
+ "name": "rewardDenominator",
2248
2879
  "type": "u128"
2249
2880
  },
2250
2881
  {
2251
- "name": "padding4",
2882
+ "name": "timeBasedRewardLowerBound",
2252
2883
  "type": "u128"
2253
2884
  }
2254
2885
  ]
@@ -2522,32 +3153,130 @@
2522
3153
  "type": "i64"
2523
3154
  },
2524
3155
  {
2525
- "name": "stopLossPrice",
3156
+ "name": "openOrders",
2526
3157
  "type": "u128"
2527
3158
  },
2528
3159
  {
2529
- "name": "stopLossAmount",
3160
+ "name": "padding0",
2530
3161
  "type": "u128"
2531
3162
  },
2532
3163
  {
2533
- "name": "stopProfitPrice",
3164
+ "name": "padding1",
2534
3165
  "type": "u128"
2535
3166
  },
2536
3167
  {
2537
- "name": "stopProfitAmount",
3168
+ "name": "padding2",
2538
3169
  "type": "u128"
2539
3170
  },
2540
3171
  {
2541
- "name": "transferTo",
2542
- "type": "publicKey"
3172
+ "name": "padding3",
3173
+ "type": "u128"
2543
3174
  },
2544
3175
  {
2545
- "name": "padding0",
3176
+ "name": "padding4",
2546
3177
  "type": "u128"
2547
3178
  },
2548
3179
  {
2549
- "name": "padding1",
3180
+ "name": "padding5",
3181
+ "type": "u128"
3182
+ },
3183
+ {
3184
+ "name": "padding6",
3185
+ "type": "u128"
3186
+ }
3187
+ ]
3188
+ }
3189
+ },
3190
+ {
3191
+ "name": "Order",
3192
+ "type": {
3193
+ "kind": "struct",
3194
+ "fields": [
3195
+ {
3196
+ "name": "status",
3197
+ "type": {
3198
+ "defined": "OrderStatus"
3199
+ }
3200
+ },
3201
+ {
3202
+ "name": "orderType",
3203
+ "type": {
3204
+ "defined": "OrderType"
3205
+ }
3206
+ },
3207
+ {
3208
+ "name": "ts",
3209
+ "type": "i64"
3210
+ },
3211
+ {
3212
+ "name": "orderId",
3213
+ "type": "u128"
3214
+ },
3215
+ {
3216
+ "name": "marketIndex",
3217
+ "type": "u64"
3218
+ },
3219
+ {
3220
+ "name": "price",
3221
+ "type": "u128"
3222
+ },
3223
+ {
3224
+ "name": "quoteAssetAmount",
3225
+ "type": "u128"
3226
+ },
3227
+ {
3228
+ "name": "baseAssetAmount",
3229
+ "type": "u128"
3230
+ },
3231
+ {
3232
+ "name": "baseAssetAmountFilled",
3233
+ "type": "u128"
3234
+ },
3235
+ {
3236
+ "name": "quoteAssetAmountFilled",
3237
+ "type": "u128"
3238
+ },
3239
+ {
3240
+ "name": "fee",
3241
+ "type": "u128"
3242
+ },
3243
+ {
3244
+ "name": "direction",
3245
+ "type": {
3246
+ "defined": "PositionDirection"
3247
+ }
3248
+ },
3249
+ {
3250
+ "name": "reduceOnly",
3251
+ "type": "bool"
3252
+ },
3253
+ {
3254
+ "name": "postOnly",
3255
+ "type": "bool"
3256
+ },
3257
+ {
3258
+ "name": "immediateOrCancel",
3259
+ "type": "bool"
3260
+ },
3261
+ {
3262
+ "name": "discountTier",
3263
+ "type": {
3264
+ "defined": "OrderDiscountTier"
3265
+ }
3266
+ },
3267
+ {
3268
+ "name": "triggerPrice",
2550
3269
  "type": "u128"
3270
+ },
3271
+ {
3272
+ "name": "triggerCondition",
3273
+ "type": {
3274
+ "defined": "OrderTriggerCondition"
3275
+ }
3276
+ },
3277
+ {
3278
+ "name": "referrer",
3279
+ "type": "publicKey"
2551
3280
  }
2552
3281
  ]
2553
3282
  }
@@ -2608,6 +3337,23 @@
2608
3337
  ]
2609
3338
  }
2610
3339
  },
3340
+ {
3341
+ "name": "OrderAction",
3342
+ "type": {
3343
+ "kind": "enum",
3344
+ "variants": [
3345
+ {
3346
+ "name": "Place"
3347
+ },
3348
+ {
3349
+ "name": "Cancel"
3350
+ },
3351
+ {
3352
+ "name": "Fill"
3353
+ }
3354
+ ]
3355
+ }
3356
+ },
2611
3357
  {
2612
3358
  "name": "PositionDirection",
2613
3359
  "type": {
@@ -2621,6 +3367,77 @@
2621
3367
  }
2622
3368
  ]
2623
3369
  }
3370
+ },
3371
+ {
3372
+ "name": "OrderStatus",
3373
+ "type": {
3374
+ "kind": "enum",
3375
+ "variants": [
3376
+ {
3377
+ "name": "Init"
3378
+ },
3379
+ {
3380
+ "name": "Open"
3381
+ }
3382
+ ]
3383
+ }
3384
+ },
3385
+ {
3386
+ "name": "OrderType",
3387
+ "type": {
3388
+ "kind": "enum",
3389
+ "variants": [
3390
+ {
3391
+ "name": "Market"
3392
+ },
3393
+ {
3394
+ "name": "Limit"
3395
+ },
3396
+ {
3397
+ "name": "Stop"
3398
+ },
3399
+ {
3400
+ "name": "StopLimit"
3401
+ }
3402
+ ]
3403
+ }
3404
+ },
3405
+ {
3406
+ "name": "OrderDiscountTier",
3407
+ "type": {
3408
+ "kind": "enum",
3409
+ "variants": [
3410
+ {
3411
+ "name": "None"
3412
+ },
3413
+ {
3414
+ "name": "First"
3415
+ },
3416
+ {
3417
+ "name": "Second"
3418
+ },
3419
+ {
3420
+ "name": "Third"
3421
+ },
3422
+ {
3423
+ "name": "Fourth"
3424
+ }
3425
+ ]
3426
+ }
3427
+ },
3428
+ {
3429
+ "name": "OrderTriggerCondition",
3430
+ "type": {
3431
+ "kind": "enum",
3432
+ "variants": [
3433
+ {
3434
+ "name": "Above"
3435
+ },
3436
+ {
3437
+ "name": "Below"
3438
+ }
3439
+ ]
3440
+ }
2624
3441
  }
2625
3442
  ],
2626
3443
  "errors": [
@@ -2818,6 +3635,86 @@
2818
3635
  "code": 6038,
2819
3636
  "name": "CastingFailure",
2820
3637
  "msg": "Casting Failure"
3638
+ },
3639
+ {
3640
+ "code": 6039,
3641
+ "name": "InvalidOrder",
3642
+ "msg": "Invalid Order"
3643
+ },
3644
+ {
3645
+ "code": 6040,
3646
+ "name": "UserHasNoOrder",
3647
+ "msg": "User has no order"
3648
+ },
3649
+ {
3650
+ "code": 6041,
3651
+ "name": "OrderAmountTooSmall",
3652
+ "msg": "Order Amount Too Small"
3653
+ },
3654
+ {
3655
+ "code": 6042,
3656
+ "name": "MaxNumberOfOrders",
3657
+ "msg": "Max number of orders taken"
3658
+ },
3659
+ {
3660
+ "code": 6043,
3661
+ "name": "OrderDoesNotExist",
3662
+ "msg": "Order does not exist"
3663
+ },
3664
+ {
3665
+ "code": 6044,
3666
+ "name": "OrderNotOpen",
3667
+ "msg": "Order not open"
3668
+ },
3669
+ {
3670
+ "code": 6045,
3671
+ "name": "CouldNotFillOrder",
3672
+ "msg": "CouldNotFillOrder"
3673
+ },
3674
+ {
3675
+ "code": 6046,
3676
+ "name": "ReduceOnlyOrderIncreasedRisk",
3677
+ "msg": "Reduce only order increased risk"
3678
+ },
3679
+ {
3680
+ "code": 6047,
3681
+ "name": "OrderStateAlreadyInitialized",
3682
+ "msg": "Order state already initialized"
3683
+ },
3684
+ {
3685
+ "code": 6048,
3686
+ "name": "UnableToLoadAccountLoader",
3687
+ "msg": "Unable to load AccountLoader"
3688
+ },
3689
+ {
3690
+ "code": 6049,
3691
+ "name": "TradeSizeTooLarge",
3692
+ "msg": "Trade Size Too Large"
3693
+ },
3694
+ {
3695
+ "code": 6050,
3696
+ "name": "UnableToWriteToRemainingAccount",
3697
+ "msg": "Unable to write to remaining account"
3698
+ },
3699
+ {
3700
+ "code": 6051,
3701
+ "name": "UserCantReferThemselves",
3702
+ "msg": "User cant refer themselves"
3703
+ },
3704
+ {
3705
+ "code": 6052,
3706
+ "name": "DidNotReceiveExpectedReferrer",
3707
+ "msg": "Did not receive expected referrer"
3708
+ },
3709
+ {
3710
+ "code": 6053,
3711
+ "name": "CouldNotDeserializeReferrer",
3712
+ "msg": "Could not deserialize referrer"
3713
+ },
3714
+ {
3715
+ "code": 6054,
3716
+ "name": "MarketOrderMustBeInPlaceAndFill",
3717
+ "msg": "Market order must be in place and fill"
2821
3718
  }
2822
3719
  ]
2823
3720
  }