@drift-labs/sdk 0.2.0-master.24 → 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 (193) 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 +8 -6
  7. package/lib/addresses/pda.js +35 -27
  8. package/lib/admin.d.ts +9 -6
  9. package/lib/admin.js +90 -54
  10. package/lib/clearingHouse.d.ts +71 -42
  11. package/lib/clearingHouse.js +765 -282
  12. package/lib/clearingHouseConfig.d.ts +2 -2
  13. package/lib/clearingHouseUser.d.ts +19 -17
  14. package/lib/clearingHouseUser.js +145 -123
  15. package/lib/config.d.ts +7 -7
  16. package/lib/config.js +21 -21
  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/eventSubscriber.d.ts +4 -2
  24. package/lib/events/eventSubscriber.js +16 -9
  25. package/lib/events/fetchLogs.d.ts +10 -1
  26. package/lib/events/fetchLogs.js +27 -7
  27. package/lib/events/pollingLogProvider.d.ts +2 -1
  28. package/lib/events/pollingLogProvider.js +6 -2
  29. package/lib/events/types.d.ts +4 -2
  30. package/lib/events/types.js +2 -0
  31. package/lib/examples/makeTradeExample.js +18 -6
  32. package/lib/idl/clearing_house.json +1128 -347
  33. package/lib/index.d.ts +6 -3
  34. package/lib/index.js +6 -3
  35. package/lib/math/amm.d.ts +5 -3
  36. package/lib/math/amm.js +42 -4
  37. package/lib/math/funding.d.ts +6 -6
  38. package/lib/math/funding.js +2 -1
  39. package/lib/math/margin.d.ts +4 -4
  40. package/lib/math/margin.js +18 -11
  41. package/lib/math/market.d.ts +10 -9
  42. package/lib/math/market.js +29 -6
  43. package/lib/math/oracles.d.ts +2 -1
  44. package/lib/math/oracles.js +11 -1
  45. package/lib/math/orders.d.ts +5 -5
  46. package/lib/math/position.d.ts +13 -13
  47. package/lib/math/position.js +19 -19
  48. package/lib/math/spotBalance.d.ts +19 -0
  49. package/lib/math/spotBalance.js +176 -0
  50. package/lib/math/spotMarket.d.ts +4 -0
  51. package/lib/math/spotMarket.js +8 -0
  52. package/lib/math/spotPosition.d.ts +2 -0
  53. package/lib/math/spotPosition.js +8 -0
  54. package/lib/math/state.js +2 -2
  55. package/lib/math/trade.d.ts +4 -4
  56. package/lib/orderParams.d.ts +4 -4
  57. package/lib/orderParams.js +12 -4
  58. package/lib/serum/serumSubscriber.d.ts +23 -0
  59. package/lib/serum/serumSubscriber.js +41 -0
  60. package/lib/serum/types.d.ts +11 -0
  61. package/lib/serum/types.js +2 -0
  62. package/lib/tx/retryTxSender.d.ts +1 -1
  63. package/lib/tx/retryTxSender.js +4 -2
  64. package/lib/tx/types.d.ts +1 -1
  65. package/lib/types.d.ts +148 -39
  66. package/lib/types.js +37 -9
  67. package/my-script/.env +7 -0
  68. package/my-script/getUserStats.ts +106 -0
  69. package/my-script/multiConnections.ts +119 -0
  70. package/my-script/test-regex.ts +11 -0
  71. package/my-script/utils.ts +52 -0
  72. package/package.json +1 -1
  73. package/src/accounts/bulkAccountLoader.js +249 -0
  74. package/src/accounts/bulkUserStatsSubscription.js +75 -0
  75. package/src/accounts/bulkUserSubscription.js +75 -0
  76. package/src/accounts/fetch.js +92 -0
  77. package/src/accounts/pollingClearingHouseAccountSubscriber.js +465 -0
  78. package/src/accounts/pollingClearingHouseAccountSubscriber.ts +38 -38
  79. package/src/accounts/pollingOracleSubscriber.js +156 -0
  80. package/src/accounts/pollingTokenAccountSubscriber.js +141 -0
  81. package/src/accounts/pollingUserAccountSubscriber.js +208 -0
  82. package/src/accounts/pollingUserStatsAccountSubscriber.js +208 -0
  83. package/src/accounts/types.js +28 -0
  84. package/src/accounts/types.ts +11 -9
  85. package/src/accounts/utils.js +7 -0
  86. package/src/accounts/webSocketAccountSubscriber.js +138 -0
  87. package/src/accounts/webSocketClearingHouseAccountSubscriber.js +433 -0
  88. package/src/accounts/webSocketClearingHouseAccountSubscriber.ts +59 -52
  89. package/src/accounts/webSocketUserAccountSubscriber.js +113 -0
  90. package/src/accounts/webSocketUserStatsAccountSubsriber.js +113 -0
  91. package/src/addresses/pda.js +186 -0
  92. package/src/addresses/pda.ts +56 -42
  93. package/src/admin.js +1284 -0
  94. package/src/admin.ts +149 -75
  95. package/src/assert/assert.js +1 -1
  96. package/src/clearingHouse.js +3433 -0
  97. package/src/clearingHouse.ts +1097 -380
  98. package/src/clearingHouseConfig.js +2 -0
  99. package/src/clearingHouseConfig.ts +2 -2
  100. package/src/clearingHouseUser.js +874 -0
  101. package/src/clearingHouseUser.ts +237 -172
  102. package/src/clearingHouseUserConfig.js +2 -0
  103. package/src/clearingHouseUserStats.js +115 -0
  104. package/src/clearingHouseUserStatsConfig.js +2 -0
  105. package/src/config.js +80 -0
  106. package/src/config.ts +30 -30
  107. package/src/constants/numericConstants.js +18 -11
  108. package/src/constants/numericConstants.ts +17 -15
  109. package/{lib/constants/markets.js → src/constants/perpMarkets.js} +11 -11
  110. package/src/constants/{markets.ts → perpMarkets.ts} +5 -5
  111. package/src/constants/spotMarkets.js +51 -0
  112. package/src/constants/{banks.ts → spotMarkets.ts} +19 -19
  113. package/src/events/eventList.js +66 -23
  114. package/src/events/eventSubscriber.js +202 -0
  115. package/src/events/eventSubscriber.ts +20 -12
  116. package/src/events/fetchLogs.js +117 -0
  117. package/src/events/fetchLogs.ts +35 -8
  118. package/src/events/pollingLogProvider.js +113 -0
  119. package/src/events/pollingLogProvider.ts +10 -2
  120. package/src/events/sort.js +41 -0
  121. package/src/events/txEventCache.js +22 -19
  122. package/src/events/types.js +25 -0
  123. package/src/events/types.ts +7 -1
  124. package/src/events/webSocketLogProvider.js +76 -0
  125. package/src/examples/makeTradeExample.ts +27 -6
  126. package/src/factory/bigNum.js +183 -180
  127. package/src/factory/oracleClient.js +9 -9
  128. package/src/idl/clearing_house.json +1128 -347
  129. package/src/index.js +75 -0
  130. package/src/index.ts +6 -3
  131. package/src/math/amm.js +422 -0
  132. package/src/math/amm.ts +73 -5
  133. package/src/math/auction.js +10 -10
  134. package/src/math/conversion.js +4 -3
  135. package/src/math/funding.js +223 -175
  136. package/src/math/funding.ts +7 -7
  137. package/src/math/insurance.js +27 -0
  138. package/src/math/margin.js +77 -0
  139. package/src/math/margin.ts +34 -23
  140. package/src/math/market.js +105 -0
  141. package/src/math/market.ts +71 -19
  142. package/src/math/oracles.js +40 -10
  143. package/src/math/oracles.ts +18 -1
  144. package/src/math/orders.js +153 -0
  145. package/src/math/orders.ts +5 -5
  146. package/src/math/position.js +172 -0
  147. package/src/math/position.ts +31 -31
  148. package/src/math/repeg.js +40 -40
  149. package/src/math/spotBalance.js +176 -0
  150. package/src/math/spotBalance.ts +290 -0
  151. package/src/math/spotMarket.js +8 -0
  152. package/src/math/spotMarket.ts +9 -0
  153. package/src/math/spotPosition.js +8 -0
  154. package/src/math/spotPosition.ts +6 -0
  155. package/src/math/state.ts +2 -2
  156. package/src/math/trade.js +81 -74
  157. package/src/math/trade.ts +4 -4
  158. package/src/math/utils.js +8 -7
  159. package/src/oracles/oracleClientCache.js +10 -9
  160. package/src/oracles/pythClient.js +52 -17
  161. package/src/oracles/quoteAssetOracleClient.js +44 -13
  162. package/src/oracles/switchboardClient.js +69 -37
  163. package/src/oracles/types.js +1 -1
  164. package/src/orderParams.js +14 -6
  165. package/src/orderParams.ts +16 -8
  166. package/src/serum/serumSubscriber.js +102 -0
  167. package/src/serum/serumSubscriber.ts +80 -0
  168. package/src/serum/types.js +2 -0
  169. package/src/serum/types.ts +13 -0
  170. package/src/slot/SlotSubscriber.js +67 -20
  171. package/src/token/index.js +4 -4
  172. package/src/tokenFaucet.js +288 -154
  173. package/src/tx/retryTxSender.js +280 -0
  174. package/src/tx/retryTxSender.ts +5 -2
  175. package/src/tx/types.js +1 -1
  176. package/src/tx/types.ts +2 -1
  177. package/src/tx/utils.js +7 -6
  178. package/src/types.js +216 -0
  179. package/src/types.ts +131 -39
  180. package/src/userName.js +5 -5
  181. package/src/util/computeUnits.js +46 -11
  182. package/src/util/promiseTimeout.js +5 -5
  183. package/src/util/tps.js +46 -12
  184. package/src/wallet.js +55 -18
  185. package/lib/math/bankBalance.d.ts +0 -15
  186. package/lib/math/bankBalance.js +0 -150
  187. package/src/addresses/marketAddresses.js +0 -26
  188. package/src/constants/banks.js +0 -42
  189. package/src/examples/makeTradeExample.js +0 -80
  190. package/src/math/bankBalance.ts +0 -258
  191. package/src/math/state.js +0 -15
  192. package/src/math/utils.js.map +0 -1
  193. package/src/util/getTokenAddress.js +0 -9
