@drift-labs/sdk 0.2.0-master.25 → 0.2.0-master.26

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 (184) hide show
  1. package/lib/accounts/pollingClearingHouseAccountSubscriber.d.ts +13 -13
  2. package/lib/accounts/pollingClearingHouseAccountSubscriber.js +27 -27
  3. package/lib/accounts/types.d.ts +8 -9
  4. package/lib/accounts/webSocketClearingHouseAccountSubscriber.d.ts +14 -14
  5. package/lib/accounts/webSocketClearingHouseAccountSubscriber.js +35 -34
  6. package/lib/addresses/pda.d.ts +7 -6
  7. package/lib/addresses/pda.js +31 -27
  8. package/lib/admin.d.ts +9 -6
  9. package/lib/admin.js +83 -42
  10. package/lib/clearingHouse.d.ts +69 -42
  11. package/lib/clearingHouse.js +753 -277
  12. package/lib/clearingHouseConfig.d.ts +2 -2
  13. package/lib/clearingHouseUser.d.ts +16 -16
  14. package/lib/clearingHouseUser.js +139 -119
  15. package/lib/config.d.ts +7 -7
  16. package/lib/config.js +20 -20
  17. package/lib/constants/numericConstants.d.ts +12 -12
  18. package/lib/constants/numericConstants.js +13 -13
  19. package/lib/constants/{markets.d.ts → perpMarkets.d.ts} +5 -5
  20. package/{src/constants/markets.js → lib/constants/perpMarkets.js} +4 -4
  21. package/lib/constants/{banks.d.ts → spotMarkets.d.ts} +6 -6
  22. package/lib/constants/{banks.js → spotMarkets.js} +16 -16
  23. package/lib/events/types.d.ts +2 -1
  24. package/lib/events/types.js +1 -0
  25. package/lib/examples/makeTradeExample.js +7 -7
  26. package/lib/idl/clearing_house.json +1008 -279
  27. package/lib/index.d.ts +5 -3
  28. package/lib/index.js +5 -3
  29. package/lib/math/amm.d.ts +2 -2
  30. package/lib/math/amm.js +1 -1
  31. package/lib/math/funding.d.ts +6 -6
  32. package/lib/math/funding.js +2 -1
  33. package/lib/math/margin.d.ts +4 -4
  34. package/lib/math/margin.js +18 -11
  35. package/lib/math/market.d.ts +10 -9
  36. package/lib/math/market.js +29 -6
  37. package/lib/math/oracles.d.ts +2 -1
  38. package/lib/math/oracles.js +11 -1
  39. package/lib/math/orders.d.ts +5 -5
  40. package/lib/math/position.d.ts +13 -13
  41. package/lib/math/position.js +19 -19
  42. package/lib/math/spotBalance.d.ts +19 -0
  43. package/lib/math/spotBalance.js +176 -0
  44. package/lib/math/spotMarket.d.ts +4 -0
  45. package/lib/math/spotMarket.js +8 -0
  46. package/lib/math/spotPosition.d.ts +2 -0
  47. package/lib/math/spotPosition.js +8 -0
  48. package/lib/math/state.js +2 -2
  49. package/lib/math/trade.d.ts +4 -4
  50. package/lib/orderParams.d.ts +4 -4
  51. package/lib/orderParams.js +12 -4
  52. package/lib/serum/serumSubscriber.d.ts +23 -0
  53. package/lib/serum/serumSubscriber.js +41 -0
  54. package/lib/serum/types.d.ts +11 -0
  55. package/lib/serum/types.js +2 -0
  56. package/lib/tx/retryTxSender.d.ts +1 -1
  57. package/lib/tx/retryTxSender.js +4 -2
  58. package/lib/tx/types.d.ts +1 -1
  59. package/lib/types.d.ts +123 -33
  60. package/lib/types.js +31 -9
  61. package/my-script/.env +7 -0
  62. package/my-script/getUserStats.ts +106 -0
  63. package/my-script/multiConnections.ts +119 -0
  64. package/my-script/test-regex.ts +11 -0
  65. package/my-script/utils.ts +52 -0
  66. package/package.json +1 -1
  67. package/src/accounts/bulkAccountLoader.js +249 -0
  68. package/src/accounts/bulkUserStatsSubscription.js +75 -0
  69. package/src/accounts/bulkUserSubscription.js +75 -0
  70. package/src/accounts/fetch.js +92 -0
  71. package/src/accounts/pollingClearingHouseAccountSubscriber.js +465 -0
  72. package/src/accounts/pollingClearingHouseAccountSubscriber.ts +38 -38
  73. package/src/accounts/pollingOracleSubscriber.js +156 -0
  74. package/src/accounts/pollingTokenAccountSubscriber.js +141 -0
  75. package/src/accounts/pollingUserAccountSubscriber.js +208 -0
  76. package/src/accounts/pollingUserStatsAccountSubscriber.js +208 -0
  77. package/src/accounts/types.js +28 -0
  78. package/src/accounts/types.ts +11 -9
  79. package/src/accounts/utils.js +7 -0
  80. package/src/accounts/webSocketAccountSubscriber.js +138 -0
  81. package/src/accounts/webSocketClearingHouseAccountSubscriber.js +433 -0
  82. package/src/accounts/webSocketClearingHouseAccountSubscriber.ts +59 -52
  83. package/src/accounts/webSocketUserAccountSubscriber.js +113 -0
  84. package/src/accounts/webSocketUserStatsAccountSubsriber.js +113 -0
  85. package/src/addresses/pda.js +186 -0
  86. package/src/addresses/pda.ts +49 -44
  87. package/src/admin.js +1284 -0
  88. package/src/admin.ts +140 -47
  89. package/src/assert/assert.js +1 -1
  90. package/src/clearingHouse.js +3433 -0
  91. package/src/clearingHouse.ts +1083 -378
  92. package/src/clearingHouseConfig.js +2 -0
  93. package/src/clearingHouseConfig.ts +2 -2
  94. package/src/clearingHouseUser.js +874 -0
  95. package/src/clearingHouseUser.ts +232 -168
  96. package/src/clearingHouseUserConfig.js +2 -0
  97. package/src/clearingHouseUserStats.js +115 -0
  98. package/src/clearingHouseUserStatsConfig.js +2 -0
  99. package/src/config.js +80 -0
  100. package/src/config.ts +29 -29
  101. package/src/constants/numericConstants.js +18 -11
  102. package/src/constants/numericConstants.ts +17 -15
  103. package/{lib/constants/markets.js → src/constants/perpMarkets.js} +11 -11
  104. package/src/constants/{markets.ts → perpMarkets.ts} +5 -5
  105. package/src/constants/spotMarkets.js +51 -0
  106. package/src/constants/{banks.ts → spotMarkets.ts} +19 -19
  107. package/src/events/eventList.js +66 -23
  108. package/src/events/eventSubscriber.js +202 -0
  109. package/src/events/fetchLogs.js +117 -0
  110. package/src/events/pollingLogProvider.js +113 -0
  111. package/src/events/sort.js +41 -0
  112. package/src/events/txEventCache.js +22 -19
  113. package/src/events/types.js +25 -0
  114. package/src/events/types.ts +3 -0
  115. package/src/events/webSocketLogProvider.js +76 -0
  116. package/src/examples/makeTradeExample.ts +10 -8
  117. package/src/factory/bigNum.js +183 -180
  118. package/src/factory/oracleClient.js +9 -9
  119. package/src/idl/clearing_house.json +1008 -279
  120. package/src/index.js +75 -0
  121. package/src/index.ts +5 -3
  122. package/src/math/amm.js +422 -0
  123. package/src/math/amm.ts +6 -3
  124. package/src/math/auction.js +10 -10
  125. package/src/math/conversion.js +4 -3
  126. package/src/math/funding.js +223 -175
  127. package/src/math/funding.ts +7 -7
  128. package/src/math/insurance.js +27 -0
  129. package/src/math/margin.js +77 -0
  130. package/src/math/margin.ts +34 -23
  131. package/src/math/market.js +105 -0
  132. package/src/math/market.ts +71 -19
  133. package/src/math/oracles.js +40 -10
  134. package/src/math/oracles.ts +18 -1
  135. package/src/math/orders.js +153 -0
  136. package/src/math/orders.ts +5 -5
  137. package/src/math/position.js +172 -0
  138. package/src/math/position.ts +31 -31
  139. package/src/math/repeg.js +40 -40
  140. package/src/math/spotBalance.js +176 -0
  141. package/src/math/spotBalance.ts +290 -0
  142. package/src/math/spotMarket.js +8 -0
  143. package/src/math/spotMarket.ts +9 -0
  144. package/src/math/spotPosition.js +8 -0
  145. package/src/math/spotPosition.ts +6 -0
  146. package/src/math/state.ts +2 -2
  147. package/src/math/trade.js +81 -74
  148. package/src/math/trade.ts +4 -4
  149. package/src/math/utils.js +8 -7
  150. package/src/oracles/oracleClientCache.js +10 -9
  151. package/src/oracles/pythClient.js +52 -17
  152. package/src/oracles/quoteAssetOracleClient.js +44 -13
  153. package/src/oracles/switchboardClient.js +69 -37
  154. package/src/oracles/types.js +1 -1
  155. package/src/orderParams.js +14 -6
  156. package/src/orderParams.ts +16 -8
  157. package/src/serum/serumSubscriber.js +102 -0
  158. package/src/serum/serumSubscriber.ts +80 -0
  159. package/src/serum/types.js +2 -0
  160. package/src/serum/types.ts +13 -0
  161. package/src/slot/SlotSubscriber.js +67 -20
  162. package/src/token/index.js +4 -4
  163. package/src/tokenFaucet.js +288 -154
  164. package/src/tx/retryTxSender.js +280 -0
  165. package/src/tx/retryTxSender.ts +5 -2
  166. package/src/tx/types.js +1 -1
  167. package/src/tx/types.ts +2 -1
  168. package/src/tx/utils.js +7 -6
  169. package/src/types.js +216 -0
  170. package/src/types.ts +110 -33
  171. package/src/userName.js +5 -5
  172. package/src/util/computeUnits.js +46 -11
  173. package/src/util/promiseTimeout.js +5 -5
  174. package/src/util/tps.js +46 -12
  175. package/src/wallet.js +55 -18
  176. package/lib/math/bankBalance.d.ts +0 -15
  177. package/lib/math/bankBalance.js +0 -150
  178. package/src/addresses/marketAddresses.js +0 -26
  179. package/src/constants/banks.js +0 -42
  180. package/src/examples/makeTradeExample.js +0 -80
  181. package/src/math/bankBalance.ts +0 -258
  182. package/src/math/state.js +0 -15
  183. package/src/math/utils.js.map +0 -1
  184. package/src/util/getTokenAddress.js +0 -9
