@drift-labs/sdk 0.2.0-master.1 → 0.2.0-master.12

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 (142) hide show
  1. package/lib/accounts/types.d.ts +1 -0
  2. package/lib/admin.d.ts +8 -5
  3. package/lib/admin.js +43 -11
  4. package/lib/clearingHouse.d.ts +35 -20
  5. package/lib/clearingHouse.js +497 -154
  6. package/lib/clearingHouseUser.d.ts +12 -17
  7. package/lib/clearingHouseUser.js +97 -88
  8. package/lib/config.js +1 -1
  9. package/lib/constants/banks.d.ts +2 -2
  10. package/lib/constants/banks.js +12 -4
  11. package/lib/constants/numericConstants.d.ts +4 -0
  12. package/lib/constants/numericConstants.js +5 -1
  13. package/lib/events/eventList.js +3 -0
  14. package/lib/events/types.d.ts +2 -1
  15. package/lib/factory/bigNum.d.ts +9 -2
  16. package/lib/factory/bigNum.js +50 -16
  17. package/lib/idl/clearing_house.json +858 -177
  18. package/lib/idl/{mock_usdc_faucet.json → token_faucet.json} +46 -23
  19. package/lib/index.d.ts +4 -2
  20. package/lib/index.js +8 -2
  21. package/lib/math/amm.d.ts +6 -1
  22. package/lib/math/amm.js +124 -41
  23. package/lib/math/auction.js +4 -1
  24. package/lib/math/bankBalance.d.ts +3 -1
  25. package/lib/math/bankBalance.js +54 -1
  26. package/lib/math/margin.d.ts +11 -0
  27. package/lib/math/margin.js +72 -0
  28. package/lib/math/market.d.ts +4 -1
  29. package/lib/math/market.js +35 -1
  30. package/lib/math/orders.d.ts +2 -2
  31. package/lib/math/orders.js +18 -11
  32. package/lib/math/position.d.ts +8 -0
  33. package/lib/math/position.js +44 -12
  34. package/lib/math/repeg.js +1 -1
  35. package/lib/math/trade.d.ts +1 -1
  36. package/lib/math/trade.js +7 -10
  37. package/lib/orderParams.d.ts +14 -5
  38. package/lib/orderParams.js +8 -96
  39. package/lib/orders.d.ts +2 -4
  40. package/lib/orders.js +7 -161
  41. package/lib/slot/SlotSubscriber.d.ts +7 -0
  42. package/lib/slot/SlotSubscriber.js +3 -0
  43. package/lib/{mockUSDCFaucet.d.ts → tokenFaucet.d.ts} +8 -5
  44. package/lib/{mockUSDCFaucet.js → tokenFaucet.js} +63 -51
  45. package/lib/tx/retryTxSender.js +9 -2
  46. package/lib/tx/utils.js +1 -1
  47. package/lib/types.d.ts +159 -15
  48. package/lib/types.js +59 -1
  49. package/lib/util/computeUnits.js +1 -1
  50. package/lib/util/getTokenAddress.d.ts +2 -0
  51. package/lib/util/getTokenAddress.js +9 -0
  52. package/package.json +3 -3
  53. package/src/accounts/bulkAccountLoader.js +197 -0
  54. package/src/accounts/bulkUserSubscription.js +33 -0
  55. package/src/accounts/pollingClearingHouseAccountSubscriber.js +311 -0
  56. package/src/accounts/pollingOracleSubscriber.js +93 -0
  57. package/src/accounts/pollingTokenAccountSubscriber.js +90 -0
  58. package/src/accounts/pollingUserAccountSubscriber.js +132 -0
  59. package/src/accounts/types.js +10 -0
  60. package/src/accounts/utils.js +7 -0
  61. package/src/accounts/webSocketAccountSubscriber.js +93 -0
  62. package/src/accounts/webSocketClearingHouseAccountSubscriber.js +233 -0
  63. package/src/accounts/webSocketUserAccountSubscriber.js +62 -0
  64. package/src/addresses/marketAddresses.js +26 -0
  65. package/src/admin.ts +66 -14
  66. package/src/assert/assert.js +9 -0
  67. package/src/clearingHouse.ts +836 -254
  68. package/src/clearingHouseConfig.js +2 -0
  69. package/src/clearingHouseUser.ts +219 -121
  70. package/src/clearingHouseUserConfig.js +2 -0
  71. package/src/config.ts +1 -1
  72. package/src/constants/banks.js +42 -0
  73. package/src/constants/banks.ts +14 -4
  74. package/src/constants/markets.js +42 -0
  75. package/src/constants/numericConstants.js +41 -0
  76. package/src/constants/numericConstants.ts +5 -0
  77. package/src/events/eventList.js +77 -0
  78. package/src/events/eventList.ts +3 -0
  79. package/src/events/eventSubscriber.js +139 -0
  80. package/src/events/fetchLogs.js +50 -0
  81. package/src/events/pollingLogProvider.js +64 -0
  82. package/src/events/sort.js +44 -0
  83. package/src/events/txEventCache.js +71 -0
  84. package/src/events/types.js +20 -0
  85. package/src/events/types.ts +2 -0
  86. package/src/events/webSocketLogProvider.js +41 -0
  87. package/src/examples/makeTradeExample.js +80 -0
  88. package/src/factory/bigNum.js +390 -0
  89. package/src/factory/bigNum.ts +65 -18
  90. package/src/factory/oracleClient.js +20 -0
  91. package/src/idl/clearing_house.json +858 -177
  92. package/src/idl/{mock_usdc_faucet.json → token_faucet.json} +46 -23
  93. package/src/index.js +69 -0
  94. package/src/index.ts +4 -2
  95. package/src/math/amm.js +369 -0
  96. package/src/math/amm.ts +207 -52
  97. package/src/math/auction.js +42 -0
  98. package/src/math/auction.ts +5 -1
  99. package/src/math/bankBalance.ts +98 -1
  100. package/src/math/conversion.js +11 -0
  101. package/src/math/funding.js +248 -0
  102. package/src/math/margin.ts +124 -0
  103. package/src/math/market.ts +66 -1
  104. package/src/math/oracles.js +26 -0
  105. package/src/math/orders.ts +17 -13
  106. package/src/math/position.ts +63 -9
  107. package/src/math/repeg.js +128 -0
  108. package/src/math/repeg.ts +2 -1
  109. package/src/math/state.js +15 -0
  110. package/src/math/trade.js +253 -0
  111. package/src/math/trade.ts +23 -25
  112. package/src/math/utils.js +0 -1
  113. package/src/mockUSDCFaucet.js +280 -0
  114. package/src/oracles/oracleClientCache.js +19 -0
  115. package/src/oracles/pythClient.js +46 -0
  116. package/src/oracles/quoteAssetOracleClient.js +32 -0
  117. package/src/oracles/switchboardClient.js +69 -0
  118. package/src/oracles/types.js +2 -0
  119. package/src/orderParams.js +20 -0
  120. package/src/orderParams.ts +20 -141
  121. package/src/orders.ts +10 -287
  122. package/src/slot/SlotSubscriber.js +39 -0
  123. package/src/slot/SlotSubscriber.ts +11 -1
  124. package/src/token/index.js +38 -0
  125. package/src/tokenFaucet.js +189 -0
  126. package/src/{mockUSDCFaucet.ts → tokenFaucet.ts} +82 -70
  127. package/src/tx/retryTxSender.ts +11 -3
  128. package/src/tx/types.js +2 -0
  129. package/src/tx/utils.js +17 -0
  130. package/src/tx/utils.ts +1 -1
  131. package/src/types.js +125 -0
  132. package/src/types.ts +155 -17
  133. package/src/userName.js +20 -0
  134. package/src/util/computeUnits.js +21 -11
  135. package/src/util/computeUnits.ts +1 -1
  136. package/src/util/getTokenAddress.js +9 -0
  137. package/src/util/getTokenAddress.ts +18 -0
  138. package/src/util/promiseTimeout.js +14 -0
  139. package/src/util/tps.js +27 -0
  140. package/src/wallet.js +35 -0
  141. package/tests/bn/test.ts +2 -0
  142. package/src/util/computeUnits.js.map +0 -1