@@ -26,7 +26,7 @@
26
26
  "isSigner": false
27
27
  },
28
28
  {
29
- "name": "insuranceVaultAuthority",
29
+ "name": "clearingHouseSigner",
30
30
  "isMut": false,
31
31
  "isSigner": false
32
32
  },
@@ -54,35 +54,30 @@
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
  },
74
- {
75
- "name": "bankVaultAuthority",
76
- "isMut": false,
77
- "isSigner": false
78
- },
79
74
  {
80
75
  "name": "insuranceFundVault",
81
76
  "isMut": true,
82
77
  "isSigner": false
83
78
  },
84
79
  {
85
- "name": "insuranceFundVaultAuthority",
80
+ "name": "clearingHouseSigner",
86
81
  "isMut": false,
87
82
  "isSigner": false
88
83
  },
@@ -162,6 +157,72 @@
162
157
  }
163
158
  ]
164
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
+ },
165
226
  {
166
227
  "name": "initializeMarket",
167
228
  "accounts": [
@@ -257,7 +318,7 @@
257
318
  "isSigner": true
258
319
  },
259
320
  {
260
- "name": "bankVault",
321
+ "name": "spotMarketVault",
261
322
  "isMut": true,
262
323
  "isSigner": false
263
324
  },
@@ -274,7 +335,7 @@
274
335
  ],
275
336
  "args": [
276
337
  {
277
- "name": "bankIndex",
338
+ "name": "marketIndex",
278
339
  "type": "u64"
279
340
  },
280
341
  {
@@ -311,13 +372,13 @@
311
372
  "isSigner": true
312
373
  },
313
374
  {
314
- "name": "bankVault",
375
+ "name": "spotMarketVault",
315
376
  "isMut": true,
316
377
  "isSigner": false
317
378
  },
318
379
  {
319
- "name": "bankVaultAuthority",
320
- "isMut": true,
380
+ "name": "clearingHouseSigner",
381
+ "isMut": false,
321
382
  "isSigner": false
322
383
  },
323
384
  {
@@ -333,7 +394,7 @@
333
394
  ],
334
395
  "args": [
335
396
  {
336
- "name": "bankIndex",
397
+ "name": "marketIndex",
337
398
  "type": "u64"
338
399
  },
339
400
  {
@@ -377,7 +438,7 @@
377
438
  ],
378
439
  "args": [
379
440
  {
380
- "name": "bankIndex",
441
+ "name": "marketIndex",
381
442
  "type": "u64"
382
443
  },
383
444
  {
@@ -387,16 +448,32 @@
387
448
  ]
388
449
  },
389
450
  {
390
- "name": "updateBankCumulativeInterest",
451
+ "name": "updateSpotMarketCumulativeInterest",
391
452
  "accounts": [
392
453
  {
393
- "name": "bank",
454
+ "name": "spotMarket",
394
455
  "isMut": true,
395
456
  "isSigner": false
396
457
  }
397
458
  ],
398
459
  "args": []
399
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
+ },
400
477
  {
401
478
  "name": "settleLp",
402
479
  "accounts": [
@@ -726,6 +803,122 @@
726
803
  }
727
804
  ]
728
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
+ },
729
922
  {
730
923
  "name": "updateAmms",
731
924
  "accounts": [
@@ -778,6 +971,53 @@
778
971
  }
779
972
  ]
780
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
+ },
781
1021
  {
782
1022
  "name": "liquidatePerp",
783
1023
  "accounts": [
@@ -849,11 +1089,11 @@
849
1089
  ],
850
1090
  "args": [
851
1091
  {
852
- "name": "assetBankIndex",
1092
+ "name": "assetMarketIndex",
853
1093
  "type": "u64"
854
1094
  },
855
1095
  {
856
- "name": "liabilityBankIndex",
1096
+ "name": "liabilityMarketIndex",
857
1097
  "type": "u64"
858
1098
  },
859
1099
  {
@@ -892,7 +1132,7 @@
892
1132
  "type": "u64"
893
1133
  },
894
1134
  {
895
- "name": "liabilityBankIndex",
1135
+ "name": "spotMarketIndex",
896
1136
  "type": "u64"
897
1137
  },
898
1138
  {
@@ -931,7 +1171,7 @@
931
1171
  "type": "u64"
932
1172
  },
933
1173
  {
934
- "name": "assetBankIndex",
1174
+ "name": "spotMarketIndex",
935
1175
  "type": "u64"
936
1176
  },
937
1177
  {
@@ -941,7 +1181,7 @@
941
1181
  ]
942
1182
  },
943
1183
  {
944
- "name": "resolvePerpBankruptcy",
1184
+ "name": "resolvePerpPnlDeficit",
945
1185
  "accounts": [
946
1186
  {
947
1187
  "name": "state",
@@ -954,17 +1194,7 @@
954
1194
  "isSigner": true
955
1195
  },
956
1196
  {
957
- "name": "liquidator",
958
- "isMut": true,
959
- "isSigner": false
960
- },
961
- {
962
- "name": "user",
963
- "isMut": true,
964
- "isSigner": false
965
- },
966
- {
967
- "name": "bankVault",
1197
+ "name": "spotMarketVault",
968
1198
  "isMut": true,
969
1199
  "isSigner": false
970
1200
  },
@@ -974,8 +1204,8 @@
974
1204
  "isSigner": false
975
1205
  },
976
1206
  {
977
- "name": "insuranceFundVaultAuthority",
978
- "isMut": true,
1207
+ "name": "clearingHouseSigner",
1208
+ "isMut": false,
979
1209
  "isSigner": false
980
1210
  },
981
1211
  {
@@ -986,17 +1216,17 @@
986
1216
  ],
987
1217
  "args": [
988
1218
  {
989
- "name": "bankIndex",
1219
+ "name": "spotMarketIndex",
990
1220
  "type": "u64"
991
1221
  },
992
1222
  {
993
- "name": "marketIndex",
1223
+ "name": "perpMarketIndex",
994
1224
  "type": "u64"
995
1225
  }
996
1226
  ]
997
1227
  },
998
1228
  {
999
- "name": "resolveBorrowBankruptcy",
1229
+ "name": "resolvePerpBankruptcy",
1000
1230
  "accounts": [
1001
1231
  {
1002
1232
  "name": "state",
@@ -1019,7 +1249,7 @@
1019
1249
  "isSigner": false
1020
1250
  },
1021
1251
  {
1022
- "name": "bankVault",
1252
+ "name": "spotMarketVault",
1023
1253
  "isMut": true,
1024
1254
  "isSigner": false
1025
1255
  },
@@ -1029,8 +1259,8 @@
1029
1259
  "isSigner": false
1030
1260
  },
1031
1261
  {
1032
- "name": "insuranceFundVaultAuthority",
1033
- "isMut": true,
1262
+ "name": "clearingHouseSigner",
1263
+ "isMut": false,
1034
1264
  "isSigner": false
1035
1265
  },
1036
1266
  {
@@ -1041,10 +1271,65 @@
1041
1271
  ],
1042
1272
  "args": [
1043
1273
  {
1044
- "name": "bankIndex",
1274
+ "name": "quoteSpotMarketIndex",
1045
1275
  "type": "u64"
1046
- }
1047
- ]
1276
+ },
1277
+ {
1278
+ "name": "marketIndex",
1279
+ "type": "u64"
1280
+ }
1281
+ ]
1282
+ },
1283
+ {
1284
+ "name": "resolveBorrowBankruptcy",
1285
+ "accounts": [
1286
+ {
1287
+ "name": "state",
1288
+ "isMut": false,
1289
+ "isSigner": false
1290
+ },
1291
+ {
1292
+ "name": "authority",
1293
+ "isMut": false,
1294
+ "isSigner": true
1295
+ },
1296
+ {
1297
+ "name": "liquidator",
1298
+ "isMut": true,
1299
+ "isSigner": false
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
+ ]
1048
1333
  },
1049
1334
  {
1050
1335
  "name": "moveAmmPrice",
@@ -1060,7 +1345,7 @@
1060
1345
  "isSigner": true
1061
1346
  },
1062
1347
  {
1063
- "name": "market",
1348
+ "name": "perpMarket",
1064
1349
  "isMut": true,
1065
1350
  "isSigner": false
1066
1351
  }
@@ -1073,11 +1358,41 @@
1073
1358
  {
1074
1359
  "name": "quoteAssetReserve",
1075
1360
  "type": "u128"
1361
+ },
1362
+ {
1363
+ "name": "sqrtK",
1364
+ "type": "u128"
1076
1365
  }
1077
1366
  ]