@@ -54,20 +54,20 @@
54
54
  ]
55
55
  },
56
56
  {
57
- "name": "initializeBank",
57
+ "name": "initializeSpotMarket",
58
58
  "accounts": [
59
59
  {
60
- "name": "bank",
60
+ "name": "spotMarket",
61
61
  "isMut": true,
62
62
  "isSigner": false
63
63
  },
64
64
  {
65
- "name": "bankMint",
65
+ "name": "spotMarketMint",
66
66
  "isMut": false,
67
67
  "isSigner": false
68
68
  },
69
69
  {
70
- "name": "bankVault",
70
+ "name": "spotMarketVault",
71
71
  "isMut": true,
72
72
  "isSigner": false
73
73
  },
@@ -157,6 +157,72 @@
157
157
  }
158
158
  ]
159
159
  },
160
+ {
161
+ "name": "initializeSerumFulfillmentConfig",
162
+ "accounts": [
163
+ {
164
+ "name": "baseSpotMarket",
165
+ "isMut": false,
166
+ "isSigner": false
167
+ },
168
+ {
169
+ "name": "quoteSpotMarket",
170
+ "isMut": false,
171
+ "isSigner": false
172
+ },
173
+ {
174
+ "name": "state",
175
+ "isMut": true,
176
+ "isSigner": false
177
+ },
178
+ {
179
+ "name": "serumProgram",
180
+ "isMut": false,
181
+ "isSigner": false
182
+ },
183
+ {
184
+ "name": "serumMarket",
185
+ "isMut": false,
186
+ "isSigner": false
187
+ },
188
+ {
189
+ "name": "serumOpenOrders",
190
+ "isMut": true,
191
+ "isSigner": false
192
+ },
193
+ {
194
+ "name": "clearingHouseSigner",
195
+ "isMut": false,
196
+ "isSigner": false
197
+ },
198
+ {
199
+ "name": "serumFulfillmentConfig",
200
+ "isMut": true,
201
+ "isSigner": false
202
+ },
203
+ {
204
+ "name": "admin",
205
+ "isMut": true,
206
+ "isSigner": true
207
+ },
208
+ {
209
+ "name": "rent",
210
+ "isMut": false,
211
+ "isSigner": false
212
+ },
213
+ {
214
+ "name": "systemProgram",
215
+ "isMut": false,
216
+ "isSigner": false
217
+ }
218
+ ],
219
+ "args": [
220
+ {
221
+ "name": "marketIndex",
222
+ "type": "u64"
223
+ }
224
+ ]
225
+ },
160
226
  {
161
227
  "name": "initializeMarket",
162
228
  "accounts": [
@@ -252,7 +318,7 @@
252
318
  "isSigner": true
253
319
  },
254
320
  {
255
- "name": "bankVault",
321
+ "name": "spotMarketVault",
256
322
  "isMut": true,
257
323
  "isSigner": false
258
324
  },
@@ -269,7 +335,7 @@
269
335
  ],
270
336
  "args": [
271
337
  {
272
- "name": "bankIndex",
338
+ "name": "marketIndex",
273
339
  "type": "u64"
274
340
  },
275
341
  {
@@ -306,7 +372,7 @@
306
372
  "isSigner": true
307
373
  },
308
374
  {
309
- "name": "bankVault",
375
+ "name": "spotMarketVault",
310
376
  "isMut": true,
311
377
  "isSigner": false
312
378
  },
@@ -328,7 +394,7 @@
328
394
  ],
329
395
  "args": [
330
396
  {
331
- "name": "bankIndex",
397
+ "name": "marketIndex",
332
398
  "type": "u64"
333
399
  },
334
400
  {
@@ -372,7 +438,7 @@
372
438
  ],
373
439
  "args": [
374
440
  {
375
- "name": "bankIndex",
441
+ "name": "marketIndex",
376
442
  "type": "u64"
377
443
  },
378
444
  {
@@ -382,16 +448,32 @@
382
448
  ]
383
449
  },
384
450
  {
385
- "name": "updateBankCumulativeInterest",
451
+ "name": "updateSpotMarketCumulativeInterest",
386
452
  "accounts": [
387
453
  {
388
- "name": "bank",
454
+ "name": "spotMarket",
389
455
  "isMut": true,
390
456
  "isSigner": false
391
457
  }
392
458
  ],
393
459
  "args": []
394
460
  },
461
+ {
462
+ "name": "updateSpotMarketExpiry",
463
+ "accounts": [
464
+ {
465
+ "name": "spotMarket",
466
+ "isMut": true,
467
+ "isSigner": false
468
+ }
469
+ ],
470
+ "args": [
471
+ {
472
+ "name": "expiryTs",
473
+ "type": "i64"
474
+ }
475
+ ]
476
+ },
395
477
  {
396
478
  "name": "settleLp",
397
479
  "accounts": [
@@ -721,6 +803,122 @@
721
803
  }
722
804
  ]
723
805
  },
806
+ {
807
+ "name": "triggerSpotOrder",
808
+ "accounts": [
809
+ {
810
+ "name": "state",
811
+ "isMut": false,
812
+ "isSigner": false
813
+ },
814
+ {
815
+ "name": "authority",
816
+ "isMut": false,
817
+ "isSigner": true
818
+ },
819
+ {
820
+ "name": "filler",
821
+ "isMut": true,
822
+ "isSigner": false
823
+ },
824
+ {
825
+ "name": "user",
826
+ "isMut": true,
827
+ "isSigner": false
828
+ }
829
+ ],
830
+ "args": [
831
+ {
832
+ "name": "orderId",
833
+ "type": "u64"
834
+ }
835
+ ]
836
+ },
837
+ {
838
+ "name": "placeSpotOrder",
839
+ "accounts": [
840
+ {
841
+ "name": "state",
842
+ "isMut": false,
843
+ "isSigner": false
844
+ },
845
+ {
846
+ "name": "user",
847
+ "isMut": true,
848
+ "isSigner": false
849
+ },
850
+ {
851
+ "name": "authority",
852
+ "isMut": false,
853
+ "isSigner": true
854
+ }
855
+ ],
856
+ "args": [
857
+ {
858
+ "name": "params",
859
+ "type": {
860
+ "defined": "OrderParams"
861
+ }
862
+ }
863
+ ]
864
+ },
865
+ {
866
+ "name": "fillSpotOrder",
867
+ "accounts": [
868
+ {
869
+ "name": "state",
870
+ "isMut": false,
871
+ "isSigner": false
872
+ },
873
+ {
874
+ "name": "authority",
875
+ "isMut": false,
876
+ "isSigner": true
877
+ },
878
+ {
879
+ "name": "filler",
880
+ "isMut": true,
881
+ "isSigner": false
882
+ },
883
+ {
884
+ "name": "fillerStats",
885
+ "isMut": true,
886
+ "isSigner": false
887
+ },
888
+ {
889
+ "name": "user",
890
+ "isMut": true,
891
+ "isSigner": false
892
+ },
893
+ {
894
+ "name": "userStats",
895
+ "isMut": true,
896
+ "isSigner": false
897
+ }
898
+ ],
899
+ "args": [
900
+ {
901
+ "name": "orderId",
902
+ "type": {
903
+ "option": "u64"
904
+ }
905
+ },
906
+ {
907
+ "name": "fulfillmentType",
908
+ "type": {
909
+ "option": {
910
+ "defined": "SpotFulfillmentType"
911
+ }
912
+ }
913
+ },
914
+ {
915
+ "name": "makerOrderId",
916
+ "type": {
917
+ "option": "u64"
918
+ }
919
+ }
920
+ ]
921
+ },
724
922
  {
725
923
  "name": "updateAmms",
726
924
  "accounts": [
@@ -773,6 +971,53 @@
773
971
  }
774
972
  ]
775
973
  },