@@ -141,6 +141,14 @@
141
141
  {
142
142
  "name": "maintenanceLiabilityWeight",
143
143
  "type": "u128"
144
+ },
145
+ {
146
+ "name": "imfFactor",
147
+ "type": "u128"
148
+ },
149
+ {
150
+ "name": "liquidationFee",
151
+ "type": "u128"
144
152
  }
145
153
  ]
146
154
  },
@@ -206,12 +214,12 @@
206
214
  "type": "u32"
207
215
  },
208
216
  {
209
- "name": "marginRatioPartial",
217
+ "name": "marginRatioMaintenance",
210
218
  "type": "u32"
211
219
  },
212
220
  {
213
- "name": "marginRatioMaintenance",
214
- "type": "u32"
221
+ "name": "liquidationFee",
222
+ "type": "u128"
215
223
  }
216
224
  ]
217
225
  },
@@ -381,11 +389,6 @@
381
389
  "name": "authority",
382
390
  "isMut": false,
383
391
  "isSigner": true
384
- },
385
- {
386
- "name": "oracle",
387
- "isMut": false,
388
- "isSigner": false
389
392
  }
390
393
  ],
391
394
  "args": [
@@ -414,17 +417,14 @@
414
417
  "name": "authority",
415
418
  "isMut": false,
416
419
  "isSigner": true
417
- },
418
- {
419
- "name": "oracle",
420
- "isMut": false,
421
- "isSigner": false
422
420
  }
423
421
  ],
424
422
  "args": [
425
423
  {
426
424
  "name": "orderId",
427
- "type": "u64"
425
+ "type": {
426
+ "option": "u64"
427
+ }
428
428
  }
429
429
  ]
430
430
  },
@@ -445,11 +445,6 @@
445
445
  "name": "authority",
446
446
  "isMut": false,
447
447
  "isSigner": true
448
- },
449
- {
450
- "name": "oracle",
451
- "isMut": false,
452
- "isSigner": false
453
448
  }
454
449
  ],
455
450
  "args": [
@@ -481,17 +476,14 @@
481
476
  "name": "user",
482
477
  "isMut": true,
483
478
  "isSigner": false
484
- },
485
- {
486
- "name": "oracle",
487
- "isMut": false,
488
- "isSigner": false
489
479
  }
490
480
  ],
491
481
  "args": [
492
482
  {
493
483
  "name": "orderId",
494
- "type": "u64"
484
+ "type": {
485
+ "option": "u64"
486
+ }
495
487
  },
496
488
  {
497
489
  "name": "makerOrderId",
@@ -518,11 +510,6 @@
518
510
  "name": "authority",
519
511
  "isMut": false,
520
512
  "isSigner": true
521
- },
522
- {
523
- "name": "oracle",
524
- "isMut": false,
525
- "isSigner": false
526
513
  }
527
514
  ],
528
515
  "args": [
@@ -555,18 +542,13 @@
555
542
  },
556
543
  {
557
544
  "name": "taker",
558
- "isMut": false,
545
+ "isMut": true,
559
546
  "isSigner": false
560
547
  },
561
548
  {
562
549
  "name": "authority",
563
550
  "isMut": false,
564
551
  "isSigner": true
565
- },
566
- {
567
- "name": "oracle",
568
- "isMut": false,
569
- "isSigner": false
570
552
  }
571
553
  ],
572
554
  "args": [
@@ -582,6 +564,37 @@
582
564
  }
583
565
  ]
584
566
  },
567
+ {
568
+ "name": "triggerOrder",
569
+ "accounts": [
570
+ {
571
+ "name": "state",
572
+ "isMut": false,
573
+ "isSigner": false
574
+ },
575
+ {
576
+ "name": "authority",
577
+ "isMut": false,
578
+ "isSigner": true
579
+ },
580
+ {
581
+ "name": "filler",
582
+ "isMut": true,
583
+ "isSigner": false
584
+ },
585
+ {
586
+ "name": "user",
587
+ "isMut": true,
588
+ "isSigner": false
589
+ }
590
+ ],
591
+ "args": [
592
+ {
593
+ "name": "orderId",
594
+ "type": "u64"
595
+ }
596
+ ]
597
+ },
585
598
  {
586
599
  "name": "updateAmms",
587
600
  "accounts": [
@@ -635,7 +648,7 @@
635
648
  ]
636
649
  },