1078
1367
  },
1079
1368
  {
1080
- "name": "withdrawFromMarketToInsuranceVault",
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",
1081
1396
  "accounts": [
1082
1397
  {
1083
1398
  "name": "state",
@@ -1090,22 +1405,68 @@
1090
1405
  "isSigner": true
1091
1406
  },
1092
1407
  {
1093
- "name": "bank",
1408
+ "name": "spotMarket",
1409
+ "isMut": true,
1410
+ "isSigner": false
1411
+ },
1412
+ {
1413
+ "name": "spotMarketVault",
1094
1414
  "isMut": true,
1095
1415
  "isSigner": false
1096
1416
  },
1097
1417
  {
1098
- "name": "bankVault",
1418
+ "name": "clearingHouseSigner",
1419
+ "isMut": false,
1420
+ "isSigner": false
1421
+ },
1422
+ {
1423
+ "name": "perpMarket",
1099
1424
  "isMut": true,
1100
1425
  "isSigner": false
1101
1426
  },
1102
1427
  {
1103
- "name": "bankVaultAuthority",
1428
+ "name": "recipient",
1104
1429
  "isMut": true,
1105
1430
  "isSigner": false
1106
1431
  },
1107
1432
  {
1108
- "name": "market",
1433
+ "name": "tokenProgram",
1434
+ "isMut": false,
1435
+ "isSigner": false
1436
+ }
1437
+ ],
1438
+ "args": []
1439
+ },
1440
+ {
1441
+ "name": "withdrawFromMarketToInsuranceVault",
1442
+ "accounts": [
1443
+ {
1444
+ "name": "state",
1445
+ "isMut": false,
1446
+ "isSigner": false
1447
+ },
1448
+ {
1449
+ "name": "admin",
1450
+ "isMut": false,
1451
+ "isSigner": true
1452
+ },
1453
+ {
1454
+ "name": "spotMarket",
1455
+ "isMut": true,
1456
+ "isSigner": false
1457
+ },
1458
+ {
1459
+ "name": "spotMarketVault",
1460
+ "isMut": true,
1461
+ "isSigner": false
1462
+ },
1463
+ {
1464
+ "name": "clearingHouseSigner",
1465
+ "isMut": false,
1466
+ "isSigner": false
1467
+ },
1468
+ {
1469
+ "name": "perpMarket",
1109
1470
  "isMut": true,
1110
1471
  "isSigner": false
1111
1472
  },
@@ -1146,7 +1507,7 @@
1146
1507
  "isSigner": false
1147
1508
  },
1148
1509
  {
1149
- "name": "insuranceVaultAuthority",
1510
+ "name": "clearingHouseSigner",
1150
1511
  "isMut": false,
1151
1512
  "isSigner": false
1152
1513
  },
@@ -1192,17 +1553,17 @@
1192
1553
  "isSigner": false
1193
1554
  },
1194
1555
  {
1195
- "name": "insuranceVaultAuthority",
1556
+ "name": "clearingHouseSigner",
1196
1557
  "isMut": false,
1197
1558
  "isSigner": false
1198
1559
  },
1199
1560
  {
1200
- "name": "bank",
1561
+ "name": "quoteSpotMarket",
1201
1562
  "isMut": true,
1202
1563
  "isSigner": false
1203
1564
  },
1204
1565
  {
1205
- "name": "bankVault",
1566
+ "name": "spotMarketVault",
1206
1567
  "isMut": true,
1207
1568
  "isSigner": false
1208
1569
  },
@@ -1393,6 +1754,36 @@
1393
1754
  ],
1394
1755
  "args": []
1395
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
+ },
1396
1787
  {
1397
1788
  "name": "settleFundingPayment",
1398
1789
  "accounts": [
@@ -1497,7 +1888,7 @@
1497
1888
  ]
1498
1889
  },
1499
1890
  {
1500
- "name": "updateMarketMaxRevenueWithdrawPerPeriod",
1891
+ "name": "updateMarketMaxImbalances",
1501
1892
  "accounts": [
1502
1893
  {
1503
1894
  "name": "admin",
@@ -1516,9 +1907,17 @@
1516
1907
  }
1517
1908
  ],
1518
1909
  "args": [
1910
+ {
1911
+ "name": "unrealizedMaxImbalance",
1912
+ "type": "u128"
1913
+ },
1519
1914
  {
1520
1915
  "name": "maxRevenueWithdrawPerPeriod",
1521
1916
  "type": "u128"
1917
+ },
1918
+ {
1919
+ "name": "quoteMaxInsurance",
1920
+ "type": "u128"
1522
1921
  }
1523
1922
  ]
1524
1923
  },
@@ -1549,7 +1948,7 @@
1549
1948
  ]
1550
1949
  },
1551
1950
  {
1552
- "name": "updateBankInsuranceWithdrawEscrowPeriod",
1951
+ "name": "updateInsuranceWithdrawEscrowPeriod",
1553
1952
  "accounts": [
1554
1953
  {
1555
1954
  "name": "admin",
@@ -1562,7 +1961,7 @@
1562
1961
  "isSigner": false
1563
1962
  },
1564
1963
  {
1565
- "name": "bank",
1964
+ "name": "spotMarket",
1566
1965
  "isMut": true,
1567
1966
  "isSigner": false
1568
1967
  }
@@ -1575,7 +1974,7 @@
1575
1974
  ]
1576
1975
  },
1577
1976
  {
1578
- "name": "updateBankLiquidationFee",
1977
+ "name": "updateSpotMarketLiquidationFee",
1579
1978
  "accounts": [
1580
1979
  {
1581
1980
  "name": "admin",
@@ -1588,7 +1987,7 @@
1588
1987
  "isSigner": false
1589
1988
  },
1590
1989
  {
1591
- "name": "bank",
1990
+ "name": "spotMarket",
1592
1991
  "isMut": true,
1593
1992
  "isSigner": false
1594
1993
  }
@@ -1601,7 +2000,7 @@
1601
2000
  ]
1602
2001
  },
1603
2002
  {
1604
- "name": "updateBankWithdrawGuardThreshold",
2003
+ "name": "updateWithdrawGuardThreshold",
1605
2004
  "accounts": [
1606
2005
  {
1607
2006
  "name": "admin",
@@ -1614,7 +2013,7 @@
1614
2013
  "isSigner": false
1615
2014
  },
1616
2015
  {
1617
- "name": "bank",
2016
+ "name": "spotMarket",
1618
2017
  "isMut": true,
1619
2018
  "isSigner": false
1620
2019
  }
@@ -1627,7 +2026,7 @@
1627
2026
  ]
1628
2027
  },