974
+ {
975
+ "name": "settleExpiredMarket",
976
+ "accounts": [
977
+ {
978
+ "name": "state",
979
+ "isMut": false,
980
+ "isSigner": false
981
+ },
982
+ {
983
+ "name": "authority",
984
+ "isMut": false,
985
+ "isSigner": true
986
+ }
987
+ ],
988
+ "args": [
989
+ {
990
+ "name": "marketIndex",
991
+ "type": "u64"
992
+ }
993
+ ]
994
+ },
995
+ {
996
+ "name": "settleExpiredPosition",
997
+ "accounts": [
998
+ {
999
+ "name": "state",
1000
+ "isMut": false,
1001
+ "isSigner": false
1002
+ },
1003
+ {
1004
+ "name": "user",
1005
+ "isMut": true,
1006
+ "isSigner": false
1007
+ },
1008
+ {
1009
+ "name": "authority",
1010
+ "isMut": false,
1011
+ "isSigner": true
1012
+ }
1013
+ ],
1014
+ "args": [
1015
+ {
1016
+ "name": "marketIndex",
1017
+ "type": "u64"
1018
+ }
1019
+ ]
1020
+ },
776
1021
  {
777
1022
  "name": "liquidatePerp",
778
1023
  "accounts": [
@@ -844,11 +1089,11 @@
844
1089
  ],
845
1090
  "args": [
846
1091
  {
847
- "name": "assetBankIndex",
1092
+ "name": "assetMarketIndex",
848
1093
  "type": "u64"
849
1094
  },
850
1095
  {
851
- "name": "liabilityBankIndex",
1096
+ "name": "liabilityMarketIndex",
852
1097
  "type": "u64"
853
1098
  },
854
1099
  {
@@ -887,7 +1132,7 @@
887
1132
  "type": "u64"
888
1133
  },
889
1134
  {
890
- "name": "liabilityBankIndex",
1135
+ "name": "spotMarketIndex",
891
1136
  "type": "u64"
892
1137
  },
893
1138
  {
@@ -926,7 +1171,7 @@
926
1171
  "type": "u64"
927
1172
  },
928
1173
  {
929
- "name": "assetBankIndex",
1174
+ "name": "spotMarketIndex",
930
1175
  "type": "u64"
931
1176
  },
932
1177
  {
@@ -936,7 +1181,7 @@
936
1181
  ]
937
1182
  },
938
1183
  {
939
- "name": "resolvePerpBankruptcy",
1184
+ "name": "resolvePerpPnlDeficit",
940
1185
  "accounts": [
941
1186
  {
942
1187
  "name": "state",
@@ -949,17 +1194,7 @@
949
1194
  "isSigner": true
950
1195
  },
951
1196
  {
952
- "name": "liquidator",
953
- "isMut": true,
954
- "isSigner": false
955
- },
956
- {
957
- "name": "user",
958
- "isMut": true,
959
- "isSigner": false
960
- },
961
- {
962
- "name": "bankVault",
1197
+ "name": "spotMarketVault",
963
1198
  "isMut": true,
964
1199
  "isSigner": false
965
1200
  },
@@ -981,17 +1216,17 @@
981
1216
  ],
982
1217
  "args": [
983
1218
  {
984
- "name": "bankIndex",
1219
+ "name": "spotMarketIndex",
985
1220
  "type": "u64"
986
1221
  },
987
1222
  {
988
- "name": "marketIndex",
1223
+ "name": "perpMarketIndex",
989
1224
  "type": "u64"
990
1225
  }
991
1226
  ]
992
1227
  },
993
1228
  {
994
- "name": "resolveBorrowBankruptcy",
1229
+ "name": "resolvePerpBankruptcy",
995
1230
  "accounts": [
996
1231
  {
997
1232
  "name": "state",
@@ -1014,7 +1249,7 @@
1014
1249
  "isSigner": false
1015
1250
  },
1016
1251
  {
1017
- "name": "bankVault",
1252
+ "name": "spotMarketVault",
1018
1253
  "isMut": true,
1019
1254
  "isSigner": false
1020
1255
  },
@@ -1036,13 +1271,17 @@
1036
1271
  ],
1037
1272
  "args": [
1038
1273
  {
1039
- "name": "bankIndex",
1274
+ "name": "quoteSpotMarketIndex",
1275
+ "type": "u64"
1276
+ },
1277
+ {
1278
+ "name": "marketIndex",
1040
1279
  "type": "u64"
1041
1280
  }
1042
1281
  ]
1043
1282
  },
1044
1283
  {
1045
- "name": "moveAmmPrice",
1284
+ "name": "resolveBorrowBankruptcy",
1046
1285
  "accounts": [
1047
1286
  {
1048
1287
  "name": "state",
@@ -1050,15 +1289,66 @@
1050
1289
  "isSigner": false
1051
1290
  },
1052
1291
  {
1053
- "name": "admin",
1292
+ "name": "authority",
1054
1293
  "isMut": false,
1055
1294
  "isSigner": true
1056
1295
  },
1057
1296
  {
1058
- "name": "market",
1297
+ "name": "liquidator",
1059
1298
  "isMut": true,
1060
1299
  "isSigner": false
1061
- }
1300
+ },
1301
+ {
1302
+ "name": "user",
1303
+ "isMut": true,
1304
+ "isSigner": false
1305
+ },
1306
+ {
1307
+ "name": "spotMarketVault",
1308
+ "isMut": true,
1309
+ "isSigner": false
1310
+ },
1311
+ {
1312
+ "name": "insuranceFundVault",
1313
+ "isMut": true,
1314
+ "isSigner": false
1315
+ },
1316
+ {
1317
+ "name": "clearingHouseSigner",
1318
+ "isMut": false,
1319
+ "isSigner": false
1320
+ },
1321
+ {
1322
+ "name": "tokenProgram",
1323
+ "isMut": false,
1324
+ "isSigner": false
1325
+ }
1326
+ ],
1327
+ "args": [
1328
+ {
1329
+ "name": "marketIndex",
1330
+ "type": "u64"
1331
+ }
1332
+ ]
1333
+ },
1334
+ {
1335
+ "name": "moveAmmPrice",
1336
+ "accounts": [
1337
+ {
1338
+ "name": "state",
1339
+ "isMut": false,
1340
+ "isSigner": false
1341
+ },
1342
+ {
1343
+ "name": "admin",
1344
+ "isMut": false,
1345
+ "isSigner": true
1346
+ },
1347
+ {
1348
+ "name": "perpMarket",
1349
+ "isMut": true,
1350
+ "isSigner": false
1351
+ }
1062
1352
  ],
1063
1353
  "args": [
1064
1354
  {
@@ -1068,9 +1358,85 @@
1068
1358
  {
1069
1359
  "name": "quoteAssetReserve",
1070
1360
  "type": "u128"
1361
+ },
1362
+ {
1363
+ "name": "sqrtK",
1364
+ "type": "u128"
1071
1365
  }
1072
1366
  ]
1073
1367
  },
1368
+ {
1369
+ "name": "updateMarketExpiry",
1370
+ "accounts": [
1371
+ {
1372
+ "name": "state",
1373
+ "isMut": false,
1374
+ "isSigner": false
1375
+ },
1376
+ {
1377
+ "name": "admin",
1378
+ "isMut": false,
1379
+ "isSigner": true
1380
+ },
1381
+ {
1382
+ "name": "perpMarket",
1383
+ "isMut": true,
1384
+ "isSigner": false
1385
+ }
1386
+ ],
1387
+ "args": [
1388
+ {
1389
+ "name": "expiryTs",
1390
+ "type": "i64"
1391
+ }
1392
+ ]
1393
+ },
1394
+ {
1395
+ "name": "settleExpiredMarketPoolsToRevenuePool",
1396
+ "accounts": [
1397
+ {
1398
+ "name": "state",
1399
+ "isMut": false,
1400
+ "isSigner": false
1401
+ },
1402
+ {
1403
+ "name": "admin",
1404
+ "isMut": false,
1405
+ "isSigner": true
1406
+ },
1407
+ {
1408
+ "name": "spotMarket",
1409
+ "isMut": true,
1410
+ "isSigner": false
1411
+ },
1412
+ {
1413
+ "name": "spotMarketVault",
1414
+ "isMut": true,
1415
+ "isSigner": false
1416
+ },
1417
+ {
1418
+ "name": "clearingHouseSigner",
1419
+ "isMut": false,
1420
+ "isSigner": false
1421
+ },
1422
+ {
1423
+ "name": "perpMarket",
1424
+ "isMut": true,
1425
+ "isSigner": false
1426
+ },
1427
+ {
1428
+ "name": "recipient",
1429
+ "isMut": true,
1430
+ "isSigner": false
1431
+ },
1432
+ {
1433
+ "name": "tokenProgram",
1434
+ "isMut": false,
1435
+ "isSigner": false
1436
+ }
1437
+ ],
1438
+ "args": []
1439
+ },
1074
1440
  {
1075
1441
  "name": "withdrawFromMarketToInsuranceVault",
1076
1442
  "accounts": [
@@ -1085,12 +1451,12 @@
1085
1451
  "isSigner": true
1086
1452
  },
1087
1453
  {
1088
- "name": "bank",
1454
+ "name": "spotMarket",
1089
1455
  "isMut": true,
1090
1456
  "isSigner": false
1091
1457
  },
1092
1458
  {
1093
- "name": "bankVault",
1459
+ "name": "spotMarketVault",
1094
1460
  "isMut": true,
1095
1461
  "isSigner": false
1096
1462
  },
@@ -1100,7 +1466,7 @@
1100
1466
  "isSigner": false
1101
1467
  },
1102
1468
  {
1103
- "name": "market",
1469
+ "name": "perpMarket",
1104
1470
  "isMut": true,
1105
1471
  "isSigner": false
1106
1472
  },
@@ -1192,12 +1558,12 @@
1192
1558
  "isSigner": false
1193
1559
  },