637
650
  {
638
- "name": "liquidate",
651
+ "name": "liquidatePerp",
639
652
  "accounts": [
640
653
  {
641
654
  "name": "state",
@@ -656,29 +669,135 @@
656
669
  "name": "user",
657
670
  "isMut": true,
658
671
  "isSigner": false
672
+ }
673
+ ],
674
+ "args": [
675
+ {
676
+ "name": "marketIndex",
677
+ "type": "u64"
659
678
  },
660
679
  {
661
- "name": "bankVault",
680
+ "name": "liquidatorMaxBaseAssetAmount",
681
+ "type": "u128"
682
+ }
683
+ ]
684
+ },
685
+ {
686
+ "name": "liquidateBorrow",
687
+ "accounts": [
688
+ {
689
+ "name": "state",
690
+ "isMut": false,
691
+ "isSigner": false
692
+ },
693
+ {
694
+ "name": "authority",
695
+ "isMut": false,
696
+ "isSigner": true
697
+ },
698
+ {
699
+ "name": "liquidator",
662
700
  "isMut": true,
663
701
  "isSigner": false
664
702
  },
665
703
  {
666
- "name": "bankVaultAuthority",
704
+ "name": "user",
667
705
  "isMut": true,
668
706
  "isSigner": false
707
+ }
708
+ ],
709
+ "args": [
710
+ {
711
+ "name": "assetBankIndex",
712
+ "type": "u64"
669
713
  },
670
714
  {
671
- "name": "insuranceVault",
715
+ "name": "liabilityBankIndex",
716
+ "type": "u64"
717
+ },
718
+ {
719
+ "name": "liquidatorMaxLiabilityTransfer",
720
+ "type": "u128"
721
+ }
722
+ ]
723
+ },
724
+ {
725
+ "name": "liquidateBorrowForPerpPnl",
726
+ "accounts": [
727
+ {
728
+ "name": "state",
729
+ "isMut": false,
730
+ "isSigner": false
731
+ },
732
+ {
733
+ "name": "authority",
734
+ "isMut": false,
735
+ "isSigner": true
736
+ },
737
+ {
738
+ "name": "liquidator",
672
739
  "isMut": true,
673
740
  "isSigner": false
674
741
  },
675
742
  {
676
- "name": "tokenProgram",
743
+ "name": "user",
744
+ "isMut": true,
745
+ "isSigner": false
746
+ }
747
+ ],
748
+ "args": [
749
+ {
750
+ "name": "perpMarketIndex",
751
+ "type": "u64"
752
+ },
753
+ {
754
+ "name": "liabilityBankIndex",
755
+ "type": "u64"
756
+ },
757
+ {
758
+ "name": "liquidatorMaxLiabilityTransfer",
759
+ "type": "u128"
760
+ }
761
+ ]
762
+ },
763
+ {
764
+ "name": "liquidatePerpPnlForDeposit",
765
+ "accounts": [
766
+ {
767
+ "name": "state",
768
+ "isMut": false,
769
+ "isSigner": false
770
+ },
771
+ {
772
+ "name": "authority",
677
773
  "isMut": false,
774
+ "isSigner": true
775
+ },
776
+ {
777
+ "name": "liquidator",
778
+ "isMut": true,
779
+ "isSigner": false
780
+ },
781
+ {
782
+ "name": "user",
783
+ "isMut": true,
678
784
  "isSigner": false
679
785
  }
680
786
  ],
681
- "args": []
787
+ "args": [
788
+ {
789
+ "name": "perpMarketIndex",
790
+ "type": "u64"
791
+ },
792
+ {
793
+ "name": "assetBankIndex",
794
+ "type": "u64"
795
+ },
796
+ {
797
+ "name": "liquidatorMaxPnlTransfer",
798
+ "type": "u128"
799
+ }
800
+ ]
682
801
  },
683
802
  {
684
803
  "name": "moveAmmPrice",
@@ -711,7 +830,7 @@
711
830
  ]
712
831
  },
713
832
  {
714
- "name": "withdrawFees",
833
+ "name": "withdrawFromMarketToInsuranceVault",
715
834
  "accounts": [
716
835
  {
717
836
  "name": "state",
@@ -725,7 +844,7 @@
725
844
  },
726
845
  {
727
846
  "name": "bank",
728
- "isMut": false,
847
+ "isMut": true,
729
848
  "isSigner": false
730
849
  },
731
850
  {
@@ -830,6 +949,11 @@
830
949
  "isMut": false,
831
950
  "isSigner": false
832
951
  },
952
+ {
953
+ "name": "bank",
954
+ "isMut": true,
955
+ "isSigner": false
956
+ },
833
957
  {
834
958
  "name": "bankVault",
835
959
  "isMut": true,
@@ -993,11 +1117,6 @@
993
1117
  "name": "user",
994
1118
  "isMut": true,
995
1119
  "isSigner": false
996
- },
997
- {
998
- "name": "market",
999
- "isMut": false,
1000
- "isSigner": false
1001
1120
  }
1002
1121
  ],
1003
1122
  "args": []
@@ -1083,10 +1202,6 @@
1083
1202
  "name": "marginRatioInitial",
1084
1203
  "type": "u32"
1085
1204
  },
1086
- {
1087
- "name": "marginRatioPartial",
1088
- "type": "u32"
1089
- },
1090
1205
  {
1091
1206
  "name": "marginRatioMaintenance",
1092
1207
  "type": "u32"
@@ -1094,7 +1209,7 @@
1094
1209
  ]
1095
1210
  },