1629
2028
  {
1630
- "name": "updateBankIfFactor",
2029
+ "name": "updateSpotMarketIfFactor",
1631
2030
  "accounts": [
1632
2031
  {
1633
2032
  "name": "admin",
@@ -1640,14 +2039,14 @@
1640
2039
  "isSigner": false
1641
2040
  },
1642
2041
  {
1643
- "name": "bank",
2042
+ "name": "spotMarket",
1644
2043
  "isMut": true,
1645
2044
  "isSigner": false
1646
2045
  }
1647
2046
  ],
1648
2047
  "args": [
1649
2048
  {
1650
- "name": "bankIndex",
2049
+ "name": "spotMarketIndex",
1651
2050
  "type": "u64"
1652
2051
  },
1653
2052
  {
@@ -1665,7 +2064,7 @@
1665
2064
  ]
1666
2065
  },
1667
2066
  {
1668
- "name": "updateBankRevenueSettlePeriod",
2067
+ "name": "updateSpotMarketRevenueSettlePeriod",
1669
2068
  "accounts": [
1670
2069
  {
1671
2070
  "name": "admin",
@@ -1678,7 +2077,7 @@
1678
2077
  "isSigner": false
1679
2078
  },
1680
2079
  {
1681
- "name": "bank",
2080
+ "name": "spotMarket",
1682
2081
  "isMut": true,
1683
2082
  "isSigner": false
1684
2083
  }
@@ -1738,11 +2137,11 @@
1738
2137
  "args": [
1739
2138
  {
1740
2139
  "name": "unrealizedInitialAssetWeight",
1741
- "type": "u8"
2140
+ "type": "u32"
1742
2141
  },
1743
2142
  {
1744
2143
  "name": "unrealizedMaintenanceAssetWeight",
1745
- "type": "u8"
2144
+ "type": "u32"
1746
2145
  }
1747
2146
  ]
1748
2147
  },
@@ -2348,7 +2747,7 @@
2348
2747
  "name": "initializeInsuranceFundStake",
2349
2748
  "accounts": [
2350
2749
  {
2351
- "name": "bank",
2750
+ "name": "spotMarket",
2352
2751
  "isMut": false,
2353
2752
  "isSigner": false
2354
2753
  },
@@ -2390,7 +2789,7 @@
2390
2789
  ],
2391
2790
  "args": [
2392
2791
  {
2393
- "name": "bankIndex",
2792
+ "name": "marketIndex",
2394
2793
  "type": "u64"
2395
2794
  }
2396
2795
  ]
@@ -2404,18 +2803,18 @@
2404
2803
  "isSigner": false
2405
2804
  },
2406
2805
  {
2407
- "name": "bank",
2806
+ "name": "spotMarket",
2408
2807
  "isMut": false,
2409
2808
  "isSigner": false
2410
2809
  },
2411
2810
  {
2412
- "name": "bankVault",
2811
+ "name": "spotMarketVault",
2413
2812
  "isMut": true,
2414
2813
  "isSigner": false
2415
2814
  },
2416
2815
  {
2417
- "name": "bankVaultAuthority",
2418
- "isMut": true,
2816
+ "name": "clearingHouseSigner",
2817
+ "isMut": false,
2419
2818
  "isSigner": false
2420
2819
  },
2421
2820
  {
@@ -2431,7 +2830,7 @@
2431
2830
  ],
2432
2831
  "args": [
2433
2832
  {
2434
- "name": "bankIndex",
2833
+ "name": "marketIndex",
2435
2834
  "type": "u64"
2436
2835
  }
2437
2836
  ]
@@ -2440,7 +2839,7 @@
2440
2839
  "name": "addInsuranceFundStake",
2441
2840
  "accounts": [
2442
2841
  {
2443
- "name": "bank",
2842
+ "name": "spotMarket",
2444
2843
  "isMut": false,
2445
2844
  "isSigner": false
2446
2845
  },
@@ -2477,7 +2876,7 @@
2477
2876
  ],
2478
2877
  "args": [
2479
2878
  {
2480
- "name": "bankIndex",
2879
+ "name": "marketIndex",
2481
2880
  "type": "u64"
2482
2881
  },
2483
2882
  {
@@ -2490,7 +2889,7 @@
2490
2889
  "name": "requestRemoveInsuranceFundStake",
2491
2890
  "accounts": [
2492
2891
  {
2493
- "name": "bank",
2892
+ "name": "spotMarket",
2494
2893
  "isMut": false,
2495
2894
  "isSigner": false
2496
2895
  },
@@ -2517,7 +2916,7 @@
2517
2916
  ],
2518
2917
  "args": [
2519
2918
  {
2520
- "name": "bankIndex",
2919
+ "name": "marketIndex",
2521
2920
  "type": "u64"
2522
2921
  },
2523
2922
  {
@@ -2530,7 +2929,7 @@
2530
2929
  "name": "cancelRequestRemoveInsuranceFundStake",
2531
2930
  "accounts": [
2532
2931
  {
2533
- "name": "bank",
2932
+ "name": "spotMarket",
2534
2933
  "isMut": false,
2535
2934
  "isSigner": false
2536
2935
  },
@@ -2557,7 +2956,7 @@
2557
2956
  ],
2558
2957
  "args": [
2559
2958
  {
2560
- "name": "bankIndex",
2959
+ "name": "marketIndex",
2561
2960
  "type": "u64"
2562
2961
  }
2563
2962
  ]
@@ -2566,7 +2965,12 @@
2566
2965
  "name": "removeInsuranceFundStake",
2567
2966
  "accounts": [
2568
2967
  {
2569
- "name": "bank",
2968
+ "name": "state",
2969
+ "isMut": false,
2970
+ "isSigner": false
2971
+ },
2972
+ {
2973
+ "name": "spotMarket",
2570
2974
  "isMut": false,
2571
2975
  "isSigner": false
2572
2976
  },
@@ -2591,8 +2995,8 @@
2591
2995
  "isSigner": false
2592
2996
  },
2593
2997
  {
2594
- "name": "insuranceFundVaultAuthority",
2595
- "isMut": true,
2998
+ "name": "clearingHouseSigner",
2999
+ "isMut": false,
2596
3000
  "isSigner": false
2597
3001
  },
2598
3002
  {
@@ -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,337 +3020,445 @@
2616
3020
  ],
2617
3021
  "accounts": [
2618
3022
  {
2619
- "name": "Bank",
3023
+ "name": "InsuranceFundStake",
2620
3024
  "type": {
2621
3025
  "kind": "struct",
2622
3026
  "fields": [
2623
3027
  {
2624
- "name": "bankIndex",
2625
- "type": "u64"
3028
+ "name": "authority",
3029
+ "type": "publicKey"
2626
3030
  },
2627
3031
  {
2628
- "name": "pubkey",
2629
- "type": "publicKey"
3032
+ "name": "marketIndex",
3033
+ "type": "u64"
2630
3034
  },
2631
3035
  {
2632
- "name": "oracle",
2633
- "type": "publicKey"
3036
+ "name": "ifShares",
3037
+ "type": "u128"
2634
3038
  },
2635
3039
  {
2636
- "name": "oracleSource",
2637
- "type": {
2638
- "defined": "OracleSource"
2639
- }
3040
+ "name": "ifBase",
3041
+ "type": "u128"
2640
3042
  },
2641
3043
  {
2642
- "name": "mint",
2643
- "type": "publicKey"
3044
+ "name": "lastValidTs",
3045
+ "type": "i64"
2644
3046
  },
2645
3047
  {
2646
- "name": "vault",
2647
- "type": "publicKey"
3048
+ "name": "lastWithdrawRequestShares",
3049
+ "type": "u128"
2648
3050
  },
2649
3051
  {
2650
- "name": "vaultAuthority",
2651
- "type": "publicKey"
3052
+ "name": "lastWithdrawRequestValue",
3053
+ "type": "u64"
2652
3054
  },
2653
3055
  {
2654
- "name": "vaultAuthorityNonce",
2655
- "type": "u8"
3056
+ "name": "lastWithdrawRequestTs",
3057
+ "type": "i64"
2656
3058
  },
2657
3059
  {
2658
- "name": "insuranceFundVault",
2659
- "type": "publicKey"
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"
2660
3074
  },
2661
3075
  {
2662
- "name": "insuranceFundVaultAuthority",
3076
+ "name": "pubkey",
2663
3077
  "type": "publicKey"
2664
3078
  },
2665
3079
  {
2666
- "name": "insuranceFundVaultAuthorityNonce",
2667
- "type": "u8"
3080
+ "name": "status",
3081
+ "type": {
3082
+ "defined": "MarketStatus"
3083
+ }
2668
3084
  },
2669
3085
  {
2670
- "name": "revenuePool",
3086
+ "name": "contractType",
2671
3087
  "type": {
2672
- "defined": "PoolBalance"
3088
+ "defined": "ContractType"
2673
3089
  }
2674
3090
  },
2675
3091
  {
2676
- "name": "totalIfFactor",
2677
- "type": "u32"
3092
+ "name": "settlementPrice",
3093
+ "type": "i128"
2678
3094
  },
2679
3095
  {
2680
- "name": "userIfFactor",
2681
- "type": "u32"
3096
+ "name": "expiryTs",
3097
+ "type": "i64"
2682
3098
  },
2683
3099
  {
2684
- "name": "totalIfShares",
2685
- "type": "u128"
3100
+ "name": "amm",
3101
+ "type": {
3102
+ "defined": "AMM"
3103
+ }
2686
3104
  },
2687
3105
  {
2688
- "name": "userIfShares",
2689
- "type": "u128"
3106
+ "name": "baseAssetAmountLong",
3107
+ "type": "i128"
2690
3108
  },
2691
3109
  {
2692
- "name": "ifSharesBase",
2693
- "type": "u128"
3110
+ "name": "baseAssetAmountShort",
3111
+ "type": "i128"
2694
3112
  },
2695
3113
  {
2696
- "name": "insuranceWithdrawEscrowPeriod",
2697
- "type": "i64"
3114
+ "name": "openInterest",
3115
+ "type": "u128"
2698
3116
  },
2699
3117
  {
2700
- "name": "lastRevenueSettleTs",
2701
- "type": "i64"
3118
+ "name": "marginRatioInitial",
3119
+ "type": "u32"
2702
3120
  },
2703
3121
  {
2704
- "name": "revenueSettlePeriod",
2705
- "type": "i64"
3122
+ "name": "marginRatioMaintenance",
3123
+ "type": "u32"
2706
3124
  },
2707
3125
  {
2708
- "name": "decimals",
2709
- "type": "u8"
3126
+ "name": "nextFillRecordId",
3127
+ "type": "u64"
2710
3128
  },
2711
3129
  {
2712
- "name": "optimalUtilization",
2713
- "type": "u128"
3130
+ "name": "nextFundingRateRecordId",
3131
+ "type": "u64"
2714
3132
  },
2715
3133
  {
2716
- "name": "optimalBorrowRate",
2717
- "type": "u128"
3134
+ "name": "nextCurveRecordId",
3135
+ "type": "u64"
2718
3136
  },
2719
3137
  {
2720
- "name": "maxBorrowRate",
2721
- "type": "u128"
3138
+ "name": "pnlPool",
3139
+ "type": {
3140
+ "defined": "PoolBalance"
3141
+ }
2722
3142
  },
2723
3143
  {
2724
- "name": "depositBalance",
3144
+ "name": "revenueWithdrawSinceLastSettle",
2725
3145
  "type": "u128"
2726
3146
  },
2727
3147
  {
2728
- "name": "borrowBalance",
3148
+ "name": "maxRevenueWithdrawPerPeriod",
2729
3149
  "type": "u128"
2730
3150
  },
2731
3151
  {
2732
- "name": "depositTokenTwap",
2733
- "type": "u128"
3152
+ "name": "lastRevenueWithdrawTs",
3153
+ "type": "i64"
2734
3154
  },
2735
3155
  {
2736
- "name": "borrowTokenTwap",
3156
+ "name": "imfFactor",
2737
3157
  "type": "u128"
2738
3158
  },
2739
3159
  {
2740
- "name": "utilizationTwap",
2741
- "type": "u128"
3160
+ "name": "unrealizedInitialAssetWeight",
3161
+ "type": "u32"
2742
3162
  },
2743
3163
  {
2744
- "name": "cumulativeDepositInterest",
2745
- "type": "u128"
3164
+ "name": "unrealizedMaintenanceAssetWeight",
3165
+ "type": "u32"
2746
3166
  },
2747
3167
  {
2748
- "name": "cumulativeBorrowInterest",
3168
+ "name": "unrealizedImfFactor",
2749
3169
  "type": "u128"
2750
3170
  },
2751
3171
  {
2752
- "name": "lastInterestTs",
2753
- "type": "u64"
2754
- },
2755
- {
2756
- "name": "lastTwapTs",
2757
- "type": "u64"
3172
+ "name": "unrealizedMaxImbalance",
3173
+ "type": "u128"
2758
3174
  },
2759
3175
  {
2760
- "name": "initialAssetWeight",
3176
+ "name": "liquidationFee",
2761
3177
  "type": "u128"
2762
3178
  },
2763
3179
  {
2764
- "name": "maintenanceAssetWeight",
3180
+ "name": "quoteMaxInsurance",
2765
3181
  "type": "u128"
2766
3182
  },
2767
3183
  {
2768
- "name": "initialLiabilityWeight",
3184
+ "name": "quoteSettledInsurance",
2769
3185
  "type": "u128"
2770
3186
  },
2771
3187
  {
2772
- "name": "maintenanceLiabilityWeight",
2773
- "type": "u128"
3188
+ "name": "padding0",
3189
+ "type": "u32"
2774
3190
  },
2775
3191
  {
2776
- "name": "imfFactor",
3192
+ "name": "padding1",
2777
3193
  "type": "u128"
2778
3194
  },
2779
3195
  {
2780
- "name": "liquidationFee",
3196
+ "name": "padding2",
2781
3197
  "type": "u128"
2782
3198
  },
2783
3199
  {
2784
- "name": "liquidationIfFactor",
2785
- "type": "u32"
3200
+ "name": "padding3",
3201
+ "type": "u128"
2786
3202
  },
2787
3203
  {
2788
- "name": "withdrawGuardThreshold",
3204
+ "name": "padding4",
2789
3205
  "type": "u128"
2790
3206
  }
2791
3207
  ]
2792
3208
  }
2793
3209
  },
2794
3210
  {
2795
- "name": "InsuranceFundStake",
3211
+ "name": "SpotMarket",
2796
3212
  "type": {
2797
3213
  "kind": "struct",
2798
3214
  "fields": [
2799
3215
  {
2800
- "name": "authority",
3216
+ "name": "marketIndex",
3217
+ "type": "u64"
3218
+ },
3219
+ {
3220
+ "name": "pubkey",
2801
3221
  "type": "publicKey"
2802
3222
  },
2803
3223
  {
2804
- "name": "bankIndex",
2805
- "type": "u64"
3224
+ "name": "status",
3225
+ "type": {
3226
+ "defined": "MarketStatus"
3227
+ }
2806
3228
  },
2807
3229
  {
2808
- "name": "ifShares",
2809
- "type": "u128"
3230
+ "name": "expiryTs",
3231
+ "type": "i64"
2810
3232
  },
2811
3233
  {
2812
- "name": "ifBase",
3234
+ "name": "oracle",
3235
+ "type": "publicKey"
3236
+ },
3237
+ {
3238
+ "name": "oracleSource",
3239
+ "type": {
3240
+ "defined": "OracleSource"
3241
+ }
3242
+ },
3243
+ {
3244
+ "name": "mint",
3245
+ "type": "publicKey"
3246
+ },
3247
+ {
3248
+ "name": "vault",
3249
+ "type": "publicKey"
3250
+ },
3251
+ {
3252
+ "name": "insuranceFundVault",
3253
+ "type": "publicKey"
3254
+ },
3255
+ {
3256
+ "name": "revenuePool",
3257
+ "type": {
3258
+ "defined": "PoolBalance"
3259
+ }
3260
+ },
3261
+ {
3262
+ "name": "totalIfFactor",
3263
+ "type": "u32"
3264
+ },
3265
+ {
3266
+ "name": "userIfFactor",
3267
+ "type": "u32"
3268
+ },
3269
+ {
3270
+ "name": "totalIfShares",
2813
3271
  "type": "u128"
2814
3272
  },
2815
3273
  {
2816
- "name": "lastValidTs",
2817
- "type": "i64"
3274
+ "name": "userIfShares",
3275
+ "type": "u128"
2818
3276
  },
2819
3277
  {
2820
- "name": "lastWithdrawRequestShares",
3278
+ "name": "ifSharesBase",
2821
3279
  "type": "u128"
2822
3280
  },
2823
3281
  {
2824
- "name": "lastWithdrawRequestValue",
2825
- "type": "u64"
3282
+ "name": "insuranceWithdrawEscrowPeriod",
3283
+ "type": "i64"
2826
3284
  },
2827
3285
  {
2828
- "name": "lastWithdrawRequestTs",
3286
+ "name": "lastRevenueSettleTs",
2829
3287
  "type": "i64"
2830
3288
  },
2831
3289
  {
2832
- "name": "costBasis",
3290
+ "name": "revenueSettlePeriod",
2833
3291
  "type": "i64"
2834
- }
2835
- ]
2836
- }
2837
- },
2838
- {
2839
- "name": "Market",
2840
- "type": {
2841
- "kind": "struct",
2842
- "fields": [
3292
+ },
2843
3293
  {
2844
- "name": "marketIndex",
2845
- "type": "u64"
3294
+ "name": "decimals",
3295
+ "type": "u8"
2846
3296
  },
2847
3297
  {
2848
- "name": "pubkey",
2849
- "type": "publicKey"
3298
+ "name": "optimalUtilization",
3299
+ "type": "u128"
2850
3300
  },
2851
3301
  {
2852
- "name": "initialized",
2853
- "type": "bool"
3302
+ "name": "optimalBorrowRate",
3303
+ "type": "u128"
2854
3304
  },
2855
3305
  {
2856
- "name": "amm",
2857
- "type": {
2858
- "defined": "AMM"
2859
- }
3306
+ "name": "maxBorrowRate",
3307
+ "type": "u128"
2860
3308
  },
2861
3309
  {
2862
- "name": "baseAssetAmountLong",
2863
- "type": "i128"
3310
+ "name": "depositBalance",
3311
+ "type": "u128"
2864
3312
  },
2865
3313
  {
2866
- "name": "baseAssetAmountShort",
2867
- "type": "i128"
3314
+ "name": "borrowBalance",
3315
+ "type": "u128"
2868
3316
  },
2869
3317
  {
2870
- "name": "openInterest",
3318
+ "name": "depositTokenTwap",
2871
3319
  "type": "u128"
2872
3320
  },
2873
3321
  {
2874
- "name": "marginRatioInitial",
2875
- "type": "u32"
3322
+ "name": "borrowTokenTwap",
3323
+ "type": "u128"
2876
3324
  },
2877
3325
  {
2878
- "name": "marginRatioMaintenance",
2879
- "type": "u32"
3326
+ "name": "utilizationTwap",
3327
+ "type": "u128"
2880
3328
  },
2881
3329
  {
2882
- "name": "nextFillRecordId",
2883
- "type": "u64"
3330
+ "name": "cumulativeDepositInterest",
3331
+ "type": "u128"
2884
3332
  },
2885
3333
  {
2886
- "name": "nextFundingRateRecordId",
3334
+ "name": "cumulativeBorrowInterest",
3335
+ "type": "u128"
3336
+ },
3337
+ {
3338
+ "name": "lastInterestTs",
2887
3339
  "type": "u64"
2888
3340
  },
2889
3341
  {
2890
- "name": "nextCurveRecordId",
3342
+ "name": "lastTwapTs",
2891
3343
  "type": "u64"
2892
3344
  },
2893
3345
  {
2894
- "name": "pnlPool",
2895
- "type": {
2896
- "defined": "PoolBalance"
2897
- }
3346
+ "name": "initialAssetWeight",
3347
+ "type": "u128"
2898
3348
  },
2899
3349
  {
2900
- "name": "revenueWithdrawSinceLastSettle",
3350
+ "name": "maintenanceAssetWeight",
2901
3351
  "type": "u128"
2902
3352
  },
2903
3353
  {
2904
- "name": "maxRevenueWithdrawPerPeriod",
3354
+ "name": "initialLiabilityWeight",
2905
3355
  "type": "u128"
2906
3356
  },
2907
3357
  {
2908
- "name": "lastRevenueWithdrawTs",
2909
- "type": "i64"
3358
+ "name": "maintenanceLiabilityWeight",
3359
+ "type": "u128"
2910
3360
  },
2911
3361
  {
2912
3362
  "name": "imfFactor",
2913
3363
  "type": "u128"
2914
3364
  },
2915
3365
  {
2916
- "name": "unrealizedInitialAssetWeight",
2917
- "type": "u8"
3366
+ "name": "liquidationFee",
3367
+ "type": "u128"
2918
3368
  },
2919
3369
  {
2920
- "name": "unrealizedMaintenanceAssetWeight",
2921
- "type": "u8"
3370
+ "name": "liquidationIfFactor",
3371
+ "type": "u32"
2922
3372
  },
2923
3373
  {
2924
- "name": "unrealizedImfFactor",
3374
+ "name": "withdrawGuardThreshold",
2925
3375
  "type": "u128"
2926
3376
  },
2927
3377
  {
2928
- "name": "liquidationFee",
3378
+ "name": "orderStepSize",
2929
3379
  "type": "u128"
2930
3380
  },
2931
3381
  {
2932
- "name": "padding0",
2933
- "type": "u32"
3382
+ "name": "nextFillRecordId",
3383
+ "type": "u64"
2934
3384
  },
2935
3385
  {
2936
- "name": "padding1",
3386
+ "name": "totalSpotFee",
2937
3387
  "type": "u128"
2938
3388
  },
2939
3389
  {
2940
- "name": "padding2",
2941
- "type": "u128"
3390
+ "name": "spotFeePool",
3391
+ "type": {
3392
+ "defined": "PoolBalance"
3393
+ }
3394
+ }
3395
+ ]
3396
+ }
3397
+ },
3398
+ {
3399
+ "name": "SerumV3FulfillmentConfig",
3400
+ "type": {
3401
+ "kind": "struct",
3402
+ "fields": [
3403
+ {
3404
+ "name": "pubkey",
3405
+ "type": "publicKey"
2942
3406
  },
2943
3407
  {
2944
- "name": "padding3",
2945
- "type": "u128"
3408
+ "name": "fulfillmentType",
3409
+ "type": {
3410
+ "defined": "SpotFulfillmentType"
3411
+ }
2946
3412
  },
2947
3413
  {
2948
- "name": "padding4",
2949
- "type": "u128"
3414
+ "name": "status",
3415
+ "type": {
3416
+ "defined": "SpotFulfillmentStatus"
3417
+ }
3418
+ },
3419
+ {
3420
+ "name": "marketIndex",
3421
+ "type": "u64"
3422
+ },
3423
+ {
3424
+ "name": "serumProgramId",
3425
+ "type": "publicKey"
3426
+ },
3427
+ {
3428
+ "name": "serumMarket",
3429
+ "type": "publicKey"
3430
+ },
3431
+ {
3432
+ "name": "serumRequestQueue",
3433
+ "type": "publicKey"
3434
+ },
3435
+ {
3436
+ "name": "serumEventQueue",
3437
+ "type": "publicKey"
3438
+ },
3439
+ {
3440
+ "name": "serumBids",
3441
+ "type": "publicKey"
3442
+ },
3443
+ {
3444
+ "name": "serumAsks",
3445
+ "type": "publicKey"
3446
+ },
3447
+ {
3448
+ "name": "serumBaseVault",
3449
+ "type": "publicKey"
3450
+ },
3451
+ {
3452
+ "name": "serumQuoteVault",
3453
+ "type": "publicKey"
3454
+ },
3455
+ {
3456
+ "name": "serumOpenOrders",
3457
+ "type": "publicKey"
3458
+ },
3459
+ {
3460
+ "name": "serumSignerNonce",
3461
+ "type": "u64"
2950
3462
  }
2951
3463
  ]
2952
3464
  }
@@ -2976,14 +3488,6 @@
2976
3488
  "name": "insuranceVault",
2977
3489
  "type": "publicKey"
2978
3490
  },
2979
- {
2980
- "name": "insuranceVaultAuthority",
2981
- "type": "publicKey"
2982
- },
2983
- {
2984
- "name": "insuranceVaultNonce",
2985
- "type": "u8"
2986
- },
2987
3491
  {
2988
3492
  "name": "marginRatioInitial",
2989
3493
  "type": "u128"
@@ -3029,7 +3533,13 @@
3029
3533
  "type": "u64"
3030
3534
  },
3031
3535
  {
3032
- "name": "feeStructure",
3536
+ "name": "perpFeeStructure",
3537
+ "type": {
3538
+ "defined": "FeeStructure"
3539
+ }
3540
+ },
3541
+ {
3542
+ "name": "spotFeeStructure",
3033
3543
  "type": {
3034
3544
  "defined": "FeeStructure"
3035
3545
  }
@@ -3053,7 +3563,7 @@
3053
3563
  "type": "u64"
3054
3564
  },
3055
3565
  {
3056
- "name": "numberOfBanks",
3566
+ "name": "numberOfSpotMarkets",
3057
3567
  "type": "u64"
3058
3568
  },
3059
3569
  {
@@ -3061,15 +3571,35 @@
3061
3571
  "type": "u128"
3062
3572
  },
3063
3573
  {
3064
- "name": "minAuctionDuration",
3574
+ "name": "minPerpAuctionDuration",
3065
3575
  "type": "u8"
3066
3576
  },
3067
3577
  {
3068
- "name": "maxAuctionDuration",
3578
+ "name": "maxPerpAuctionDuration",
3069
3579
  "type": "u8"
3070
3580
  },
3581
+ {
3582
+ "name": "minSpotAuctionDuration",
3583
+ "type": "u8"
3584
+ },
3585
+ {
3586
+ "name": "maxSpotAuctionDuration",
3587
+ "type": "u8"
3588
+ },
3589
+ {
3590
+ "name": "settlementDuration",
3591
+ "type": "u16"
3592
+ },
3071
3593
  {
3072
3594
  "name": "liquidationMarginBufferRatio",
3595
+ "type": "u32"
3596
+ },
3597
+ {
3598
+ "name": "signer",
3599
+ "type": "publicKey"
3600
+ },
3601
+ {
3602
+ "name": "signerNonce",
3073
3603
  "type": "u8"
3074
3604
  },
3075
3605
  {
@@ -3106,11 +3636,11 @@
3106
3636
  }
3107
3637
  },
3108
3638
  {
3109
- "name": "bankBalances",
3639
+ "name": "spotPositions",
3110
3640
  "type": {
3111
3641
  "array": [
3112
3642
  {
3113
- "defined": "UserBankBalance"
3643
+ "defined": "SpotPosition"
3114
3644
  },
3115
3645
  8
3116
3646
  ]
@@ -3121,11 +3651,11 @@
3121
3651
  "type": "u64"
3122
3652
  },
3123
3653
  {
3124
- "name": "positions",
3654
+ "name": "perpPositions",
3125
3655
  "type": {
3126
3656
  "array": [
3127
3657
  {
3128
- "defined": "MarketPosition"
3658
+ "defined": "PerpPosition"
3129
3659
  },
3130
3660
  5
3131
3661
  ]
@@ -3180,7 +3710,7 @@
3180
3710
  },
3181
3711
  {
3182
3712
  "name": "totalReferrerReward",
3183
- "type": "u128"
3713
+ "type": "u64"
3184
3714
  },
3185
3715
  {
3186
3716
  "name": "fees",
@@ -3232,6 +3762,12 @@
3232
3762
  "defined": "OrderType"
3233
3763
  }
3234
3764
  },
3765
+ {
3766
+ "name": "marketType",
3767
+ "type": {
3768
+ "defined": "MarketType"
3769
+ }
3770
+ },
3235
3771
  {
3236
3772
  "name": "direction",
3237
3773
  "type": {
@@ -3276,46 +3812,24 @@
3276
3812
  "defined": "OrderTriggerCondition"
3277
3813
  }
3278
3814
  },
3279
- {
3280
- "name": "optionalAccounts",
3281
- "type": {
3282
- "defined": "OrderParamsOptionalAccounts"
3283
- }
3284
- },
3285
3815
  {
3286
3816
  "name": "positionLimit",
3287
3817
  "type": "u128"
3288
3818
  },
3289
3819
  {
3290
3820
  "name": "oraclePriceOffset",
3291
- "type": "i128"
3292
- },
3293
- {
3294
- "name": "auctionDuration",
3295
- "type": "u8"
3296
- },
3297
- {
3298
- "name": "padding0",
3299
- "type": "bool"
3300
- },
3301
- {
3302
- "name": "padding1",
3303
- "type": "bool"
3304
- }
3305
- ]
3306
- }
3307
- },
3308
- {
3309
- "name": "OrderParamsOptionalAccounts",
3310
- "type": {
3311
- "kind": "struct",
3312
- "fields": [
3821
+ "type": "i128"
3822
+ },
3823
+ {
3824
+ "name": "auctionDuration",
3825
+ "type": "u8"
3826
+ },
3313
3827
  {
3314
- "name": "discountToken",
3828
+ "name": "padding0",
3315
3829
  "type": "bool"
3316
3830
  },
3317
3831
  {
3318
- "name": "referrer",
3832
+ "name": "padding1",
3319
3833
  "type": "bool"
3320
3834
  }
3321
3835
  ]
@@ -3352,6 +3866,10 @@
3352
3866
  "name": "quoteAssetAmount",
3353
3867
  "type": "i128"
3354
3868
  },
3869
+ {
3870
+ "name": "lpShares",
3871
+ "type": "u128"
3872
+ },
3355
3873
  {
3356
3874
  "name": "userPnl",
3357
3875
  "type": "i128"
@@ -3381,7 +3899,7 @@
3381
3899
  "kind": "struct",
3382
3900
  "fields": [
3383
3901
  {
3384
- "name": "assetBankIndex",
3902
+ "name": "assetMarketIndex",
3385
3903
  "type": "u64"
3386
3904
  },
3387
3905
  {
@@ -3393,7 +3911,7 @@
3393
3911
  "type": "u128"
3394
3912
  },
3395
3913
  {
3396
- "name": "liabilityBankIndex",
3914
+ "name": "liabilityMarketIndex",
3397
3915
  "type": "u64"
3398
3916
  },
3399
3917
  {
@@ -3413,7 +3931,7 @@
3413
3931
  "kind": "struct",
3414
3932
  "fields": [
3415
3933
  {
3416
- "name": "marketIndex",
3934
+ "name": "perpMarketIndex",
3417
3935
  "type": "u64"
3418
3936
  },
3419
3937
  {
@@ -3425,7 +3943,7 @@
3425
3943
  "type": "u128"
3426
3944
  },
3427
3945
  {
3428
- "name": "liabilityBankIndex",
3946
+ "name": "liabilityMarketIndex",
3429
3947
  "type": "u64"
3430
3948
  },
3431
3949
  {
@@ -3445,7 +3963,7 @@
3445
3963
  "kind": "struct",
3446
3964
  "fields": [
3447
3965
  {
3448
- "name": "marketIndex",
3966
+ "name": "perpMarketIndex",
3449
3967
  "type": "u64"
3450
3968
  },
3451
3969
  {
@@ -3457,7 +3975,7 @@
3457
3975
  "type": "u128"
3458
3976
  },
3459
3977
  {
3460
- "name": "assetBankIndex",
3978
+ "name": "assetMarketIndex",
3461
3979
  "type": "u64"
3462
3980
  },
3463
3981
  {
@@ -3501,7 +4019,7 @@
3501
4019
  "kind": "struct",
3502
4020
  "fields": [
3503
4021
  {
3504
- "name": "bankIndex",
4022
+ "name": "marketIndex",
3505
4023
  "type": "u64"
3506
4024
  },
3507
4025
  {
@@ -3641,7 +4159,7 @@
3641
4159
  {
3642
4160
  "name": "marketPositionPerLp",
3643
4161
  "type": {
3644
- "defined": "MarketPosition"
4162
+ "defined": "PerpPosition"
3645
4163
  }
3646
4164
  },
3647
4165
  {
@@ -3684,6 +4202,10 @@
3684
4202
  "name": "cumulativeRepegRebateShort",
3685
4203
  "type": "u128"
3686
4204
  },
4205
+ {
4206
+ "name": "cumulativeSocialLoss",
4207
+ "type": "i128"
4208
+ },
3687
4209
  {
3688
4210
  "name": "markStd",
3689
4211
  "type": "u64"
@@ -3719,7 +4241,7 @@
3719
4241
  {
3720
4242
  "name": "marketPosition",
3721
4243
  "type": {
3722
- "defined": "MarketPosition"
4244
+ "defined": "PerpPosition"
3723
4245
  }
3724
4246
  },
3725
4247
  {
@@ -4052,7 +4574,7 @@
4052
4574
  },
4053
4575
  {
4054
4576
  "name": "totalLpFees",
4055
- "type": "u128"
4577
+ "type": "u64"
4056
4578
  },
4057
4579
  {
4058
4580
  "name": "totalFeeRebate",
@@ -4060,39 +4582,51 @@
4060
4582
  },
4061
4583
  {
4062
4584
  "name": "totalTokenDiscount",
4063
- "type": "u128"
4585
+ "type": "u64"
4064
4586
  },
4065
4587
  {
4066
4588
  "name": "totalRefereeDiscount",
4067
- "type": "u128"
4589
+ "type": "u64"
4068
4590
  }
4069
4591
  ]
4070
4592
  }
4071
4593
  },
4072
4594
  {
4073
- "name": "UserBankBalance",
4595
+ "name": "SpotPosition",
4074
4596
  "type": {
4075
4597
  "kind": "struct",
4076
4598
  "fields": [
4077
4599
  {
4078
- "name": "bankIndex",
4600
+ "name": "marketIndex",
4079
4601
  "type": "u64"
4080
4602
  },
4081
4603
  {
4082
4604
  "name": "balanceType",
4083
4605
  "type": {
4084
- "defined": "BankBalanceType"
4606
+ "defined": "SpotBalanceType"
4085
4607
  }
4086
4608
  },
4087
4609
  {
4088
4610
  "name": "balance",
4089
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"
4090
4624
  }
4091
4625
  ]
4092
4626
  }
4093
4627
  },
4094
4628
  {
4095
- "name": "MarketPosition",
4629
+ "name": "PerpPosition",
4096
4630
  "type": {
4097
4631
  "kind": "struct",
4098
4632
  "fields": [
@@ -4144,6 +4678,10 @@
4144
4678
  "name": "lpShares",
4145
4679
  "type": "u128"
4146
4680
  },
4681
+ {
4682
+ "name": "remainderBaseAssetAmount",
4683
+ "type": "i128"
4684
+ },
4147
4685
  {
4148
4686
  "name": "lastNetBaseAssetAmountPerLp",
4149
4687
  "type": "i128"
@@ -4196,6 +4734,12 @@
4196
4734
  "defined": "OrderType"
4197
4735
  }
4198
4736
  },
4737
+ {
4738
+ "name": "marketType",
4739
+ "type": {
4740
+ "defined": "MarketType"
4741
+ }
4742
+ },
4199
4743
  {
4200
4744
  "name": "ts",
4201
4745
  "type": "i64"
@@ -4302,6 +4846,20 @@
4302
4846
  ]
4303
4847
  }
4304
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
+ },
4305
4863
  {
4306
4864
  "name": "SwapDirection",
4307
4865
  "type": {
@@ -4395,20 +4953,6 @@
4395
4953
  ]
4396
4954
  }
4397
4955
  },
4398
- {
4399
- "name": "BankBalanceType",
4400
- "type": {
4401
- "kind": "enum",
4402
- "variants": [
4403
- {
4404
- "name": "Deposit"
4405
- },
4406
- {
4407
- "name": "Borrow"
4408
- }
4409
- ]
4410
- }
4411
- },
4412
4956
  {
4413
4957
  "name": "DepositDirection",
4414
4958
  "type": {
@@ -4478,6 +5022,23 @@
4478
5022
  ]
4479
5023
  }
4480
5024
  },
5025
+ {
5026
+ "name": "LPAction",
5027
+ "type": {
5028
+ "kind": "enum",
5029
+ "variants": [
5030
+ {
5031
+ "name": "AddLiquidity"
5032
+ },
5033
+ {
5034
+ "name": "RemoveLiquidity"
5035
+ },
5036
+ {
5037
+ "name": "SettleLiquidity"
5038
+ }
5039
+ ]
5040
+ }
5041
+ },
4481
5042
  {
4482
5043
  "name": "LiquidationType",
4483
5044
  "type": {
@@ -4525,7 +5086,7 @@
4525
5086
  }
4526
5087
  },
4527
5088
  {
4528
- "name": "FulfillmentMethod",
5089
+ "name": "PerpFulfillmentMethod",
4529
5090
  "type": {
4530
5091
  "kind": "enum",
4531
5092
  "variants": [
@@ -4538,6 +5099,51 @@
4538
5099
  ]
4539
5100
  }
4540
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
+ },
4541
5147
  {
4542
5148
  "name": "OracleSource",
4543
5149
  "type": {
@@ -4555,6 +5161,48 @@
4555
5161
  ]
4556
5162
  }
4557
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
+ },
4558
5206
  {
4559
5207
  "name": "OrderStatus",
4560
5208
  "type": {
@@ -4608,6 +5256,20 @@
4608
5256
  }
4609
5257
  ]
4610
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
+ }
4611
5273
  }
4612
5274
  ],
4613
5275
  "events": [
@@ -4682,7 +5344,7 @@
4682
5344
  "index": false
4683
5345
  },
4684
5346
  {
4685
- "name": "bankIndex",
5347
+ "name": "marketIndex",
4686
5348
  "type": "u64",
4687
5349
  "index": false
4688
5350
  },
@@ -4991,6 +5653,13 @@
4991
5653
  "type": "u64",
4992
5654
  "index": false
4993
5655
  },
5656
+ {
5657
+ "name": "marketType",
5658
+ "type": {
5659
+ "defined": "MarketType"
5660
+ },
5661
+ "index": false
5662
+ },
4994
5663
  {
4995
5664
  "name": "filler",
4996
5665
  "type": {
@@ -5096,6 +5765,15 @@
5096
5765
  },
5097
5766
  "index": false
5098
5767
  },
5768
+ {
5769
+ "name": "takerOrderDirection",
5770
+ "type": {
5771
+ "option": {
5772
+ "defined": "PositionDirection"
5773
+ }
5774
+ },
5775
+ "index": false
5776
+ },
5099
5777
  {
5100
5778
  "name": "takerOrderBaseAssetAmount",
5101
5779
  "type": {
@@ -5124,6 +5802,13 @@
5124
5802
  },
5125
5803
  "index": false
5126
5804
  },
5805
+ {
5806
+ "name": "spotFulfillmentMethodFee",
5807
+ "type": {
5808
+ "option": "u64"
5809
+ },
5810
+ "index": false
5811
+ },
5127
5812
  {
5128
5813
  "name": "maker",
5129
5814
  "type": {
@@ -5138,6 +5823,15 @@
5138
5823
  },
5139
5824
  "index": false
5140
5825
  },
5826
+ {
5827
+ "name": "makerOrderDirection",
5828
+ "type": {
5829
+ "option": {
5830
+ "defined": "PositionDirection"
5831
+ }
5832
+ },
5833
+ "index": false
5834
+ },
5141
5835
  {
5142
5836
  "name": "makerOrderBaseAssetAmount",
5143
5837
  "type": {
@@ -5173,6 +5867,53 @@
5173
5867
  }
5174
5868
  ]
5175
5869
  },