1194
1560
  {
1195
- "name": "bank",
1561
+ "name": "quoteSpotMarket",
1196
1562
  "isMut": true,
1197
1563
  "isSigner": false
1198
1564
  },
1199
1565
  {
1200
- "name": "bankVault",
1566
+ "name": "spotMarketVault",
1201
1567
  "isMut": true,
1202
1568
  "isSigner": false
1203
1569
  },
@@ -1388,6 +1754,36 @@
1388
1754
  ],
1389
1755
  "args": []
1390
1756
  },
1757
+ {
1758
+ "name": "updateUserName",
1759
+ "accounts": [
1760
+ {
1761
+ "name": "user",
1762
+ "isMut": true,
1763
+ "isSigner": false
1764
+ },
1765
+ {
1766
+ "name": "authority",
1767
+ "isMut": false,
1768
+ "isSigner": true
1769
+ }
1770
+ ],
1771
+ "args": [
1772
+ {
1773
+ "name": "userId",
1774
+ "type": "u8"
1775
+ },
1776
+ {
1777
+ "name": "name",
1778
+ "type": {
1779
+ "array": [
1780
+ "u8",
1781
+ 32
1782
+ ]
1783
+ }
1784
+ }
1785
+ ]
1786
+ },
1391
1787
  {
1392
1788
  "name": "settleFundingPayment",
1393
1789
  "accounts": [
@@ -1492,7 +1888,7 @@
1492
1888
  ]
1493
1889
  },
1494
1890
  {
1495
- "name": "updateMarketMaxRevenueWithdrawPerPeriod",
1891
+ "name": "updateMarketMaxImbalances",
1496
1892
  "accounts": [
1497
1893
  {
1498
1894
  "name": "admin",
@@ -1511,9 +1907,17 @@
1511
1907
  }
1512
1908
  ],
1513
1909
  "args": [
1910
+ {
1911
+ "name": "unrealizedMaxImbalance",
1912
+ "type": "u128"
1913
+ },
1514
1914
  {
1515
1915
  "name": "maxRevenueWithdrawPerPeriod",
1516
1916
  "type": "u128"
1917
+ },
1918
+ {
1919
+ "name": "quoteMaxInsurance",
1920
+ "type": "u128"
1517
1921
  }
1518
1922
  ]
1519
1923
  },
@@ -1544,7 +1948,7 @@
1544
1948
  ]
1545
1949
  },
1546
1950
  {
1547
- "name": "updateBankInsuranceWithdrawEscrowPeriod",
1951
+ "name": "updateInsuranceWithdrawEscrowPeriod",
1548
1952
  "accounts": [
1549
1953
  {
1550
1954
  "name": "admin",
@@ -1557,7 +1961,7 @@
1557
1961
  "isSigner": false
1558
1962
  },
1559
1963
  {
1560
- "name": "bank",
1964
+ "name": "spotMarket",
1561
1965
  "isMut": true,
1562
1966
  "isSigner": false
1563
1967
  }
@@ -1570,7 +1974,7 @@
1570
1974
  ]
1571
1975
  },
1572
1976
  {
1573
- "name": "updateBankLiquidationFee",
1977
+ "name": "updateSpotMarketLiquidationFee",
1574
1978
  "accounts": [
1575
1979
  {
1576
1980
  "name": "admin",
@@ -1583,7 +1987,7 @@
1583
1987
  "isSigner": false
1584
1988
  },
1585
1989
  {
1586
- "name": "bank",
1990
+ "name": "spotMarket",
1587
1991
  "isMut": true,
1588
1992
  "isSigner": false
1589
1993
  }
@@ -1596,7 +2000,7 @@
1596
2000
  ]
1597
2001
  },
1598
2002
  {
1599
- "name": "updateBankWithdrawGuardThreshold",
2003
+ "name": "updateWithdrawGuardThreshold",
1600
2004
  "accounts": [
1601
2005
  {
1602
2006
  "name": "admin",
@@ -1609,7 +2013,7 @@
1609
2013
  "isSigner": false
1610
2014
  },
1611
2015
  {
1612
- "name": "bank",
2016
+ "name": "spotMarket",
1613
2017
  "isMut": true,
1614
2018
  "isSigner": false
1615
2019
  }
@@ -1622,7 +2026,7 @@
1622
2026
  ]
1623
2027
  },
1624
2028
  {
1625
- "name": "updateBankIfFactor",
2029
+ "name": "updateSpotMarketIfFactor",
1626
2030
  "accounts": [
1627
2031
  {
1628
2032
  "name": "admin",
@@ -1635,14 +2039,14 @@
1635
2039
  "isSigner": false
1636
2040
  },
1637
2041
  {
1638
- "name": "bank",
2042
+ "name": "spotMarket",
1639
2043
  "isMut": true,
1640
2044
  "isSigner": false
1641
2045
  }
1642
2046
  ],
1643
2047
  "args": [
1644
2048
  {
1645
- "name": "bankIndex",
2049
+ "name": "spotMarketIndex",
1646
2050
  "type": "u64"
1647
2051
  },
1648
2052
  {
@@ -1660,7 +2064,7 @@
1660
2064
  ]
1661
2065
  },
1662
2066
  {
1663
- "name": "updateBankRevenueSettlePeriod",
2067
+ "name": "updateSpotMarketRevenueSettlePeriod",
1664
2068
  "accounts": [
1665
2069
  {
1666
2070
  "name": "admin",
@@ -1673,7 +2077,7 @@
1673
2077
  "isSigner": false
1674
2078
  },
1675
2079
  {
1676
- "name": "bank",
2080
+ "name": "spotMarket",
1677
2081
  "isMut": true,
1678
2082
  "isSigner": false
1679
2083
  }
@@ -1733,11 +2137,11 @@
1733
2137
  "args": [
1734
2138
  {
1735
2139
  "name": "unrealizedInitialAssetWeight",
1736
- "type": "u8"
2140
+ "type": "u32"
1737
2141
  },
1738
2142
  {
1739
2143
  "name": "unrealizedMaintenanceAssetWeight",
1740
- "type": "u8"
2144
+ "type": "u32"
1741
2145
  }
1742
2146
  ]
1743
2147
  },
@@ -2343,7 +2747,7 @@
2343
2747
  "name": "initializeInsuranceFundStake",
2344
2748
  "accounts": [
2345
2749
  {
2346
- "name": "bank",
2750
+ "name": "spotMarket",
2347
2751
  "isMut": false,
2348
2752
  "isSigner": false
2349
2753
  },
@@ -2385,7 +2789,7 @@
2385
2789
  ],
2386
2790
  "args": [
2387
2791
  {
2388
- "name": "bankIndex",
2792
+ "name": "marketIndex",
2389
2793
  "type": "u64"
2390
2794
  }
2391
2795
  ]
@@ -2399,12 +2803,12 @@
2399
2803
  "isSigner": false
2400
2804
  },
2401
2805
  {
2402
- "name": "bank",
2806
+ "name": "spotMarket",
2403
2807
  "isMut": false,
2404
2808
  "isSigner": false
2405
2809
  },
2406
2810
  {
2407
- "name": "bankVault",
2811
+ "name": "spotMarketVault",
2408
2812
  "isMut": true,
2409
2813
  "isSigner": false
2410
2814
  },
@@ -2426,7 +2830,7 @@
2426
2830
  ],
2427
2831
  "args": [
2428
2832
  {
2429
- "name": "bankIndex",
2833
+ "name": "marketIndex",
2430
2834
  "type": "u64"
2431
2835
  }
2432
2836
  ]
@@ -2435,7 +2839,7 @@
2435
2839
  "name": "addInsuranceFundStake",
2436
2840
  "accounts": [
2437
2841
  {
2438
- "name": "bank",
2842
+ "name": "spotMarket",
2439
2843
  "isMut": false,
2440
2844
  "isSigner": false
2441
2845
  },
@@ -2472,7 +2876,7 @@
2472
2876
  ],