1096
1211
  {
1097
- "name": "updateCurveUpdateIntensity",
1212
+ "name": "updatePerpLiquidationFee",
1098
1213
  "accounts": [
1099
1214
  {
1100
1215
  "name": "admin",
@@ -1114,13 +1229,13 @@
1114
1229
  ],
1115
1230
  "args": [
1116
1231
  {
1117
- "name": "curveUpdateIntensity",
1118
- "type": "u8"
1232
+ "name": "liquidationFee",
1233
+ "type": "u128"
1119
1234
  }
1120
1235
  ]
1121
1236
  },
1122
1237
  {
1123
- "name": "updatePartialLiquidationClosePercentage",
1238
+ "name": "updateBankLiquidationFee",
1124
1239
  "accounts": [
1125
1240
  {
1126
1241
  "name": "admin",
@@ -1129,23 +1244,24 @@
1129
1244
  },
1130
1245
  {
1131
1246
  "name": "state",
1247
+ "isMut": false,
1248
+ "isSigner": false
1249
+ },
1250
+ {
1251
+ "name": "bank",
1132
1252
  "isMut": true,
1133
1253
  "isSigner": false
1134
1254
  }
1135
1255
  ],
1136
1256
  "args": [
1137
1257
  {
1138
- "name": "numerator",
1139
- "type": "u128"
1140
- },
1141
- {
1142
- "name": "denominator",
1258
+ "name": "liquidationFee",
1143
1259
  "type": "u128"
1144
1260
  }
1145
1261
  ]
1146
1262
  },
1147
1263
  {
1148
- "name": "updatePartialLiquidationPenaltyPercentage",
1264
+ "name": "updateMarketImfFactor",
1149
1265
  "accounts": [
1150
1266
  {
1151
1267
  "name": "admin",
@@ -1154,23 +1270,24 @@
1154
1270
  },
1155
1271
  {
1156
1272
  "name": "state",
1273
+ "isMut": false,
1274
+ "isSigner": false
1275
+ },
1276
+ {
1277
+ "name": "market",
1157
1278
  "isMut": true,
1158
1279
  "isSigner": false
1159
1280
  }
1160
1281
  ],
1161
1282
  "args": [
1162
1283
  {
1163
- "name": "numerator",
1164
- "type": "u128"
1165
- },
1166
- {
1167
- "name": "denominator",
1284
+ "name": "imfFactor",
1168
1285
  "type": "u128"
1169
1286
  }
1170
1287
  ]
1171
1288
  },
1172
1289
  {
1173
- "name": "updateFullLiquidationPenaltyPercentage",
1290
+ "name": "updateMarketUnsettledAssetWeight",
1174
1291
  "accounts": [
1175
1292
  {
1176
1293
  "name": "admin",
@@ -1179,23 +1296,28 @@
1179
1296
  },
1180
1297
  {
1181
1298
  "name": "state",
1299
+ "isMut": false,
1300
+ "isSigner": false
1301
+ },
1302
+ {
1303
+ "name": "market",
1182
1304
  "isMut": true,
1183
1305
  "isSigner": false
1184
1306
  }
1185
1307
  ],
1186
1308
  "args": [
1187
1309
  {
1188
- "name": "numerator",
1189
- "type": "u128"
1310
+ "name": "unsettledInitialAssetWeight",
1311
+ "type": "u8"
1190
1312
  },
1191
1313
  {
1192
- "name": "denominator",
1193
- "type": "u128"
1314
+ "name": "unsettledMaintenanceAssetWeight",
1315
+ "type": "u8"
1194
1316
  }
1195
1317
  ]
1196
1318
  },
1197
1319
  {
1198
- "name": "updatePartialLiquidationLiquidatorShareDenominator",
1320
+ "name": "updateCurveUpdateIntensity",
1199
1321
  "accounts": [
1200
1322
  {
1201
1323
  "name": "admin",
@@ -1204,19 +1326,24 @@
1204
1326
  },
1205
1327
  {
1206
1328
  "name": "state",
1329
+ "isMut": false,
1330
+ "isSigner": false
1331
+ },
1332
+ {
1333
+ "name": "market",
1207
1334
  "isMut": true,
1208
1335
  "isSigner": false
1209
1336
  }
1210
1337
  ],
1211
1338
  "args": [
1212
1339
  {
1213
- "name": "denominator",
1214
- "type": "u64"
1340
+ "name": "curveUpdateIntensity",
1341
+ "type": "u8"
1215
1342
  }
1216
1343
  ]
1217
1344
  },
1218
1345
  {
1219
- "name": "updateFullLiquidationLiquidatorShareDenominator",
1346
+ "name": "updatePartialLiquidationClosePercentage",
1220
1347
  "accounts": [
1221
1348
  {
1222
1349
  "name": "admin",
@@ -1231,9 +1358,105 @@
1231
1358
  ],
1232
1359
  "args": [
1233
1360
  {
1234
- "name": "denominator",
1235
- "type": "u64"
1236
- }
1361
+ "name": "numerator",
1362
+ "type": "u128"
1363
+ },
1364
+ {
1365
+ "name": "denominator",
1366
+ "type": "u128"
1367
+ }
1368
+ ]
1369
+ },
1370
+ {
1371
+ "name": "updatePartialLiquidationPenaltyPercentage",
1372
+ "accounts": [
1373
+ {
1374
+ "name": "admin",
1375
+ "isMut": false,
1376
+ "isSigner": true
1377
+ },
1378
+ {
1379
+ "name": "state",
1380
+ "isMut": true,
1381
+ "isSigner": false
1382
+ }
1383
+ ],
1384
+ "args": [
1385
+ {
1386
+ "name": "numerator",
1387
+ "type": "u128"
1388
+ },
1389
+ {
1390
+ "name": "denominator",
1391
+ "type": "u128"
1392
+ }
1393
+ ]
1394
+ },
1395
+ {
1396
+ "name": "updateFullLiquidationPenaltyPercentage",
1397
+ "accounts": [
1398
+ {
1399
+ "name": "admin",
1400
+ "isMut": false,
1401
+ "isSigner": true
1402
+ },
1403
+ {
1404
+ "name": "state",
1405
+ "isMut": true,
1406
+ "isSigner": false
1407
+ }
1408
+ ],
1409
+ "args": [
1410
+ {
1411
+ "name": "numerator",
1412
+ "type": "u128"
1413
+ },
1414
+ {
1415
+ "name": "denominator",
1416
+ "type": "u128"
1417
+ }
1418
+ ]
1419
+ },
1420
+ {
1421
+ "name": "updatePartialLiquidationLiquidatorShareDenominator",
1422
+ "accounts": [
1423
+ {
1424
+ "name": "admin",
1425
+ "isMut": false,
1426
+ "isSigner": true
1427
+ },
1428
+ {
1429
+ "name": "state",
1430
+ "isMut": true,
1431
+ "isSigner": false
1432
+ }
1433
+ ],
1434
+ "args": [
1435
+ {
1436
+ "name": "denominator",
1437
+ "type": "u64"
1438
+ }
1439
+ ]
1440
+ },
1441
+ {
1442
+ "name": "updateFullLiquidationLiquidatorShareDenominator",
1443
+ "accounts": [
1444
+ {
1445
+ "name": "admin",
1446
+ "isMut": false,
1447
+ "isSigner": true
1448
+ },
1449
+ {
1450
+ "name": "state",
1451
+ "isMut": true,
1452
+ "isSigner": false
1453
+ }
1454
+ ],
1455
+ "args": [
1456
+ {
1457
+ "name": "denominator",
1458
+ "type": "u64"
1459
+ }
1237
1460
  ]
1238
1461
  },
1239
1462
  {
@@ -1389,6 +1612,32 @@
1389
1612
  }
1390
1613
  ]
1391
1614
  },
1615
+ {
1616
+ "name": "updateMarketMaxSpread",
1617
+ "accounts": [
1618
+ {
1619
+ "name": "admin",
1620
+ "isMut": false,
1621
+ "isSigner": true
1622
+ },
1623
+ {
1624
+ "name": "state",
1625
+ "isMut": false,
1626
+ "isSigner": false
1627
+ },
1628
+ {
1629
+ "name": "market",
1630
+ "isMut": true,
1631
+ "isSigner": false
1632
+ }
1633
+ ],
1634
+ "args": [
1635
+ {
1636
+ "name": "maxSpread",
1637
+ "type": "u32"
1638
+ }
1639
+ ]
1640
+ },
1392
1641
  {
1393
1642
  "name": "updateMarketBaseAssetAmountStepSize",
1394
1643
  "accounts": [
@@ -1415,6 +1664,58 @@
1415
1664
  }
1416
1665
  ]
1417
1666
  },
1667
+ {
1668
+ "name": "updateMarketMaxSlippageRatio",
1669
+ "accounts": [
1670
+ {
1671
+ "name": "admin",
1672
+ "isMut": false,
1673
+ "isSigner": true
1674
+ },
1675
+ {
1676
+ "name": "state",
1677
+ "isMut": false,
1678
+ "isSigner": false
1679
+ },
1680
+ {
1681
+ "name": "market",
1682
+ "isMut": true,
1683
+ "isSigner": false
1684
+ }
1685
+ ],
1686
+ "args": [
1687
+ {
1688
+ "name": "maxSlippageRatio",
1689
+ "type": "u16"
1690
+ }
1691
+ ]
1692
+ },
1693
+ {
1694
+ "name": "updateMaxBaseAssetAmountRatio",
1695
+ "accounts": [
1696
+ {
1697
+ "name": "admin",
1698
+ "isMut": false,
1699
+ "isSigner": true
1700
+ },
1701
+ {
1702
+ "name": "state",
1703
+ "isMut": false,
1704
+ "isSigner": false
1705
+ },
1706
+ {
1707
+ "name": "market",
1708
+ "isMut": true,
1709
+ "isSigner": false
1710
+ }
1711
+ ],
1712
+ "args": [
1713
+ {
1714
+ "name": "maxBaseAssetAmountRatio",
1715
+ "type": "u16"
1716
+ }
1717
+ ]
1718
+ },
1418
1719
  {
1419
1720
  "name": "updateAdmin",
1420
1721
  "accounts": [
@@ -1537,7 +1838,7 @@
1537
1838
  ]
1538
1839
  },