5870
+ {
5871
+ "name": "LPRecord",
5872
+ "fields": [
5873
+ {
5874
+ "name": "ts",
5875
+ "type": "i64",
5876
+ "index": false
5877
+ },
5878
+ {
5879
+ "name": "user",
5880
+ "type": "publicKey",
5881
+ "index": false
5882
+ },
5883
+ {
5884
+ "name": "action",
5885
+ "type": {
5886
+ "defined": "LPAction"
5887
+ },
5888
+ "index": false
5889
+ },
5890
+ {
5891
+ "name": "nShares",
5892
+ "type": "u128",
5893
+ "index": false
5894
+ },
5895
+ {
5896
+ "name": "marketIndex",
5897
+ "type": "u64",
5898
+ "index": false
5899
+ },
5900
+ {
5901
+ "name": "deltaBaseAssetAmount",
5902
+ "type": "i128",
5903
+ "index": false
5904
+ },
5905
+ {
5906
+ "name": "deltaQuoteAssetAmount",
5907
+ "type": "i128",
5908
+ "index": false
5909
+ },
5910
+ {
5911
+ "name": "pnl",
5912
+ "type": "i128",
5913
+ "index": false
5914
+ }
5915
+ ]
5916
+ },
5176
5917
  {
5177
5918
  "name": "LiquidationRecord",
5178
5919
  "fields": [
@@ -5316,7 +6057,12 @@
5316
6057
  "index": false
5317
6058
  },
5318
6059
  {
5319
- "name": "bankIndex",
6060
+ "name": "spotMarketIndex",
6061
+ "type": "u64",
6062
+ "index": false
6063
+ },
6064
+ {
6065
+ "name": "perpMarketIndex",
5320
6066
  "type": "u64",
5321
6067
  "index": false
5322
6068
  },
@@ -5331,7 +6077,7 @@
5331
6077
  "index": false
5332
6078
  },