2473
2877
  "args": [
2474
2878
  {
2475
- "name": "bankIndex",
2879
+ "name": "marketIndex",
2476
2880
  "type": "u64"
2477
2881
  },
2478
2882
  {
@@ -2485,7 +2889,7 @@
2485
2889
  "name": "requestRemoveInsuranceFundStake",
2486
2890
  "accounts": [
2487
2891
  {
2488
- "name": "bank",
2892
+ "name": "spotMarket",
2489
2893
  "isMut": false,
2490
2894
  "isSigner": false
2491
2895
  },
@@ -2512,7 +2916,7 @@
2512
2916
  ],
2513
2917
  "args": [
2514
2918
  {
2515
- "name": "bankIndex",
2919
+ "name": "marketIndex",
2516
2920
  "type": "u64"
2517
2921
  },
2518
2922
  {
@@ -2525,7 +2929,7 @@
2525
2929
  "name": "cancelRequestRemoveInsuranceFundStake",
2526
2930
  "accounts": [
2527
2931
  {
2528
- "name": "bank",
2932
+ "name": "spotMarket",
2529
2933
  "isMut": false,
2530
2934
  "isSigner": false
2531
2935
  },
@@ -2552,7 +2956,7 @@
2552
2956
  ],
2553
2957
  "args": [
2554
2958
  {
2555
- "name": "bankIndex",
2959
+ "name": "marketIndex",
2556
2960
  "type": "u64"
2557
2961
  }
2558
2962
  ]
@@ -2566,7 +2970,7 @@
2566
2970
  "isSigner": false
2567
2971
  },
2568
2972
  {
2569
- "name": "bank",
2973
+ "name": "spotMarket",
2570
2974
  "isMut": false,
2571
2975
  "isSigner": false
2572
2976
  },
@@ -2608,7 +3012,7 @@
2608
3012
  ],
2609
3013
  "args": [
2610
3014
  {
2611
- "name": "bankIndex",
3015
+ "name": "marketIndex",
2612
3016
  "type": "u64"
2613
3017
  }
2614
3018
  ]
@@ -2616,18 +3020,216 @@
2616
3020
  ],
2617
3021
  "accounts": [
2618
3022
  {
2619
- "name": "Bank",
3023
+ "name": "InsuranceFundStake",
3024
+ "type": {
3025
+ "kind": "struct",
3026
+ "fields": [
3027
+ {
3028
+ "name": "authority",
3029
+ "type": "publicKey"
3030
+ },
3031
+ {
3032
+ "name": "marketIndex",
3033
+ "type": "u64"
3034
+ },
3035
+ {
3036
+ "name": "ifShares",
3037
+ "type": "u128"
3038
+ },
3039
+ {
3040
+ "name": "ifBase",
3041
+ "type": "u128"
3042
+ },
3043
+ {
3044
+ "name": "lastValidTs",
3045
+ "type": "i64"
3046
+ },
3047
+ {
3048
+ "name": "lastWithdrawRequestShares",
3049
+ "type": "u128"
3050
+ },
3051
+ {
3052
+ "name": "lastWithdrawRequestValue",
3053
+ "type": "u64"
3054
+ },
3055
+ {
3056
+ "name": "lastWithdrawRequestTs",
3057
+ "type": "i64"
3058
+ },
3059
+ {
3060
+ "name": "costBasis",
3061
+ "type": "i64"
3062
+ }
3063
+ ]
3064
+ }
3065
+ },
3066
+ {
3067
+ "name": "PerpMarket",
3068
+ "type": {
3069
+ "kind": "struct",
3070
+ "fields": [
3071
+ {
3072
+ "name": "marketIndex",
3073
+ "type": "u64"
3074
+ },
3075
+ {
3076
+ "name": "pubkey",
3077
+ "type": "publicKey"
3078
+ },
3079
+ {
3080
+ "name": "status",
3081
+ "type": {
3082
+ "defined": "MarketStatus"
3083
+ }
3084
+ },
3085
+ {
3086
+ "name": "contractType",
3087
+ "type": {
3088
+ "defined": "ContractType"
3089
+ }
3090
+ },
3091
+ {
3092
+ "name": "settlementPrice",
3093
+ "type": "i128"
3094
+ },
3095
+ {
3096
+ "name": "expiryTs",
3097
+ "type": "i64"
3098
+ },
3099
+ {
3100
+ "name": "amm",
3101
+ "type": {
3102
+ "defined": "AMM"
3103
+ }
3104
+ },
3105
+ {
3106
+ "name": "baseAssetAmountLong",
3107
+ "type": "i128"
3108
+ },
3109
+ {
3110
+ "name": "baseAssetAmountShort",
3111
+ "type": "i128"
3112
+ },
3113
+ {
3114
+ "name": "openInterest",
3115
+ "type": "u128"
3116
+ },
3117
+ {
3118
+ "name": "marginRatioInitial",
3119
+ "type": "u32"
3120
+ },
3121
+ {
3122
+ "name": "marginRatioMaintenance",
3123
+ "type": "u32"
3124
+ },
3125
+ {
3126
+ "name": "nextFillRecordId",
3127
+ "type": "u64"
3128
+ },
3129
+ {
3130
+ "name": "nextFundingRateRecordId",
3131
+ "type": "u64"
3132
+ },
3133
+ {
3134
+ "name": "nextCurveRecordId",
3135
+ "type": "u64"
3136
+ },
3137
+ {
3138
+ "name": "pnlPool",
3139
+ "type": {
3140
+ "defined": "PoolBalance"
3141
+ }
3142
+ },
3143
+ {
3144
+ "name": "revenueWithdrawSinceLastSettle",
3145
+ "type": "u128"
3146
+ },
3147
+ {
3148
+ "name": "maxRevenueWithdrawPerPeriod",
3149
+ "type": "u128"
3150
+ },
3151
+ {
3152
+ "name": "lastRevenueWithdrawTs",
3153
+ "type": "i64"
3154
+ },
3155
+ {
3156
+ "name": "imfFactor",
3157
+ "type": "u128"
3158
+ },
3159
+ {
3160
+ "name": "unrealizedInitialAssetWeight",
3161
+ "type": "u32"
3162
+ },
3163
+ {
3164
+ "name": "unrealizedMaintenanceAssetWeight",
3165
+ "type": "u32"
3166
+ },
3167
+ {
3168
+ "name": "unrealizedImfFactor",
3169
+ "type": "u128"
3170
+ },
3171
+ {
3172
+ "name": "unrealizedMaxImbalance",
3173
+ "type": "u128"
3174
+ },
3175
+ {
3176
+ "name": "liquidationFee",
3177
+ "type": "u128"
3178
+ },
3179
+ {
3180
+ "name": "quoteMaxInsurance",
3181
+ "type": "u128"
3182
+ },
3183
+ {
3184
+ "name": "quoteSettledInsurance",
3185
+ "type": "u128"
3186
+ },
3187
+ {
3188
+ "name": "padding0",
3189
+ "type": "u32"
3190
+ },
3191
+ {
3192
+ "name": "padding1",
3193
+ "type": "u128"
3194
+ },
3195
+ {
3196
+ "name": "padding2",
3197
+ "type": "u128"
3198
+ },
3199
+ {
3200
+ "name": "padding3",
3201
+ "type": "u128"
3202
+ },
3203
+ {
3204
+ "name": "padding4",
3205
+ "type": "u128"
3206
+ }
3207
+ ]
3208
+ }
3209
+ },
3210
+ {
3211
+ "name": "SpotMarket",
2620
3212
  "type": {
2621
3213
  "kind": "struct",
2622
3214
  "fields": [
2623
3215
  {
2624
- "name": "bankIndex",
3216
+ "name": "marketIndex",
2625
3217
  "type": "u64"
2626
3218
  },
2627
3219
  {
2628
3220
  "name": "pubkey",
2629
3221
  "type": "publicKey"
2630
3222
  },
3223
+ {
3224
+ "name": "status",
3225
+ "type": {
3226
+ "defined": "MarketStatus"
3227
+ }
3228
+ },
3229
+ {
3230
+ "name": "expiryTs",
3231
+ "type": "i64"
3232
+ },
2631
3233
  {
2632
3234
  "name": "oracle",
2633
3235
  "type": "publicKey"
@@ -2771,166 +3373,92 @@
2771
3373
  {
2772
3374
  "name": "withdrawGuardThreshold",
2773
3375
  "type": "u128"
2774
- }
2775
- ]
2776
- }
2777
- },
2778
- {
2779
- "name": "InsuranceFundStake",
2780
- "type": {
2781
- "kind": "struct",
2782
- "fields": [
2783
- {
2784
- "name": "authority",
2785
- "type": "publicKey"
2786
- },
2787
- {
2788
- "name": "bankIndex",
2789
- "type": "u64"
2790
- },
2791
- {
2792
- "name": "ifShares",
2793
- "type": "u128"
2794
- },
2795
- {
2796
- "name": "ifBase",
2797
- "type": "u128"
2798
- },
2799
- {
2800
- "name": "lastValidTs",
2801
- "type": "i64"
2802
3376
  },
2803
3377
  {
2804
- "name": "lastWithdrawRequestShares",
3378
+ "name": "orderStepSize",
2805
3379
  "type": "u128"
2806
3380
  },
2807
3381
  {
2808
- "name": "lastWithdrawRequestValue",
3382
+ "name": "nextFillRecordId",
2809
3383
  "type": "u64"
2810
3384
  },
2811
3385
  {
2812
- "name": "lastWithdrawRequestTs",
2813
- "type": "i64"
3386
+ "name": "totalSpotFee",
3387
+ "type": "u128"
2814
3388
  },
2815
3389
  {
2816
- "name": "costBasis",
2817
- "type": "i64"
3390
+ "name": "spotFeePool",
3391
+ "type": {
3392
+ "defined": "PoolBalance"
3393
+ }
2818
3394
  }
2819
3395
  ]
2820
3396
  }
2821
3397
  },
2822
3398
  {
2823
- "name": "Market",
3399
+ "name": "SerumV3FulfillmentConfig",
2824
3400
  "type": {
2825
3401
  "kind": "struct",
2826
3402
  "fields": [
2827
- {
2828
- "name": "marketIndex",
2829
- "type": "u64"
2830
- },
2831
3403
  {
2832
3404
  "name": "pubkey",
2833
3405
  "type": "publicKey"
2834
3406
  },
2835
3407
  {
2836
- "name": "initialized",
2837
- "type": "bool"
2838
- },
2839
- {
2840
- "name": "amm",
3408
+ "name": "fulfillmentType",
2841
3409
  "type": {
2842
- "defined": "AMM"
3410
+ "defined": "SpotFulfillmentType"
2843
3411
  }
2844
3412
  },
2845
3413
  {
2846
- "name": "baseAssetAmountLong",
2847
- "type": "i128"
2848
- },
2849
- {
2850
- "name": "baseAssetAmountShort",
2851
- "type": "i128"
2852
- },
2853
- {
2854
- "name": "openInterest",
2855
- "type": "u128"
2856
- },
2857
- {
2858
- "name": "marginRatioInitial",
2859
- "type": "u32"
2860
- },
2861
- {
2862
- "name": "marginRatioMaintenance",
2863
- "type": "u32"
2864
- },
2865
- {
2866
- "name": "nextFillRecordId",
2867
- "type": "u64"
2868
- },
2869
- {
2870
- "name": "nextFundingRateRecordId",
2871
- "type": "u64"
2872
- },
2873
- {
2874
- "name": "nextCurveRecordId",
2875
- "type": "u64"
2876
- },
2877
- {
2878
- "name": "pnlPool",
3414
+ "name": "status",
2879
3415
  "type": {
2880
- "defined": "PoolBalance"
3416
+ "defined": "SpotFulfillmentStatus"
2881
3417
  }
2882
3418
  },
2883
3419
  {
2884
- "name": "revenueWithdrawSinceLastSettle",
2885
- "type": "u128"
2886
- },
2887
- {
2888
- "name": "maxRevenueWithdrawPerPeriod",
2889
- "type": "u128"
2890
- },
2891
- {
2892
- "name": "lastRevenueWithdrawTs",
2893
- "type": "i64"
3420
+ "name": "marketIndex",
3421
+ "type": "u64"
2894
3422
  },
2895
- {
2896
- "name": "imfFactor",
2897
- "type": "u128"
3423
+ {
3424
+ "name": "serumProgramId",
3425
+ "type": "publicKey"
2898
3426
  },
2899
3427
  {
2900
- "name": "unrealizedInitialAssetWeight",
2901
- "type": "u8"
3428
+ "name": "serumMarket",
3429
+ "type": "publicKey"
2902
3430
  },
2903
3431
  {
2904
- "name": "unrealizedMaintenanceAssetWeight",
2905
- "type": "u8"
3432
+ "name": "serumRequestQueue",
3433
+ "type": "publicKey"
2906
3434
  },
2907
3435
  {
2908
- "name": "unrealizedImfFactor",
2909
- "type": "u128"
3436
+ "name": "serumEventQueue",
3437
+ "type": "publicKey"
2910
3438
  },
2911
3439
  {
2912
- "name": "liquidationFee",
2913
- "type": "u128"
3440
+ "name": "serumBids",
3441
+ "type": "publicKey"
2914
3442
  },
2915
3443
  {
2916
- "name": "padding0",
2917
- "type": "u32"
3444
+ "name": "serumAsks",
3445
+ "type": "publicKey"
2918
3446
  },
2919
3447
  {
2920
- "name": "padding1",
2921
- "type": "u128"
3448
+ "name": "serumBaseVault",
3449
+ "type": "publicKey"
2922
3450
  },
2923
3451
  {
2924
- "name": "padding2",
2925
- "type": "u128"
3452
+ "name": "serumQuoteVault",
3453
+ "type": "publicKey"
2926
3454
  },
2927
3455
  {
2928
- "name": "padding3",
2929
- "type": "u128"
3456
+ "name": "serumOpenOrders",
3457
+ "type": "publicKey"
2930
3458
  },
2931
3459
  {
2932
- "name": "padding4",
2933
- "type": "u128"
3460
+ "name": "serumSignerNonce",
3461
+ "type": "u64"
2934
3462
  }
2935
3463
  ]
2936
3464
  }
@@ -3005,7 +3533,13 @@
3005
3533
  "type": "u64"
3006
3534
  },
3007
3535
  {
3008
- "name": "feeStructure",
3536
+ "name": "perpFeeStructure",
3537
+ "type": {
3538
+ "defined": "FeeStructure"
3539
+ }
3540
+ },
3541
+ {
3542
+ "name": "spotFeeStructure",
3009
3543
  "type": {
3010
3544
  "defined": "FeeStructure"
3011
3545
  }
@@ -3029,7 +3563,7 @@
3029
3563
  "type": "u64"
3030
3564
  },
3031
3565
  {
3032
- "name": "numberOfBanks",
3566
+ "name": "numberOfSpotMarkets",
3033
3567
  "type": "u64"
3034
3568
  },
3035
3569
  {
@@ -3037,17 +3571,29 @@
3037
3571
  "type": "u128"
3038
3572
  },
3039
3573
  {
3040
- "name": "minAuctionDuration",
3574
+ "name": "minPerpAuctionDuration",
3041
3575
  "type": "u8"
3042
3576
  },
3043
3577
  {
3044
- "name": "maxAuctionDuration",
3578
+ "name": "maxPerpAuctionDuration",
3045
3579
  "type": "u8"
3046
3580
  },
3047
3581
  {
3048
- "name": "liquidationMarginBufferRatio",
3582
+ "name": "minSpotAuctionDuration",
3583
+ "type": "u8"
3584
+ },
3585
+ {
3586
+ "name": "maxSpotAuctionDuration",
3049
3587
  "type": "u8"
3050
3588
  },
3589
+ {
3590
+ "name": "settlementDuration",
3591
+ "type": "u16"
3592
+ },
3593
+ {
3594
+ "name": "liquidationMarginBufferRatio",
3595
+ "type": "u32"
3596
+ },
3051
3597
  {
3052
3598
  "name": "signer",
3053
3599
  "type": "publicKey"
@@ -3090,11 +3636,11 @@
3090
3636
  }
3091
3637
  },
3092
3638
  {
3093
- "name": "bankBalances",
3639
+ "name": "spotPositions",
3094
3640
  "type": {
3095
3641
  "array": [
3096
3642
  {
3097
- "defined": "UserBankBalance"
3643
+ "defined": "SpotPosition"
3098
3644
  },
3099
3645
  8
3100
3646
  ]
@@ -3105,11 +3651,11 @@
3105
3651
  "type": "u64"
3106
3652
  },
3107
3653
  {
3108
- "name": "positions",
3654
+ "name": "perpPositions",
3109
3655
  "type": {
3110
3656
  "array": [
3111
3657
  {
3112
- "defined": "MarketPosition"
3658
+ "defined": "PerpPosition"
3113
3659
  },
3114
3660
  5
3115
3661
  ]
@@ -3164,7 +3710,7 @@
3164
3710
  },
3165
3711
  {
3166
3712
  "name": "totalReferrerReward",
3167
- "type": "u128"
3713
+ "type": "u64"
3168
3714
  },
3169
3715
  {
3170
3716
  "name": "fees",
@@ -3216,6 +3762,12 @@
3216
3762
  "defined": "OrderType"
3217
3763
  }
3218
3764
  },
3765
+ {
3766
+ "name": "marketType",
3767
+ "type": {
3768
+ "defined": "MarketType"
3769
+ }
3770
+ },
3219
3771
  {
3220
3772
  "name": "direction",
3221
3773
  "type": {
@@ -3260,12 +3812,6 @@
3260
3812
  "defined": "OrderTriggerCondition"
3261
3813
  }
3262
3814
  },
3263
- {
3264
- "name": "optionalAccounts",
3265
- "type": {
3266
- "defined": "OrderParamsOptionalAccounts"
3267
- }
3268
- },
3269
3815
  {
3270
3816
  "name": "positionLimit",
3271
3817
  "type": "u128"
@@ -3289,22 +3835,6 @@
3289
3835
  ]
3290
3836
  }
3291
3837
  },
3292
- {
3293
- "name": "OrderParamsOptionalAccounts",
3294
- "type": {
3295
- "kind": "struct",
3296
- "fields": [
3297
- {
3298
- "name": "discountToken",
3299
- "type": "bool"
3300
- },
3301
- {
3302
- "name": "referrer",
3303
- "type": "bool"
3304
- }
3305
- ]
3306
- }
3307
- },
3308
3838
  {
3309
3839
  "name": "LiquidatePerpRecord",
3310
3840
  "type": {
@@ -3369,7 +3899,7 @@
3369
3899
  "kind": "struct",
3370
3900
  "fields": [
3371
3901
  {
3372
- "name": "assetBankIndex",
3902
+ "name": "assetMarketIndex",
3373
3903
  "type": "u64"
3374
3904
  },
3375
3905
  {
@@ -3381,7 +3911,7 @@
3381
3911
  "type": "u128"
3382
3912
  },
3383
3913
  {
3384
- "name": "liabilityBankIndex",
3914
+ "name": "liabilityMarketIndex",
3385
3915
  "type": "u64"
3386
3916
  },
3387
3917
  {
@@ -3401,7 +3931,7 @@
3401
3931
  "kind": "struct",
3402
3932
  "fields": [
3403
3933
  {
3404
- "name": "marketIndex",
3934
+ "name": "perpMarketIndex",
3405
3935
  "type": "u64"
3406
3936
  },
3407
3937
  {
@@ -3413,7 +3943,7 @@
3413
3943
  "type": "u128"
3414
3944
  },
3415
3945
  {
3416
- "name": "liabilityBankIndex",
3946
+ "name": "liabilityMarketIndex",
3417
3947
  "type": "u64"
3418
3948
  },
3419
3949
  {
@@ -3433,7 +3963,7 @@
3433
3963
  "kind": "struct",
3434
3964
  "fields": [
3435
3965
  {
3436
- "name": "marketIndex",
3966
+ "name": "perpMarketIndex",
3437
3967
  "type": "u64"
3438
3968
  },
3439
3969
  {
@@ -3445,7 +3975,7 @@
3445
3975
  "type": "u128"
3446
3976
  },
3447
3977
  {
3448
- "name": "assetBankIndex",
3978
+ "name": "assetMarketIndex",
3449
3979
  "type": "u64"
3450
3980
  },
3451
3981
  {
@@ -3489,7 +4019,7 @@
3489
4019
  "kind": "struct",
3490
4020
  "fields": [
3491
4021
  {
3492
- "name": "bankIndex",
4022
+ "name": "marketIndex",
3493
4023
  "type": "u64"
3494
4024
  },
3495
4025
  {
@@ -3629,7 +4159,7 @@
3629
4159
  {
3630
4160
  "name": "marketPositionPerLp",
3631
4161
  "type": {
3632
- "defined": "MarketPosition"
4162
+ "defined": "PerpPosition"
3633
4163
  }
3634
4164
  },
3635
4165
  {
@@ -3672,6 +4202,10 @@
3672
4202
  "name": "cumulativeRepegRebateShort",
3673
4203
  "type": "u128"
3674
4204
  },
4205
+ {
4206
+ "name": "cumulativeSocialLoss",
4207
+ "type": "i128"
4208
+ },
3675
4209
  {
3676
4210
  "name": "markStd",
3677
4211
  "type": "u64"
@@ -3707,7 +4241,7 @@
3707
4241
  {
3708
4242
  "name": "marketPosition",
3709
4243
  "type": {
3710
- "defined": "MarketPosition"
4244
+ "defined": "PerpPosition"
3711
4245
  }
3712
4246
  },
3713
4247
  {
@@ -4040,7 +4574,7 @@
4040
4574
  },
4041
4575
  {
4042
4576
  "name": "totalLpFees",
4043
- "type": "u128"
4577
+ "type": "u64"
4044
4578
  },
4045
4579
  {
4046
4580
  "name": "totalFeeRebate",
@@ -4048,39 +4582,51 @@
4048
4582
  },
4049
4583
  {
4050
4584
  "name": "totalTokenDiscount",
4051
- "type": "u128"
4585
+ "type": "u64"
4052
4586
  },
4053
4587
  {
4054
4588
  "name": "totalRefereeDiscount",
4055
- "type": "u128"
4589
+ "type": "u64"
4056
4590
  }
4057
4591
  ]
4058
4592
  }
4059
4593
  },
4060
4594
  {
4061
- "name": "UserBankBalance",
4595
+ "name": "SpotPosition",
4062
4596
  "type": {
4063
4597
  "kind": "struct",
4064
4598
  "fields": [
4065
4599
  {
4066
- "name": "bankIndex",
4600
+ "name": "marketIndex",
4067
4601
  "type": "u64"
4068
4602
  },
4069
4603
  {
4070
4604
  "name": "balanceType",
4071
4605
  "type": {
4072
- "defined": "BankBalanceType"
4606
+ "defined": "SpotBalanceType"
4073
4607
  }
4074
4608
  },
4075
4609
  {
4076
4610
  "name": "balance",
4077
4611
  "type": "u128"
4612
+ },
4613
+ {
4614
+ "name": "openOrders",
4615
+ "type": "u8"
4616
+ },
4617
+ {
4618
+ "name": "openBids",
4619
+ "type": "i128"
4620
+ },
4621
+ {
4622
+ "name": "openAsks",
4623
+ "type": "i128"
4078
4624
  }
4079
4625
  ]
4080
4626
  }
4081
4627
  },
4082
4628
  {
4083
- "name": "MarketPosition",
4629
+ "name": "PerpPosition",
4084
4630
  "type": {
4085
4631
  "kind": "struct",
4086
4632
  "fields": [
@@ -4132,6 +4678,10 @@
4132
4678
  "name": "lpShares",
4133
4679
  "type": "u128"
4134
4680
  },
4681
+ {
4682
+ "name": "remainderBaseAssetAmount",
4683
+ "type": "i128"
4684
+ },
4135
4685
  {
4136
4686
  "name": "lastNetBaseAssetAmountPerLp",
4137
4687
  "type": "i128"
@@ -4184,6 +4734,12 @@
4184
4734
  "defined": "OrderType"
4185
4735
  }
4186
4736
  },
4737
+ {
4738
+ "name": "marketType",
4739
+ "type": {
4740
+ "defined": "MarketType"
4741
+ }
4742
+ },
4187
4743
  {
4188
4744
  "name": "ts",
4189
4745
  "type": "i64"
@@ -4290,6 +4846,20 @@
4290
4846
  ]
4291
4847
  }
4292
4848
  },
4849
+ {
4850
+ "name": "SpotFulfillmentType",
4851
+ "type": {
4852
+ "kind": "enum",
4853
+ "variants": [
4854
+ {
4855
+ "name": "SerumV3"
4856
+ },
4857
+ {
4858
+ "name": "None"
4859
+ }
4860
+ ]
4861
+ }
4862
+ },
4293
4863
  {
4294
4864
  "name": "SwapDirection",
4295
4865
  "type": {
@@ -4383,20 +4953,6 @@
4383
4953
  ]
4384
4954
  }
4385
4955
  },
4386
- {
4387
- "name": "BankBalanceType",
4388
- "type": {
4389
- "kind": "enum",
4390
- "variants": [
4391
- {
4392
- "name": "Deposit"
4393
- },
4394
- {
4395
- "name": "Borrow"
4396
- }
4397
- ]
4398
- }
4399
- },
4400
4956
  {
4401
4957
  "name": "DepositDirection",
4402
4958
  "type": {
@@ -4530,7 +5086,7 @@
4530
5086
  }
4531
5087
  },
4532
5088
  {
4533
- "name": "FulfillmentMethod",
5089
+ "name": "PerpFulfillmentMethod",
4534
5090
  "type": {
4535
5091
  "kind": "enum",
4536
5092
  "variants": [
@@ -4543,6 +5099,51 @@
4543
5099
  ]
4544
5100
  }
4545
5101
  },
5102
+ {
5103
+ "name": "SpotFulfillmentMethod",
5104
+ "type": {
5105
+ "kind": "enum",
5106
+ "variants": [
5107
+ {
5108
+ "name": "SerumV3"
5109
+ },
5110
+ {
5111
+ "name": "Match"
5112
+ }
5113
+ ]
5114
+ }
5115
+ },
5116
+ {
5117
+ "name": "MarketStatus",
5118
+ "type": {
5119
+ "kind": "enum",
5120
+ "variants": [
5121
+ {
5122
+ "name": "Initialized"
5123
+ },
5124
+ {
5125
+ "name": "ReduceOnly"
5126
+ },
5127
+ {
5128
+ "name": "Settlement"
5129
+ }
5130
+ ]
5131
+ }
5132
+ },
5133
+ {
5134
+ "name": "ContractType",
5135
+ "type": {
5136
+ "kind": "enum",
5137
+ "variants": [
5138
+ {
5139
+ "name": "Perpetual"
5140
+ },
5141
+ {
5142
+ "name": "Future"
5143
+ }
5144
+ ]
5145
+ }
5146
+ },
4546
5147
  {
4547
5148
  "name": "OracleSource",
4548
5149
  "type": {
@@ -4560,6 +5161,48 @@
4560
5161
  ]
4561
5162
  }
4562
5163
  },
5164
+ {
5165
+ "name": "SpotBalanceType",
5166
+ "type": {
5167
+ "kind": "enum",
5168
+ "variants": [
5169
+ {
5170
+ "name": "Deposit"
5171
+ },
5172
+ {
5173
+ "name": "Borrow"
5174
+ }
5175
+ ]
5176
+ }
5177
+ },
5178
+ {
5179
+ "name": "SpotFulfillmentStatus",
5180
+ "type": {
5181
+ "kind": "enum",
5182
+ "variants": [
5183
+ {
5184
+ "name": "Enabled"
5185
+ },
5186
+ {
5187
+ "name": "Disabled"
5188
+ }
5189
+ ]
5190
+ }
5191
+ },
5192
+ {
5193
+ "name": "AssetType",
5194
+ "type": {
5195
+ "kind": "enum",
5196
+ "variants": [
5197
+ {
5198
+ "name": "Base"
5199
+ },
5200
+ {
5201
+ "name": "Quote"
5202
+ }
5203
+ ]
5204
+ }
5205
+ },
4563
5206
  {
4564
5207
  "name": "OrderStatus",
4565
5208
  "type": {
@@ -4613,6 +5256,20 @@
4613
5256
  }
4614
5257
  ]
4615
5258
  }
5259
+ },
5260
+ {
5261
+ "name": "MarketType",
5262
+ "type": {
5263
+ "kind": "enum",
5264
+ "variants": [
5265
+ {
5266
+ "name": "Spot"
5267
+ },
5268
+ {
5269
+ "name": "Perp"
5270
+ }
5271
+ ]
5272
+ }
4616
5273
  }
4617
5274
  ],
4618
5275
  "events": [
@@ -4687,7 +5344,7 @@
4687
5344
  "index": false
4688
5345
  },
4689
5346
  {
4690
- "name": "bankIndex",
5347
+ "name": "marketIndex",
4691
5348
  "type": "u64",
4692
5349
  "index": false
4693
5350
  },
@@ -4996,6 +5653,13 @@
4996
5653
  "type": "u64",
4997
5654
  "index": false
4998
5655
  },
5656
+ {
5657
+ "name": "marketType",
5658
+ "type": {
5659
+ "defined": "MarketType"
5660
+ },
5661
+ "index": false
5662
+ },
4999
5663
  {
5000
5664
  "name": "filler",
5001
5665
  "type": {
@@ -5101,6 +5765,15 @@
5101
5765
  },
5102
5766
  "index": false
5103
5767
  },
5768
+ {
5769
+ "name": "takerOrderDirection",
5770
+ "type": {
5771
+ "option": {
5772
+ "defined": "PositionDirection"
5773
+ }
5774
+ },
5775
+ "index": false
5776
+ },
5104
5777
  {
5105
5778
  "name": "takerOrderBaseAssetAmount",
5106
5779
  "type": {
@@ -5129,6 +5802,13 @@
5129
5802
  },
5130
5803
  "index": false
5131
5804
  },
5805
+ {
5806
+ "name": "spotFulfillmentMethodFee",
5807
+ "type": {
5808
+ "option": "u64"
5809
+ },
5810
+ "index": false
5811
+ },
5132
5812
  {
5133
5813
  "name": "maker",
5134
5814
  "type": {
@@ -5143,6 +5823,15 @@
5143
5823
  },
5144
5824
  "index": false
5145
5825
  },
5826
+ {
5827
+ "name": "makerOrderDirection",
5828
+ "type": {
5829
+ "option": {
5830
+ "defined": "PositionDirection"
5831
+ }
5832
+ },
5833
+ "index": false
5834
+ },
5146
5835
  {
5147
5836
  "name": "makerOrderBaseAssetAmount",
5148
5837
  "type": {
@@ -5368,7 +6057,12 @@
5368
6057
  "index": false
5369
6058
  },
5370
6059
  {
5371
- "name": "bankIndex",
6060
+ "name": "spotMarketIndex",
6061
+ "type": "u64",
6062
+ "index": false
6063
+ },
6064
+ {
6065
+ "name": "perpMarketIndex",
5372
6066
  "type": "u64",
5373
6067
  "index": false
5374
6068
  },
@@ -5383,7 +6077,7 @@
5383
6077
  "index": false
5384
6078
  },
5385
6079
  {
5386
- "name": "bankVaultAmountBefore",
6080
+ "name": "vaultAmountBefore",
5387
6081
  "type": "u64",
5388
6082
  "index": false
5389
6083
  },
@@ -5404,7 +6098,7 @@
5404
6098
  },
5405
6099
  {
5406
6100
  "name": "amount",
5407
- "type": "u64",
6101
+ "type": "i64",
5408
6102
  "index": false
5409
6103
  }
5410
6104
  ]
@@ -5435,7 +6129,7 @@
5435
6129
  "index": false
5436
6130
  },