1539
1840
  {
1540
- "name": "updateOrderAuctionTime",
1841
+ "name": "updateAuctionDuration",
1541
1842
  "accounts": [
1542
1843
  {
1543
1844
  "name": "admin",
@@ -1552,7 +1853,11 @@
1552
1853
  ],
1553
1854
  "args": [
1554
1855
  {
1555
- "name": "orderAuctionTime",
1856
+ "name": "minAuctionDuration",
1857
+ "type": "u8"
1858
+ },
1859
+ {
1860
+ "name": "maxAuctionDuration",
1556
1861
  "type": "u8"
1557
1862
  }
1558
1863
  ]
@@ -1649,6 +1954,14 @@
1649
1954
  {
1650
1955
  "name": "maintenanceLiabilityWeight",
1651
1956
  "type": "u128"
1957
+ },
1958
+ {
1959
+ "name": "imfFactor",
1960
+ "type": "u128"
1961
+ },
1962
+ {
1963
+ "name": "liquidationFee",
1964
+ "type": "u128"
1652
1965
  }
1653
1966
  ]
1654
1967
  }
@@ -1692,10 +2005,6 @@
1692
2005
  "name": "marginRatioInitial",
1693
2006
  "type": "u32"
1694
2007
  },
1695
- {
1696
- "name": "marginRatioPartial",
1697
- "type": "u32"
1698
- },
1699
2008
  {
1700
2009
  "name": "marginRatioMaintenance",
1701
2010
  "type": "u32"
@@ -1719,11 +2028,23 @@
1719
2028
  }
1720
2029
  },
1721
2030
  {
1722
- "name": "unsettledProfit",
2031
+ "name": "imfFactor",
2032
+ "type": "u128"
2033
+ },
2034
+ {
2035
+ "name": "unsettledInitialAssetWeight",
2036
+ "type": "u8"
2037
+ },
2038
+ {
2039
+ "name": "unsettledMaintenanceAssetWeight",
2040
+ "type": "u8"
2041
+ },
2042
+ {
2043
+ "name": "unsettledImfFactor",
1723
2044
  "type": "u128"
1724
2045
  },
1725
2046
  {
1726
- "name": "unsettledLoss",
2047
+ "name": "liquidationFee",
1727
2048
  "type": "u128"
1728
2049
  },
1729
2050
  {
@@ -1859,7 +2180,15 @@
1859
2180
  "type": "u128"
1860
2181
  },
1861
2182
  {
1862
- "name": "orderAuctionDuration",
2183
+ "name": "minAuctionDuration",
2184
+ "type": "u8"
2185
+ },
2186
+ {
2187
+ "name": "maxAuctionDuration",
2188
+ "type": "u8"
2189
+ },
2190
+ {
2191
+ "name": "liquidationMarginBufferRatio",
1863
2192
  "type": "u8"
1864
2193
  },
1865
2194
  {
@@ -1937,6 +2266,14 @@
1937
2266
  32
1938
2267
  ]
1939
2268
  }
2269
+ },
2270
+ {
2271
+ "name": "nextLiquidationId",
2272
+ "type": "u16"
2273
+ },
2274
+ {
2275
+ "name": "beingLiquidated",
2276
+ "type": "bool"
1940
2277
  }
1941
2278
  ]
1942
2279
  }
@@ -1964,10 +2301,6 @@
1964
2301
  "name": "userOrderId",
1965
2302
  "type": "u8"
1966
2303
  },
1967
- {
1968
- "name": "quoteAssetAmount",
1969
- "type": "u128"
1970
- },
1971
2304
  {
1972
2305
  "name": "baseAssetAmount",
1973
2306
  "type": "u128"
@@ -2016,6 +2349,10 @@
2016
2349
  "name": "oraclePriceOffset",
2017
2350
  "type": "i128"
2018
2351
  },
2352
+ {
2353
+ "name": "auctionDuration",
2354
+ "type": "u8"
2355
+ },
2019
2356
  {
2020
2357
  "name": "padding0",
2021
2358
  "type": "bool"
@@ -2037,8 +2374,158 @@
2037
2374
  "type": "bool"
2038
2375
  },
2039
2376
  {
2040
- "name": "referrer",
2041
- "type": "bool"
2377
+ "name": "referrer",
2378
+ "type": "bool"
2379
+ }
2380
+ ]
2381
+ }
2382
+ },
2383
+ {
2384
+ "name": "LiquidatePerpRecord",
2385
+ "type": {
2386
+ "kind": "struct",
2387
+ "fields": [
2388
+ {
2389
+ "name": "marketIndex",
2390
+ "type": "u64"
2391
+ },
2392
+ {
2393
+ "name": "orderIds",
2394
+ "type": {
2395
+ "vec": "u64"
2396
+ }
2397
+ },
2398
+ {
2399
+ "name": "canceledOrdersFee",
2400
+ "type": "u128"
2401
+ },
2402
+ {
2403
+ "name": "oraclePrice",
2404
+ "type": "i128"
2405
+ },
2406
+ {
2407
+ "name": "baseAssetAmount",
2408
+ "type": "i128"
2409
+ },
2410
+ {
2411
+ "name": "quoteAssetAmount",
2412
+ "type": "i128"
2413
+ },
2414
+ {
2415
+ "name": "userPnl",
2416
+ "type": "i128"
2417
+ },
2418
+ {
2419
+ "name": "liquidatorPnl",
2420
+ "type": "i128"
2421
+ },
2422
+ {
2423
+ "name": "fillRecordId",
2424
+ "type": "u64"
2425
+ },
2426
+ {
2427
+ "name": "userOrderId",
2428
+ "type": "u64"
2429
+ },
2430
+ {
2431
+ "name": "liquidatorOrderId",
2432
+ "type": "u64"
2433
+ }
2434
+ ]
2435
+ }
2436
+ },
2437
+ {
2438
+ "name": "LiquidateBorrowRecord",
2439
+ "type": {
2440
+ "kind": "struct",
2441
+ "fields": [
2442
+ {
2443
+ "name": "assetBankIndex",
2444
+ "type": "u64"
2445
+ },
2446
+ {
2447
+ "name": "assetPrice",
2448
+ "type": "i128"
2449
+ },
2450
+ {
2451
+ "name": "assetTransfer",
2452
+ "type": "u128"
2453
+ },
2454
+ {
2455
+ "name": "liabilityBankIndex",
2456
+ "type": "u64"
2457
+ },
2458
+ {
2459
+ "name": "liabilityPrice",
2460
+ "type": "i128"
2461
+ },
2462
+ {
2463
+ "name": "liabilityTransfer",
2464
+ "type": "u128"
2465
+ }
2466
+ ]
2467
+ }
2468
+ },
2469
+ {
2470
+ "name": "LiquidateBorrowForPerpPnlRecord",
2471
+ "type": {
2472
+ "kind": "struct",
2473
+ "fields": [
2474
+ {
2475
+ "name": "marketIndex",
2476
+ "type": "u64"
2477
+ },
2478
+ {
2479
+ "name": "marketOraclePrice",
2480
+ "type": "i128"
2481
+ },
2482
+ {
2483
+ "name": "pnlTransfer",
2484
+ "type": "u128"
2485
+ },
2486
+ {
2487
+ "name": "liabilityBankIndex",
2488
+ "type": "u64"
2489
+ },
2490
+ {
2491
+ "name": "liabilityPrice",
2492
+ "type": "i128"
2493
+ },
2494
+ {
2495
+ "name": "liabilityTransfer",
2496
+ "type": "u128"
2497
+ }
2498
+ ]
2499
+ }
2500
+ },
2501
+ {
2502
+ "name": "LiquidatePerpPnlForDepositRecord",
2503
+ "type": {
2504
+ "kind": "struct",
2505
+ "fields": [
2506
+ {
2507
+ "name": "marketIndex",
2508
+ "type": "u64"
2509
+ },
2510
+ {
2511
+ "name": "marketOraclePrice",
2512
+ "type": "i128"
2513
+ },
2514
+ {
2515
+ "name": "pnlTransfer",
2516
+ "type": "u128"
2517
+ },
2518
+ {
2519
+ "name": "assetBankIndex",
2520
+ "type": "u64"
2521
+ },
2522
+ {
2523
+ "name": "assetPrice",
2524
+ "type": "i128"
2525
+ },
2526
+ {
2527
+ "name": "assetTransfer",
2528
+ "type": "u128"
2042
2529
  }
2043
2530
  ]
2044
2531
  }
@@ -2124,11 +2611,19 @@
2124
2611
  },