5333
6079
  {
5334
- "name": "bankVaultAmountBefore",
6080
+ "name": "vaultAmountBefore",
5335
6081
  "type": "u64",
5336
6082
  "index": false
5337
6083
  },
@@ -5352,7 +6098,7 @@
5352
6098
  },
5353
6099
  {
5354
6100
  "name": "amount",
5355
- "type": "u64",
6101
+ "type": "i64",
5356
6102
  "index": false
5357
6103
  }
5358
6104
  ]
@@ -5383,7 +6129,7 @@
5383
6129
  "index": false
5384
6130
  },
5385
6131
  {
5386
- "name": "bankIndex",
6132
+ "name": "marketIndex",
5387
6133
  "type": "u64",
5388
6134
  "index": false
5389
6135
  },
@@ -5428,8 +6174,8 @@
5428
6174
  "errors": [
5429
6175
  {
5430
6176
  "code": 6000,
5431
- "name": "InvalidBankAuthority",
5432
- "msg": "Invalid Bank Authority"
6177
+ "name": "InvalidSpotMarketAuthority",
6178
+ "msg": "Invalid Spot Market Authority"
5433
6179
  },
5434
6180
  {
5435
6181
  "code": 6001,
@@ -5508,8 +6254,8 @@
5508
6254
  },
5509
6255
  {
5510
6256
  "code": 6016,
5511
- "name": "TradeSizeTooSmall",
5512
- "msg": "Trade Size Too Small"
6257
+ "name": "OrderSizeTooSmall",
6258
+ "msg": "Order Size Too Small"
5513
6259
  },
5514
6260
  {
5515
6261
  "code": 6017,
@@ -5768,53 +6514,53 @@
5768
6514
  },
5769
6515
  {
5770
6516
  "code": 6068,
5771
- "name": "CouldNotFindBankBalance",
5772
- "msg": "CouldNotFindBankBalance"
6517
+ "name": "CouldNotFindSpotPosition",
6518
+ "msg": "CouldNotFindSpotPosition"
5773
6519
  },
5774
6520
  {
5775
6521
  "code": 6069,
5776
- "name": "NoUserBankBalanceAvailable",
5777
- "msg": "NoUserBankBalanceAvailable"
6522
+ "name": "NoSpotPositionAvailable",
6523
+ "msg": "NoSpotPositionAvailable"
5778
6524
  },
5779
6525
  {
5780
6526
  "code": 6070,
5781
- "name": "InvalidBankInitialization",
5782
- "msg": "InvalidBankInitialization"
6527
+ "name": "InvalidSpotMarketInitialization",
6528
+ "msg": "InvalidSpotMarketInitialization"
5783
6529
  },
5784
6530
  {
5785
6531
  "code": 6071,
5786
- "name": "CouldNotLoadBankData",
5787
- "msg": "CouldNotLoadBankData"
6532
+ "name": "CouldNotLoadSpotMarketData",
6533
+ "msg": "CouldNotLoadSpotMarketData"
5788
6534
  },
5789
6535
  {
5790
6536
  "code": 6072,
5791
- "name": "BankNotFound",
5792
- "msg": "BankNotFound"
6537
+ "name": "SpotMarketNotFound",
6538
+ "msg": "SpotMarketNotFound"
5793
6539
  },
5794
6540
  {
5795
6541
  "code": 6073,
5796
- "name": "InvalidBankAccount",
5797
- "msg": "InvalidBankAccount"
6542
+ "name": "InvalidSpotMarketAccount",
6543
+ "msg": "InvalidSpotMarketAccount"
5798
6544
  },
5799
6545
  {
5800
6546
  "code": 6074,
5801
- "name": "UnableToLoadBankAccount",
5802
- "msg": "UnableToLoadBankAccount"
6547
+ "name": "UnableToLoadSpotMarketAccount",
6548
+ "msg": "UnableToLoadSpotMarketAccount"
5803
6549
  },
5804
6550
  {
5805
6551
  "code": 6075,
5806
- "name": "BankWrongMutability",
5807
- "msg": "BankWrongMutability"
6552
+ "name": "SpotMarketWrongMutability",
6553
+ "msg": "SpotMarketWrongMutability"
5808
6554
  },
5809
6555
  {
5810
6556
  "code": 6076,
5811
- "name": "BankInterestNotUpToDate",
5812
- "msg": "BankInterestNotUpToDate"
6557
+ "name": "SpotMarketInterestNotUpToDate",
6558
+ "msg": "SpotInterestNotUpToDate"
5813
6559
  },
5814
6560
  {
5815
6561
  "code": 6077,
5816
- "name": "BankInsufficientDeposits",
5817
- "msg": "BankInsufficientDeposits"
6562
+ "name": "SpotMarketInsufficientDeposits",
6563
+ "msg": "SpotMarketInsufficientDeposits"
5818
6564
  },
5819
6565
  {
5820
6566
  "code": 6078,
@@ -5948,8 +6694,8 @@
5948
6694
  },
5949
6695
  {
5950
6696
  "code": 6104,
5951
- "name": "WrongBankBalanceType",
5952
- "msg": "WrongBankBalanceType"
6697
+ "name": "WrongSpotBalanceType",
6698
+ "msg": "WrongSpotBalanceType"
5953
6699
  },
5954
6700
  {
5955
6701
  "code": 6105,
@@ -5993,8 +6739,8 @@
5993
6739
  },
5994
6740
  {
5995
6741
  "code": 6113,
5996
- "name": "BankDailyWithdrawLimit",
5997
- "msg": "BankDailyWithdrawLimit"
6742
+ "name": "DailyWithdrawLimit",
6743
+ "msg": "DailyWithdrawLimit"
5998
6744
  },
5999
6745
  {
6000
6746
  "code": 6114,
@@ -6008,7 +6754,7 @@
6008
6754
  },
6009
6755
  {
6010
6756
  "code": 6116,
6011
- "name": "CantLPWithMarketPosition",
6757
+ "name": "CantLPWithPerpPosition",
6012
6758
  "msg": "Cant LP with a market position"
6013
6759
  },
6014
6760
  {
@@ -6023,8 +6769,43 @@
6023
6769
  },
6024
6770
  {
6025
6771
  "code": 6119,
6026
- "name": "InvalidBankState",
6027
- "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"
6028
6809
  }
6029
6810
  ]
6030
6811
  }