@drift-labs/sdk 0.1.18-master.0 → 0.1.18-orders.1

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 (108) hide show
  1. package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts +7 -4
  2. package/lib/accounts/defaultClearingHouseAccountSubscriber.js +27 -2
  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 +12 -1
  7. package/lib/accounts/types.d.ts +31 -5
  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 -5
  12. package/lib/admin.js +53 -30
  13. package/lib/assert/assert.d.ts +0 -1
  14. package/lib/clearingHouse.d.ts +22 -3
  15. package/lib/clearingHouse.js +246 -15
  16. package/lib/clearingHouseUser.d.ts +10 -17
  17. package/lib/clearingHouseUser.js +111 -97
  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/examples/makeTradeExample.js +6 -6
  24. package/lib/idl/clearing_house.json +895 -132
  25. package/lib/index.d.ts +4 -1
  26. package/lib/index.js +4 -0
  27. package/lib/math/amm.d.ts +1 -1
  28. package/lib/math/amm.js +38 -15
  29. package/lib/math/conversion.d.ts +0 -1
  30. package/lib/math/conversion.js +1 -1
  31. package/lib/math/funding.d.ts +0 -1
  32. package/lib/math/funding.js +1 -1
  33. package/lib/math/insuranceFund.d.ts +0 -1
  34. package/lib/math/market.d.ts +2 -2
  35. package/lib/math/market.js +12 -2
  36. package/lib/math/orders.d.ts +3 -0
  37. package/lib/math/orders.js +30 -0
  38. package/lib/math/position.d.ts +4 -2
  39. package/lib/math/position.js +19 -5
  40. package/lib/math/trade.d.ts +0 -1
  41. package/lib/math/trade.js +16 -16
  42. package/lib/math/utils.d.ts +0 -1
  43. package/lib/mockUSDCFaucet.d.ts +0 -1
  44. package/lib/orderParams.d.ts +7 -0
  45. package/lib/orderParams.js +88 -0
  46. package/lib/orders.d.ts +5 -0
  47. package/lib/orders.js +136 -0
  48. package/lib/pythClient.d.ts +0 -1
  49. package/lib/pythClient.js +1 -1
  50. package/lib/tx/defaultTxSender.d.ts +0 -1
  51. package/lib/tx/types.d.ts +0 -1
  52. package/lib/tx/utils.d.ts +0 -1
  53. package/lib/types.d.ts +140 -7
  54. package/lib/types.js +36 -1
  55. package/lib/util/computeUnits.d.ts +0 -1
  56. package/lib/util/tps.d.ts +0 -1
  57. package/lib/wallet.d.ts +0 -1
  58. package/package.json +1 -1
  59. package/src/accounts/defaultClearingHouseAccountSubscriber.ts +52 -5
  60. package/src/accounts/defaultHistoryAccountSubscriber.ts +176 -0
  61. package/src/accounts/defaultUserAccountSubscriber.ts +29 -2
  62. package/src/accounts/types.ts +41 -4
  63. package/src/addresses.ts +35 -0
  64. package/src/admin.ts +86 -33
  65. package/src/clearingHouse.ts +340 -7
  66. package/src/clearingHouseUser.ts +154 -102
  67. package/src/config.ts +1 -1
  68. package/src/idl/clearing_house.json +895 -132
  69. package/src/index.ts +4 -0
  70. package/src/math/amm.ts +47 -14
  71. package/src/math/market.ts +28 -2
  72. package/src/math/orders.ts +39 -0
  73. package/src/math/position.ts +23 -3
  74. package/src/orderParams.ts +128 -0
  75. package/src/orders.ts +230 -0
  76. package/src/types.ts +124 -6
  77. package/tsconfig.json +0 -1
  78. package/lib/accounts/defaultClearingHouseAccountSubscriber.d.ts.map +0 -1
  79. package/lib/accounts/defaultUserAccountSubscriber.d.ts.map +0 -1
  80. package/lib/accounts/types.d.ts.map +0 -1
  81. package/lib/accounts/webSocketAccountSubscriber.d.ts.map +0 -1
  82. package/lib/addresses.d.ts.map +0 -1
  83. package/lib/admin.d.ts.map +0 -1
  84. package/lib/assert/assert.d.ts.map +0 -1
  85. package/lib/clearingHouse.d.ts.map +0 -1
  86. package/lib/clearingHouseUser.d.ts.map +0 -1
  87. package/lib/config.d.ts.map +0 -1
  88. package/lib/constants/markets.d.ts.map +0 -1
  89. package/lib/constants/numericConstants.d.ts.map +0 -1
  90. package/lib/examples/makeTradeExample.d.ts.map +0 -1
  91. package/lib/index.d.ts.map +0 -1
  92. package/lib/math/amm.d.ts.map +0 -1
  93. package/lib/math/conversion.d.ts.map +0 -1
  94. package/lib/math/funding.d.ts.map +0 -1
  95. package/lib/math/insuranceFund.d.ts.map +0 -1
  96. package/lib/math/market.d.ts.map +0 -1
  97. package/lib/math/position.d.ts.map +0 -1
  98. package/lib/math/trade.d.ts.map +0 -1
  99. package/lib/math/utils.d.ts.map +0 -1
  100. package/lib/mockUSDCFaucet.d.ts.map +0 -1
  101. package/lib/pythClient.d.ts.map +0 -1
  102. package/lib/tx/defaultTxSender.d.ts.map +0 -1
  103. package/lib/tx/types.d.ts.map +0 -1
  104. package/lib/tx/utils.d.ts.map +0 -1
  105. package/lib/types.d.ts.map +0 -1
  106. package/lib/util/computeUnits.d.ts.map +0 -1
  107. package/lib/util/tps.d.ts.map +0 -1
  108. 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": [