2125
2612
  {
2126
2613
  "name": "quoteAssetAmountLong",
2127
- "type": "u128"
2614
+ "type": "i128"
2128
2615
  },
2129
2616
  {
2130
2617
  "name": "quoteAssetAmountShort",
2131
- "type": "u128"
2618
+ "type": "i128"
2619
+ },
2620
+ {
2621
+ "name": "quoteEntryAmountLong",
2622
+ "type": "i128"
2623
+ },
2624
+ {
2625
+ "name": "quoteEntryAmountShort",
2626
+ "type": "i128"
2132
2627
  },
2133
2628
  {
2134
2629
  "name": "lastFundingRate",
@@ -2178,6 +2673,14 @@
2178
2673
  "name": "minimumQuoteAssetTradeSize",
2179
2674
  "type": "u128"
2180
2675
  },
2676
+ {
2677
+ "name": "maxBaseAssetAmountRatio",
2678
+ "type": "u16"
2679
+ },
2680
+ {
2681
+ "name": "maxSlippageRatio",
2682
+ "type": "u16"
2683
+ },
2181
2684
  {
2182
2685
  "name": "baseAssetAmountStepSize",
2183
2686
  "type": "u128"
@@ -2194,6 +2697,10 @@
2194
2697
  "name": "shortSpread",
2195
2698
  "type": "u128"
2196
2699
  },
2700
+ {
2701
+ "name": "maxSpread",
2702
+ "type": "u32"
2703
+ },
2197
2704
  {
2198
2705
  "name": "askBaseAssetReserve",
2199
2706
  "type": "u128"
@@ -2252,7 +2759,7 @@
2252
2759
  },
2253
2760
  {
2254
2761
  "name": "totalFeeMinusDistributions",
2255
- "type": "u128"
2762
+ "type": "i128"
2256
2763
  },
2257
2764
  {
2258
2765
  "name": "totalFeeWithdrawn",
@@ -2389,6 +2896,10 @@
2389
2896
  "type": {
2390
2897
  "defined": "OrderFillerRewardStructure"
2391
2898
  }
2899
+ },
2900
+ {
2901
+ "name": "cancelOrderFee",
2902
+ "type": "u128"
2392
2903
  }
2393
2904
  ]
2394
2905
  }
@@ -2554,11 +3065,11 @@
2554
3065
  },
2555
3066
  {
2556
3067
  "name": "quoteAssetAmount",
2557
- "type": "u128"
3068
+ "type": "i128"
2558
3069
  },
2559
3070
  {
2560
3071
  "name": "quoteEntryAmount",
2561
- "type": "u128"
3072
+ "type": "i128"
2562
3073
  },
2563
3074
  {
2564
3075
  "name": "lastCumulativeFundingRate",
@@ -2576,10 +3087,6 @@
2576
3087
  "name": "openOrders",
2577
3088
  "type": "u128"
2578
3089
  },
2579
- {
2580
- "name": "unsettledPnl",
2581
- "type": "i128"
2582
- },
2583
3090
  {
2584
3091
  "name": "openBids",
2585
3092
  "type": "i128"
@@ -2658,10 +3165,6 @@
2658
3165
  "defined": "PositionDirection"
2659
3166
  }
2660
3167
  },
2661
- {
2662
- "name": "quoteAssetAmount",
2663
- "type": "u128"
2664
- },
2665
3168
  {
2666
3169
  "name": "baseAssetAmount",
2667
3170
  "type": "u128"
@@ -2712,6 +3215,10 @@
2712
3215
  "defined": "OrderTriggerCondition"
2713
3216
  }
2714
3217
  },
3218
+ {
3219
+ "name": "triggered",
3220
+ "type": "bool"
3221
+ },
2715
3222
  {
2716
3223
  "name": "referrer",
2717
3224
  "type": "publicKey"
@@ -2773,35 +3280,52 @@
2773
3280
  }
2774
3281
  },
2775
3282
  {
2776
- "name": "MarginRequirementType",
3283
+ "name": "PositionUpdateType",
2777
3284
  "type": {
2778
3285
  "kind": "enum",
2779
3286
  "variants": [
2780
3287
  {
2781
- "name": "Initial"
3288
+ "name": "Open"
2782
3289
  },
2783
3290
  {
2784
- "name": "Partial"
3291
+ "name": "Increase"
2785
3292
  },
2786
3293
  {
2787
- "name": "Maintenance"
3294
+ "name": "Reduce"
3295
+ },
3296
+ {
3297
+ "name": "Close"
3298
+ },
3299
+ {
3300
+ "name": "Flip"
2788
3301
  }
2789
3302
  ]
2790
3303
  }
2791
3304
  },
2792
3305
  {
2793
- "name": "LiquidationType",
3306
+ "name": "LiquidationMultiplierType",
2794
3307
  "type": {
2795
3308
  "kind": "enum",
2796
3309
  "variants": [
2797
3310
  {
2798
- "name": "NONE"
3311
+ "name": "Discount"
2799
3312
  },
2800
3313
  {
2801
- "name": "PARTIAL"
3314
+ "name": "Premium"
3315
+ }
3316
+ ]
3317
+ }
3318
+ },
3319
+ {
3320
+ "name": "MarginRequirementType",
3321
+ "type": {
3322
+ "kind": "enum",
3323
+ "variants": [
3324
+ {
3325
+ "name": "Initial"
2802
3326
  },
2803
3327
  {
2804
- "name": "FULL"
3328
+ "name": "Maintenance"
2805
3329
  }
2806
3330
  ]
2807
3331
  }
@@ -2848,6 +3372,9 @@
2848
3372
  {
2849
3373
  "name": "Fill"
2850
3374
  },
3375
+ {
3376
+ "name": "Trigger"
3377
+ },
2851
3378
  {
2852
3379
  "name": "Expire"
2853
3380
  }
@@ -2867,6 +3394,35 @@
2867
3394
  },