5437
6131
  {
5438
- "name": "bankIndex",
6132
+ "name": "marketIndex",
5439
6133
  "type": "u64",
5440
6134
  "index": false
5441
6135
  },
@@ -5480,8 +6174,8 @@
5480
6174
  "errors": [
5481
6175
  {
5482
6176
  "code": 6000,
5483
- "name": "InvalidBankAuthority",
5484
- "msg": "Invalid Bank Authority"
6177
+ "name": "InvalidSpotMarketAuthority",
6178
+ "msg": "Invalid Spot Market Authority"
5485
6179
  },
5486
6180
  {
5487
6181
  "code": 6001,
@@ -5560,8 +6254,8 @@
5560
6254
  },
5561
6255
  {
5562
6256
  "code": 6016,
5563
- "name": "TradeSizeTooSmall",
5564
- "msg": "Trade Size Too Small"
6257
+ "name": "OrderSizeTooSmall",
6258
+ "msg": "Order Size Too Small"
5565
6259
  },
5566
6260
  {
5567
6261
  "code": 6017,
@@ -5820,53 +6514,53 @@
5820
6514
  },
5821
6515
  {
5822
6516
  "code": 6068,
5823
- "name": "CouldNotFindBankBalance",
5824
- "msg": "CouldNotFindBankBalance"
6517
+ "name": "CouldNotFindSpotPosition",
6518
+ "msg": "CouldNotFindSpotPosition"
5825
6519
  },
5826
6520
  {
5827
6521
  "code": 6069,
5828
- "name": "NoUserBankBalanceAvailable",
5829
- "msg": "NoUserBankBalanceAvailable"
6522
+ "name": "NoSpotPositionAvailable",
6523
+ "msg": "NoSpotPositionAvailable"
5830
6524
  },
5831
6525
  {
5832
6526
  "code": 6070,
5833
- "name": "InvalidBankInitialization",
5834
- "msg": "InvalidBankInitialization"
6527
+ "name": "InvalidSpotMarketInitialization",
6528
+ "msg": "InvalidSpotMarketInitialization"
5835
6529
  },
5836
6530
  {
5837
6531
  "code": 6071,
5838
- "name": "CouldNotLoadBankData",
5839
- "msg": "CouldNotLoadBankData"
6532
+ "name": "CouldNotLoadSpotMarketData",
6533
+ "msg": "CouldNotLoadSpotMarketData"
5840
6534
  },
5841
6535
  {
5842
6536
  "code": 6072,
5843
- "name": "BankNotFound",
5844
- "msg": "BankNotFound"
6537
+ "name": "SpotMarketNotFound",
6538
+ "msg": "SpotMarketNotFound"
5845
6539
  },
5846
6540
  {
5847
6541
  "code": 6073,
5848
- "name": "InvalidBankAccount",
5849
- "msg": "InvalidBankAccount"
6542
+ "name": "InvalidSpotMarketAccount",
6543
+ "msg": "InvalidSpotMarketAccount"
5850
6544
  },
5851
6545
  {
5852
6546
  "code": 6074,
5853
- "name": "UnableToLoadBankAccount",
5854
- "msg": "UnableToLoadBankAccount"
6547
+ "name": "UnableToLoadSpotMarketAccount",
6548
+ "msg": "UnableToLoadSpotMarketAccount"
5855
6549
  },
5856
6550
  {
5857
6551
  "code": 6075,
5858
- "name": "BankWrongMutability",
5859
- "msg": "BankWrongMutability"
6552
+ "name": "SpotMarketWrongMutability",
6553
+ "msg": "SpotMarketWrongMutability"
5860
6554
  },
5861
6555
  {
5862
6556
  "code": 6076,
5863
- "name": "BankInterestNotUpToDate",
5864
- "msg": "BankInterestNotUpToDate"
6557
+ "name": "SpotMarketInterestNotUpToDate",
6558
+ "msg": "SpotInterestNotUpToDate"
5865
6559
  },
5866
6560
  {
5867
6561
  "code": 6077,
5868
- "name": "BankInsufficientDeposits",
5869
- "msg": "BankInsufficientDeposits"
6562
+ "name": "SpotMarketInsufficientDeposits",
6563
+ "msg": "SpotMarketInsufficientDeposits"
5870
6564
  },
5871
6565
  {
5872
6566
  "code": 6078,
@@ -6000,8 +6694,8 @@
6000
6694
  },
6001
6695
  {
6002
6696
  "code": 6104,
6003
- "name": "WrongBankBalanceType",
6004
- "msg": "WrongBankBalanceType"
6697
+ "name": "WrongSpotBalanceType",
6698
+ "msg": "WrongSpotBalanceType"
6005
6699
  },
6006
6700
  {
6007
6701
  "code": 6105,
@@ -6045,8 +6739,8 @@
6045
6739
  },
6046
6740
  {
6047
6741
  "code": 6113,
6048
- "name": "BankDailyWithdrawLimit",
6049
- "msg": "BankDailyWithdrawLimit"
6742
+ "name": "DailyWithdrawLimit",
6743
+ "msg": "DailyWithdrawLimit"
6050
6744
  },
6051
6745
  {
6052
6746
  "code": 6114,
@@ -6060,7 +6754,7 @@
6060
6754
  },
6061
6755
  {
6062
6756
  "code": 6116,
6063
- "name": "CantLPWithMarketPosition",
6757
+ "name": "CantLPWithPerpPosition",
6064
6758
  "msg": "Cant LP with a market position"
6065
6759
  },
6066
6760
  {
@@ -6075,8 +6769,43 @@
6075
6769
  },
6076
6770
  {
6077
6771
  "code": 6119,
6078
- "name": "InvalidBankState",
6079
- "msg": "Invalid Bank State"
6772
+ "name": "InvalidSpotMarketVault",
6773
+ "msg": "Invalid Spot Market Vault"
6774
+ },
6775
+ {
6776
+ "code": 6120,
6777
+ "name": "InvalidSpotMarketState",
6778
+ "msg": "Invalid Spot Market State"
6779
+ },
6780
+ {
6781
+ "code": 6121,
6782
+ "name": "InvalidSerumProgram",
6783
+ "msg": "InvalidSerumProgram"
6784
+ },
6785
+ {
6786
+ "code": 6122,
6787
+ "name": "InvalidSerumMarket",
6788
+ "msg": "InvalidSerumMarket"
6789
+ },
6790
+ {
6791
+ "code": 6123,
6792
+ "name": "InvalidSerumOpenOrders",
6793
+ "msg": "InvalidSerumOpenOrders"
6794
+ },
6795
+ {
6796
+ "code": 6124,
6797
+ "name": "FailedSerumCPI",
6798
+ "msg": "FailedSerumCPI"
6799
+ },
6800
+ {
6801
+ "code": 6125,
6802
+ "name": "FailedToFillOnSerum",
6803
+ "msg": "FailedToFillOnSerum"
6804
+ },
6805
+ {
6806
+ "code": 6126,
6807
+ "name": "InvalidSerumFulfillmentConfig",
6808
+ "msg": "InvalidSerumFulfillmentConfig"
6080
6809
  }
6081
6810
  ]
6082
6811
  }