@@ -790,7 +1094,64 @@
790
1094
  "name": "initializeUserWithExplicitPayer",
791
1095
  "accounts": [
792
1096
  {
793
- "name": "user",
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",
1147
+ "accounts": [
1148
+ {
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
  },
@@ -939,11 +1284,6 @@
939
1284
  "isMut": true,
940
1285
  "isSigner": false
941
1286
  },
942
- {
943
- "name": "oracle",
944
- "isMut": false,
945
- "isSigner": false
946
- },
947
1287
  {
948
1288
  "name": "curveHistory",
949
1289
  "isMut": true,
@@ -961,32 +1301,6 @@
961
1301
  }
962
1302
  ]
963
1303
  },
964
- {
965
- "name": "updateCurveHistory",
966
- "accounts": [
967
- {
968
- "name": "admin",
969
- "isMut": false,
970
- "isSigner": true
971
- },
972
- {
973
- "name": "state",
974
- "isMut": true,
975
- "isSigner": false
976
- },
977
- {
978
- "name": "extendedCurveHistory",
979
- "isMut": true,
980
- "isSigner": false
981
- },
982
- {
983
- "name": "curveHistory",
984
- "isMut": false,
985
- "isSigner": false
986
- }
987
- ],
988
- "args": []
989
- },
990
1304
  {
991
1305
  "name": "updateMarginRatio",
992
1306
  "accounts": [
@@ -1156,6 +1470,34 @@
1156
1470
  }
1157
1471
  ]
1158
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
+ },
1159
1501
  {
1160
1502
  "name": "updateOracleGuardRails",
1161
1503
  "accounts": [
@@ -1216,7 +1558,37 @@
1216
1558
  ]
1217
1559
  },
1218
1560
  {
1219
- "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",
1220
1592
  "accounts": [
1221
1593
  {
1222
1594
  "name": "admin",
@@ -1399,7 +1771,7 @@
1399
1771
  "type": "u64"
1400
1772
  },
1401
1773
  {
1402
- "name": "curveRecords",
1774
+ "name": "depositRecords",
1403
1775
  "type": {
1404
1776
  "array": [
1405
1777
  {
@@ -1412,29 +1784,6 @@
1412
1784
  ]
1413
1785
  }
1414
1786
  },
1415
- {
1416
- "name": "ExtendedCurveHistory",
1417
- "type": {
1418
- "kind": "struct",
1419
- "fields": [
1420
- {
1421
- "name": "head",
1422
- "type": "u64"
1423
- },
1424
- {
1425
- "name": "curveRecords",
1426
- "type": {
1427
- "array": [
1428
- {
1429
- "defined": "ExtendedCurveRecord"
1430
- },
1431
- 1024
1432
- ]
1433
- }
1434
- }
1435
- ]
1436
- }
1437
- },
1438
1787
  {
1439
1788
  "name": "DepositHistory",
1440
1789
  "type": {
@@ -1546,6 +1895,55 @@
1546
1895
  ]
1547
1896
  }
1548
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
+ },
1549
1947
  {
1550
1948
  "name": "State",
1551
1949
  "type": {
@@ -1692,7 +2090,7 @@
1692
2090
  "type": "u128"
1693
2091
  },
1694
2092
  {
1695
- "name": "extendedCurveHistory",
2093
+ "name": "orderState",
1696
2094
  "type": "publicKey"
1697
2095
  },
1698
2096
  {
@@ -1823,6 +2221,29 @@
1823
2221
  }
1824
2222
  ]
1825
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
+ }
1826
2247
  }
1827
2248
  ],