2868
3395
  {
2869
3396
  "name": "OraclePriceBreachedLimitPrice"
3397
+ },
3398
+ {
3399
+ "name": "MarketOrderFilledToLimitPrice"
3400
+ },
3401
+ {
3402
+ "name": "MarketOrderAuctionExpired"
3403
+ },
3404
+ {
3405
+ "name": "CanceledForLiquidation"
3406
+ }
3407
+ ]
3408
+ }
3409
+ },
3410
+ {
3411
+ "name": "LiquidationType",
3412
+ "type": {
3413
+ "kind": "enum",
3414
+ "variants": [
3415
+ {
3416
+ "name": "LiquidatePerp"
3417
+ },
3418
+ {
3419
+ "name": "LiquidateBorrow"
3420
+ },
3421
+ {
3422
+ "name": "LiquidateBorrowForPerpPnl"
3423
+ },
3424
+ {
3425
+ "name": "LiquidatePerpPnlForDeposit"
2870
3426
  }
2871
3427
  ]
2872
3428
  }
@@ -3016,6 +3572,11 @@
3016
3572
  "type": "u64",
3017
3573
  "index": false
3018
3574
  },
3575
+ {
3576
+ "name": "oraclePrice",
3577
+ "type": "i128",
3578
+ "index": false
3579
+ },
3019
3580
  {
3020
3581
  "name": "from",
3021
3582
  "type": {
@@ -3217,7 +3778,7 @@
3217
3778
  },
3218
3779
  {
3219
3780
  "name": "totalFeeMinusDistributions",
3220
- "type": "u128",
3781
+ "type": "i128",
3221
3782
  "index": false
3222
3783
  },
3223
3784
  {
@@ -3238,7 +3799,7 @@
3238
3799
  ]
3239
3800
  },
3240
3801
  {
3241
- "name": "LiquidationRecord",
3802
+ "name": "OrderRecord",
3242
3803
  "fields": [
3243
3804
  {
3244
3805
  "name": "ts",
@@ -3246,74 +3807,112 @@
3246
3807
  "index": false
3247
3808
  },
3248
3809
  {
3249
- "name": "userAuthority",
3810
+ "name": "slot",
3811
+ "type": "u64",
3812
+ "index": false
3813
+ },
3814
+ {
3815
+ "name": "taker",
3250
3816
  "type": "publicKey",
3251
3817
  "index": false
3252
3818
  },
3253
3819
  {
3254
- "name": "user",
3820
+ "name": "maker",
3255
3821
  "type": "publicKey",
3256
3822
  "index": false
3257
3823
  },
3258
3824
  {
3259
- "name": "partial",
3260
- "type": "bool",
3825
+ "name": "takerOrder",
3826
+ "type": {
3827
+ "defined": "Order"
3828
+ },
3261
3829
  "index": false
3262
3830
  },
3263
3831
  {
3264
- "name": "baseAssetValue",
3265
- "type": "u128",
3832
+ "name": "makerOrder",
3833
+ "type": {
3834
+ "defined": "Order"
3835
+ },
3266
3836
  "index": false
3267
3837
  },
3268
3838
  {
3269
- "name": "baseAssetValueClosed",
3270
- "type": "u128",
3839
+ "name": "makerPnl",
3840
+ "type": "i128",
3271
3841
  "index": false
3272
3842
  },
3273
3843
  {
3274
- "name": "liquidationFee",
3275
- "type": "u128",
3844
+ "name": "takerPnl",
3845
+ "type": "i128",
3846
+ "index": false
3847
+ },
3848
+ {
3849
+ "name": "action",
3850
+ "type": {
3851
+ "defined": "OrderAction"
3852
+ },
3853
+ "index": false
3854
+ },
3855
+ {
3856
+ "name": "actionExplanation",
3857
+ "type": {
3858
+ "defined": "OrderActionExplanation"
3859
+ },
3860
+ "index": false
3861
+ },
3862
+ {
3863
+ "name": "filler",
3864
+ "type": "publicKey",
3276
3865
  "index": false
3277
3866
  },
3278
3867
  {
3279
- "name": "feeToLiquidator",
3868
+ "name": "fillRecordId",
3280
3869
  "type": "u64",
3281
3870
  "index": false
3282
3871
  },
3283
3872
  {
3284
- "name": "feeToInsuranceFund",
3873
+ "name": "marketIndex",
3285
3874
  "type": "u64",
3286
3875
  "index": false
3287
3876
  },
3288
3877
  {
3289
- "name": "liquidator",
3290
- "type": "publicKey",
3878
+ "name": "baseAssetAmountFilled",
3879
+ "type": "u128",
3291
3880
  "index": false
3292
3881
  },
3293
3882
  {
3294
- "name": "totalCollateral",
3883
+ "name": "quoteAssetAmountFilled",
3295
3884
  "type": "u128",
3296
3885
  "index": false
3297
3886
  },
3298
3887
  {
3299
- "name": "collateral",
3888
+ "name": "makerRebate",
3300
3889
  "type": "u128",
3301
3890
  "index": false
3302
3891
  },
3303
3892
  {
3304
- "name": "unrealizedPnl",
3305
- "type": "i128",
3893
+ "name": "takerFee",
3894
+ "type": "u128",
3895
+ "index": false
3896
+ },
3897
+ {
3898
+ "name": "fillerReward",
3899
+ "type": "u128",
3306
3900
  "index": false
3307
3901
  },
3308
3902
  {
3309
- "name": "marginRatio",
3903
+ "name": "quoteAssetAmountSurplus",
3310
3904
  "type": "u128",
3311
3905
  "index": false
3906
+ },
3907
+ {
3908
+ "name": "oraclePrice",
3909
+ "type": "i128",
3910
+ "index": false
3312
3911
  }
3313
3912
  ]
3314
3913
  },