1828
2249
  "types": [
@@ -1855,87 +2276,87 @@
1855
2276
  }
1856
2277
  },
1857
2278
  {
1858
- "name": "CurveRecord",
2279
+ "name": "OrderParams",
1859
2280
  "type": {
1860
2281
  "kind": "struct",
1861
2282
  "fields": [
1862
2283
  {
1863
- "name": "ts",
1864
- "type": "i64"
1865
- },
1866
- {
1867
- "name": "recordId",
1868
- "type": "u128"
1869
- },
1870
- {
1871
- "name": "marketIndex",
1872
- "type": "u64"
1873
- },
1874
- {
1875
- "name": "pegMultiplierBefore",
1876
- "type": "u128"
2284
+ "name": "orderType",
2285
+ "type": {
2286
+ "defined": "OrderType"
2287
+ }
1877
2288
  },
1878
2289
  {
1879
- "name": "baseAssetReserveBefore",
1880
- "type": "u128"
2290
+ "name": "direction",
2291
+ "type": {
2292
+ "defined": "PositionDirection"
2293
+ }
1881
2294
  },
1882
2295
  {
1883
- "name": "quoteAssetReserveBefore",
2296
+ "name": "quoteAssetAmount",
1884
2297
  "type": "u128"
1885
2298
  },
1886
2299
  {
1887
- "name": "sqrtKBefore",
2300
+ "name": "baseAssetAmount",
1888
2301
  "type": "u128"
1889
2302
  },
1890
2303
  {
1891
- "name": "pegMultiplierAfter",
2304
+ "name": "price",
1892
2305
  "type": "u128"
1893
2306
  },
1894
2307
  {
1895
- "name": "baseAssetReserveAfter",
1896
- "type": "u128"
2308
+ "name": "marketIndex",
2309
+ "type": "u64"
1897
2310
  },
1898
2311
  {
1899
- "name": "quoteAssetReserveAfter",
1900
- "type": "u128"
2312
+ "name": "reduceOnly",
2313
+ "type": "bool"
1901
2314
  },
1902
2315
  {
1903
- "name": "sqrtKAfter",
1904
- "type": "u128"
2316
+ "name": "postOnly",
2317
+ "type": "bool"
1905
2318
  },
1906
2319
  {
1907
- "name": "baseAssetAmountLong",
1908
- "type": "u128"
2320
+ "name": "immediateOrCancel",
2321
+ "type": "bool"
1909
2322
  },
1910
2323
  {
1911
- "name": "baseAssetAmountShort",
2324
+ "name": "triggerPrice",
1912
2325
  "type": "u128"
1913
2326
  },
1914
2327
  {
1915
- "name": "baseAssetAmount",
1916
- "type": "i128"
1917
- },
1918
- {
1919
- "name": "openInterest",
1920
- "type": "u128"
2328
+ "name": "triggerCondition",
2329
+ "type": {
2330
+ "defined": "OrderTriggerCondition"
2331
+ }
1921
2332
  },
1922
2333
  {
1923
- "name": "totalFee",
1924
- "type": "u128"
1925
- },
2334
+ "name": "optionalAccounts",
2335
+ "type": {
2336
+ "defined": "OrderParamsOptionalAccounts"
2337
+ }
2338
+ }
2339
+ ]
2340
+ }
2341
+ },
2342
+ {
2343
+ "name": "OrderParamsOptionalAccounts",
2344
+ "type": {
2345
+ "kind": "struct",
2346
+ "fields": [
1926
2347
  {
1927
- "name": "totalFeeMinusDistributions",
1928
- "type": "u128"
2348
+ "name": "discountToken",
2349
+ "type": "bool"
1929
2350
  },
1930
2351
  {
1931
- "name": "adjustmentCost",
1932
- "type": "i128"
2352
+ "name": "referrer",
2353
+ "type": "bool"
1933
2354
  }
1934
2355
  ]
1935
2356
  }
1936
2357
  },
1937
2358
  {
1938
- "name": "ExtendedCurveRecord",
2359
+ "name": "CurveRecord",
1939
2360
  "type": {
1940
2361
  "kind": "struct",
1941
2362
  "fields": [
@@ -2010,10 +2431,6 @@
2010
2431
  {
2011
2432
  "name": "adjustmentCost",
2012
2433
  "type": "i128"
2013
- },
2014
- {
2015
- "name": "oraclePrice",
2016
- "type": "i128"
2017
2434
  }
2018
2435
  ]
2019
2436
  }
@@ -2358,13 +2775,17 @@
2358
2775
  "type": "u128"
2359
2776
  },