3315
3914
  {
3316
- "name": "OrderRecord",
3915
+ "name": "LiquidationRecord",
3317
3916
  "fields": [
3318
3917
  {
3319
3918
  "name": "ts",
@@ -3321,91 +3920,98 @@
3321
3920
  "index": false
3322
3921
  },
3323
3922
  {
3324
- "name": "slot",
3325
- "type": "u64",
3923
+ "name": "liquidationType",
3924
+ "type": {
3925
+ "defined": "LiquidationType"
3926
+ },
3326
3927
  "index": false
3327
3928
  },
3328
3929
  {
3329
- "name": "taker",
3930
+ "name": "user",
3330
3931
  "type": "publicKey",
3331
3932
  "index": false
3332
3933
  },
3333
3934
  {
3334
- "name": "maker",
3935
+ "name": "liquidator",
3335
3936
  "type": "publicKey",
3336
3937
  "index": false
3337
3938
  },
3338
3939
  {
3339
- "name": "takerOrder",
3340
- "type": {
3341
- "defined": "Order"
3342
- },
3940
+ "name": "marginRequirement",
3941
+ "type": "u128",
3343
3942
  "index": false
3344
3943
  },
3345
3944
  {
3346
- "name": "makerOrder",
3347
- "type": {
3348
- "defined": "Order"
3349
- },
3945
+ "name": "totalCollateral",
3946
+ "type": "i128",
3350
3947
  "index": false
3351
3948
  },
3352
3949
  {
3353
- "name": "action",
3354
- "type": {
3355
- "defined": "OrderAction"
3356
- },
3950
+ "name": "liquidationId",
3951
+ "type": "u16",
3357
3952
  "index": false
3358
3953
  },
3359
3954
  {
3360
- "name": "actionExplanation",
3955
+ "name": "liquidatePerp",
3361
3956
  "type": {
3362
- "defined": "OrderActionExplanation"
3957
+ "defined": "LiquidatePerpRecord"
3363
3958
  },
3364
3959
  "index": false
3365
3960
  },
3366
3961
  {
3367
- "name": "filler",
3368
- "type": "publicKey",
3962
+ "name": "liquidateBorrow",
3963
+ "type": {
3964
+ "defined": "LiquidateBorrowRecord"
3965
+ },
3369
3966
  "index": false
3370
3967
  },
3371
3968
  {
3372
- "name": "fillRecordId",
3373
- "type": "u64",
3969
+ "name": "liquidateBorrowForPerpPnl",
3970
+ "type": {
3971
+ "defined": "LiquidateBorrowForPerpPnlRecord"
3972
+ },
3374
3973
  "index": false
3375
3974
  },
3376
3975
  {
3377
- "name": "marketIndex",
3378
- "type": "u64",
3976
+ "name": "liquidatePerpPnlForDeposit",
3977
+ "type": {
3978
+ "defined": "LiquidatePerpPnlForDepositRecord"
3979
+ },
3379
3980
  "index": false
3380
- },
3981
+ }
3982
+ ]
3983
+ },
3984
+ {
3985
+ "name": "SettlePnlRecord",
3986
+ "fields": [
3381
3987
  {
3382
- "name": "baseAssetAmountFilled",
3383
- "type": "u128",
3988
+ "name": "ts",
3989
+ "type": "i64",
3384
3990
  "index": false
3385
3991
  },
3386
3992
  {
3387
- "name": "quoteAssetAmountFilled",
3388
- "type": "u128",
3993
+ "name": "marketIndex",
3994
+ "type": "u64",
3389
3995
  "index": false
3390
3996
  },
3391
3997
  {
3392
- "name": "makerRebate",
3393
- "type": "u128",
3998
+ "name": "pnl",
3999
+ "type": "i128",
3394
4000
  "index": false
3395
4001
  },
3396
4002
  {
3397
- "name": "takerFee",
3398
- "type": "u128",
4003
+ "name": "baseAssetAmount",
4004
+ "type": "i128",
3399
4005
  "index": false
3400
4006
  },
3401
4007
  {
3402
- "name": "fillerReward",
3403
- "type": "u128",
4008
+ "name": "quoteAssetAmountAfter",
4009
+ "type": "i128",
3404
4010
  "index": false
3405
4011
  },
3406
4012
  {
3407
- "name": "quoteAssetAmountSurplus",
3408
- "type": "u128",
4013
+ "name": "quoteEntryAmount",
4014
+ "type": "i128",
3409
4015
  "index": false
3410
4016
  },
3411
4017
  {
@@ -3639,8 +4245,8 @@
3639
4245
  },
3640
4246
  {
3641
4247
  "code": 6044,
3642
- "name": "CouldNotFillOrder",
3643
- "msg": "CouldNotFillOrder"
4248
+ "name": "FillOrderDidNotUpdateState",
4249
+ "msg": "FillOrderDidNotUpdateState"
3644
4250
  },
3645
4251
  {
3646
4252
  "code": 6045,
@@ -3854,6 +4460,81 @@
3854
4460
  },
3855
4461
  {
3856
4462
  "code": 6087,
4463
+ "name": "OrderMustBeTriggeredFirst",
4464
+ "msg": "OrderMustBeTriggeredFirst"
4465
+ },
4466
+ {
4467
+ "code": 6088,
4468
+ "name": "OrderNotTriggerable",
4469
+ "msg": "OrderNotTriggerable"
4470
+ },
4471
+ {
4472
+ "code": 6089,
4473
+ "name": "OrderDidNotSatisfyTriggerCondition",
4474
+ "msg": "OrderDidNotSatisfyTriggerCondition"
4475
+ },
4476
+ {
4477
+ "code": 6090,
4478
+ "name": "PositionAlreadyBeingLiquidated",
4479
+ "msg": "PositionAlreadyBeingLiquidated"
4480
+ },
4481
+ {
4482
+ "code": 6091,
4483
+ "name": "PositionDoesntHaveOpenPositionOrOrders",
4484
+ "msg": "PositionDoesntHaveOpenPositionOrOrders"
4485
+ },
4486
+ {
4487
+ "code": 6092,
4488
+ "name": "AllOrdersAreAlreadyLiquidations",
4489
+ "msg": "AllOrdersAreAlreadyLiquidations"
4490
+ },
4491
+ {
4492
+ "code": 6093,
4493
+ "name": "CantCancelLiquidationOrder",
4494
+ "msg": "CantCancelLiquidationOrder"
4495
+ },
4496
+ {
4497
+ "code": 6094,
4498
+ "name": "UserIsBeingLiquidated",
4499
+ "msg": "UserIsBeingLiquidated"
4500
+ },
4501
+ {
4502
+ "code": 6095,
4503
+ "name": "LiquidationsOngoing",
4504
+ "msg": "LiquidationsOngoing"
4505
+ },
4506
+ {
4507
+ "code": 6096,
4508
+ "name": "WrongBankBalanceType",
4509
+ "msg": "WrongBankBalanceType"
4510
+ },
4511
+ {
4512
+ "code": 6097,
4513
+ "name": "UserCantLiquidateThemself",
4514
+ "msg": "UserCantLiquidateThemself"
4515
+ },
4516
+ {
4517
+ "code": 6098,
4518
+ "name": "InvalidPerpPositionToLiquidate",
4519
+ "msg": "InvalidPerpPositionToLiquidate"
4520
+ },
4521
+ {
4522
+ "code": 6099,
4523
+ "name": "InvalidBaseAssetAmountForLiquidatePerp",
4524
+ "msg": "InvalidBaseAssetAmountForLiquidatePerp"
4525
+ },
4526
+ {
4527
+ "code": 6100,
4528
+ "name": "InvalidPositionLastFundingRate",
4529
+ "msg": "InvalidPositionLastFundingRate"
4530
+ },
4531
+ {
4532
+ "code": 6101,
4533
+ "name": "InvalidPositionDelta",
4534
+ "msg": "InvalidPositionDelta"
4535
+ },
4536
+ {
4537
+ "code": 6102,
3857
4538
  "name": "DefaultError",
3858
4539
  "msg": "DefaultError"
3859
4540
  }