2360
2777
  {
2361
- "name": "minimumTradeSize",
2778
+ "name": "minimumQuoteAssetTradeSize",
2362
2779
  "type": "u128"
2363
2780
  },
2364
2781
  {
2365
2782
  "name": "lastOraclePriceTwapTs",
2366
2783
  "type": "i64"
2367
2784
  },
2785
+ {
2786
+ "name": "minimumBaseAssetTradeSize",
2787
+ "type": "u128"
2788
+ },
2368
2789
  {
2369
2790
  "name": "padding0",
2370
2791
  "type": "u64"
@@ -2380,9 +2801,85 @@
2380
2801
  {
2381
2802
  "name": "padding3",
2382
2803
  "type": "u128"
2804
+ }
2805
+ ]
2806
+ }
2807
+ },
2808
+ {
2809
+ "name": "OrderRecord",
2810
+ "type": {
2811
+ "kind": "struct",
2812
+ "fields": [
2813
+ {
2814
+ "name": "ts",
2815
+ "type": "i64"
2383
2816
  },
2384
2817
  {
2385
- "name": "padding4",
2818
+ "name": "recordId",
2819
+ "type": "u128"
2820
+ },
2821
+ {
2822
+ "name": "user",
2823
+ "type": "publicKey"
2824
+ },
2825
+ {
2826
+ "name": "authority",
2827
+ "type": "publicKey"
2828
+ },
2829
+ {
2830
+ "name": "order",
2831
+ "type": {
2832
+ "defined": "Order"
2833
+ }
2834
+ },
2835
+ {
2836
+ "name": "action",
2837
+ "type": {
2838
+ "defined": "OrderAction"
2839
+ }
2840
+ },
2841
+ {
2842
+ "name": "filler",
2843
+ "type": "publicKey"
2844
+ },
2845
+ {
2846
+ "name": "tradeRecordId",
2847
+ "type": "u128"
2848
+ },
2849
+ {
2850
+ "name": "baseAssetAmountFilled",
2851
+ "type": "u128"
2852
+ },
2853
+ {
2854
+ "name": "quoteAssetAmountFilled",
2855
+ "type": "u128"
2856
+ },
2857
+ {
2858
+ "name": "fee",
2859
+ "type": "u128"
2860
+ },
2861
+ {
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",
2875
+ "type": "u128"
2876
+ },
2877
+ {
2878
+ "name": "rewardDenominator",
2879
+ "type": "u128"
2880
+ },
2881
+ {
2882
+ "name": "timeBasedRewardLowerBound",
2386
2883
  "type": "u128"
2387
2884
  }
2388
2885
  ]
@@ -2656,32 +3153,130 @@
2656
3153
  "type": "i64"
2657
3154
  },
2658
3155
  {
2659
- "name": "stopLossPrice",
3156
+ "name": "openOrders",
2660
3157
  "type": "u128"
2661
3158
  },
2662
3159
  {
2663
- "name": "stopLossAmount",
3160
+ "name": "padding0",
2664
3161
  "type": "u128"
2665
3162
  },
2666
3163
  {
2667
- "name": "stopProfitPrice",
3164
+ "name": "padding1",
2668
3165
  "type": "u128"
2669
3166
  },
2670
3167
  {
2671
- "name": "stopProfitAmount",
3168
+ "name": "padding2",
2672
3169
  "type": "u128"
2673
3170
  },
2674
3171
  {
2675
- "name": "transferTo",
2676
- "type": "publicKey"
3172
+ "name": "padding3",
3173
+ "type": "u128"
2677
3174
  },
2678
3175
  {
2679
- "name": "padding0",
3176
+ "name": "padding4",
2680
3177
  "type": "u128"
2681
3178
  },
2682
3179
  {
2683
- "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",
2684
3269
  "type": "u128"
3270
+ },
3271
+ {
3272
+ "name": "triggerCondition",
3273
+ "type": {
3274
+ "defined": "OrderTriggerCondition"
3275
+ }
3276
+ },
3277
+ {
3278
+ "name": "referrer",
3279
+ "type": "publicKey"
2685
3280
  }
2686
3281
  ]
2687
3282
  }
@@ -2742,6 +3337,23 @@
2742
3337
  ]
2743
3338
  }
2744
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
+ },
2745
3357
  {
2746
3358
  "name": "PositionDirection",
2747
3359
  "type": {
@@ -2755,6 +3367,77 @@
2755
3367
  }
2756
3368
  ]
2757
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
+ }
2758
3441
  }
2759
3442
  ],
2760
3443
  "errors": [
@@ -2952,6 +3635,86 @@
2952
3635
  "code": 6038,
2953
3636
  "name": "CastingFailure",
2954
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"
2955
3718
  }
2956
3719
  ]
2957
3720
  }