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

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 (58) hide show
  1. package/lib/addresses/pda.d.ts +4 -0
  2. package/lib/addresses/pda.js +27 -1
  3. package/lib/admin.d.ts +3 -0
  4. package/lib/admin.js +36 -10
  5. package/lib/clearingHouse.d.ts +11 -2
  6. package/lib/clearingHouse.js +140 -5
  7. package/lib/clearingHouseUser.d.ts +3 -1
  8. package/lib/clearingHouseUser.js +11 -9
  9. package/lib/config.js +1 -1
  10. package/lib/constants/banks.d.ts +2 -0
  11. package/lib/constants/banks.js +9 -0
  12. package/lib/constants/numericConstants.d.ts +2 -0
  13. package/lib/constants/numericConstants.js +4 -1
  14. package/lib/events/eventSubscriber.d.ts +4 -2
  15. package/lib/events/eventSubscriber.js +16 -9
  16. package/lib/events/fetchLogs.d.ts +10 -1
  17. package/lib/events/fetchLogs.js +27 -7
  18. package/lib/events/pollingLogProvider.d.ts +2 -1
  19. package/lib/events/pollingLogProvider.js +6 -2
  20. package/lib/events/sort.js +7 -10
  21. package/lib/events/types.d.ts +4 -2
  22. package/lib/events/types.js +2 -0
  23. package/lib/examples/makeTradeExample.js +13 -1
  24. package/lib/idl/clearing_house.json +1081 -173
  25. package/lib/index.d.ts +2 -0
  26. package/lib/index.js +2 -0
  27. package/lib/math/amm.d.ts +3 -1
  28. package/lib/math/amm.js +41 -3
  29. package/lib/math/insurance.d.ts +4 -0
  30. package/lib/math/insurance.js +27 -0
  31. package/lib/math/margin.d.ts +1 -1
  32. package/lib/math/margin.js +5 -7
  33. package/lib/math/position.js +1 -1
  34. package/lib/types.d.ts +79 -24
  35. package/lib/types.js +7 -4
  36. package/package.json +1 -1
  37. package/src/addresses/pda.ts +56 -0
  38. package/src/admin.ts +64 -18
  39. package/src/clearingHouse.ts +230 -10
  40. package/src/clearingHouseUser.ts +16 -11
  41. package/src/config.ts +1 -1
  42. package/src/constants/banks.ts +16 -0
  43. package/src/constants/numericConstants.ts +4 -0
  44. package/src/events/eventSubscriber.ts +20 -12
  45. package/src/events/fetchLogs.ts +35 -8
  46. package/src/events/pollingLogProvider.ts +10 -2
  47. package/src/events/sort.ts +10 -14
  48. package/src/events/types.ts +7 -1
  49. package/src/examples/makeTradeExample.ts +20 -1
  50. package/src/idl/clearing_house.json +1081 -173
  51. package/src/index.ts +2 -0
  52. package/src/math/amm.ts +67 -2
  53. package/src/math/insurance.ts +35 -0
  54. package/src/math/margin.ts +3 -10
  55. package/src/math/position.ts +2 -2
  56. package/src/types.ts +83 -24
  57. package/src/events/eventSubscriber.js +0 -139
  58. package/src/events/sort.js +0 -44
@@ -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
  },
@@ -72,7 +72,12 @@
72
72
  "isSigner": false
73
73
  },
74
74
  {
75
- "name": "bankVaultAuthority",
75
+ "name": "insuranceFundVault",
76
+ "isMut": true,
77
+ "isSigner": false
78
+ },
79
+ {
80
+ "name": "clearingHouseSigner",
76
81
  "isMut": false,
77
82
  "isSigner": false
78
83
  },
@@ -306,8 +311,8 @@
306
311
  "isSigner": false
307
312
  },
308
313
  {
309
- "name": "bankVaultAuthority",
310
- "isMut": true,
314
+ "name": "clearingHouseSigner",
315
+ "isMut": false,
311
316
  "isSigner": false
312
317
  },
313
318
  {
@@ -952,9 +957,33 @@
952
957
  "name": "user",
953
958
  "isMut": true,
954
959
  "isSigner": false
960
+ },
961
+ {
962
+ "name": "bankVault",
963
+ "isMut": true,
964
+ "isSigner": false
965
+ },
966
+ {
967
+ "name": "insuranceFundVault",
968
+ "isMut": true,
969
+ "isSigner": false
970
+ },
971
+ {
972
+ "name": "clearingHouseSigner",
973
+ "isMut": false,
974
+ "isSigner": false
975
+ },
976
+ {
977
+ "name": "tokenProgram",
978
+ "isMut": false,
979
+ "isSigner": false
955
980
  }
956
981
  ],
957
982
  "args": [
983
+ {
984
+ "name": "bankIndex",
985
+ "type": "u64"
986
+ },
958
987
  {
959
988
  "name": "marketIndex",
960
989
  "type": "u64"
@@ -983,6 +1012,26 @@
983
1012
  "name": "user",
984
1013
  "isMut": true,
985
1014
  "isSigner": false
1015
+ },
1016
+ {
1017
+ "name": "bankVault",
1018
+ "isMut": true,
1019
+ "isSigner": false
1020
+ },
1021
+ {
1022
+ "name": "insuranceFundVault",
1023
+ "isMut": true,
1024
+ "isSigner": false
1025
+ },
1026
+ {
1027
+ "name": "clearingHouseSigner",
1028
+ "isMut": false,
1029
+ "isSigner": false
1030
+ },
1031
+ {
1032
+ "name": "tokenProgram",
1033
+ "isMut": false,
1034
+ "isSigner": false
986
1035
  }
987
1036
  ],
988
1037
  "args": [
@@ -1046,8 +1095,8 @@
1046
1095
  "isSigner": false
1047
1096
  },
1048
1097
  {
1049
- "name": "bankVaultAuthority",
1050
- "isMut": true,
1098
+ "name": "clearingHouseSigner",
1099
+ "isMut": false,
1051
1100
  "isSigner": false
1052
1101
  },
1053
1102
  {
@@ -1092,7 +1141,7 @@
1092
1141
  "isSigner": false
1093
1142
  },
1094
1143
  {
1095
- "name": "insuranceVaultAuthority",
1144
+ "name": "clearingHouseSigner",
1096
1145
  "isMut": false,
1097
1146
  "isSigner": false
1098
1147
  },
@@ -1138,7 +1187,7 @@
1138
1187
  "isSigner": false
1139
1188
  },
1140
1189
  {
1141
- "name": "insuranceVaultAuthority",
1190
+ "name": "clearingHouseSigner",
1142
1191
  "isMut": false,
1143
1192
  "isSigner": false
1144
1193
  },
@@ -1442,6 +1491,32 @@
1442
1491
  }
1443
1492
  ]
1444
1493
  },
1494
+ {
1495
+ "name": "updateMarketMaxRevenueWithdrawPerPeriod",
1496
+ "accounts": [
1497
+ {
1498
+ "name": "admin",
1499
+ "isMut": false,
1500
+ "isSigner": true
1501
+ },
1502
+ {
1503
+ "name": "state",
1504
+ "isMut": false,
1505
+ "isSigner": false
1506
+ },
1507
+ {
1508
+ "name": "market",
1509
+ "isMut": true,
1510
+ "isSigner": false
1511
+ }
1512
+ ],
1513
+ "args": [
1514
+ {
1515
+ "name": "maxRevenueWithdrawPerPeriod",
1516
+ "type": "u128"
1517
+ }
1518
+ ]
1519
+ },
1445
1520
  {
1446
1521
  "name": "updatePerpLiquidationFee",
1447
1522
  "accounts": [
@@ -1468,6 +1543,32 @@
1468
1543
  }
1469
1544
  ]
1470
1545
  },
1546
+ {
1547
+ "name": "updateBankInsuranceWithdrawEscrowPeriod",
1548
+ "accounts": [
1549
+ {
1550
+ "name": "admin",
1551
+ "isMut": false,
1552
+ "isSigner": true
1553
+ },
1554
+ {
1555
+ "name": "state",
1556
+ "isMut": false,
1557
+ "isSigner": false
1558
+ },
1559
+ {
1560
+ "name": "bank",
1561
+ "isMut": true,
1562
+ "isSigner": false
1563
+ }
1564
+ ],
1565
+ "args": [
1566
+ {
1567
+ "name": "insuranceWithdrawEscrowPeriod",
1568
+ "type": "i64"
1569
+ }
1570
+ ]
1571
+ },
1471
1572
  {
1472
1573
  "name": "updateBankLiquidationFee",
1473
1574
  "accounts": [
@@ -1520,6 +1621,70 @@
1520
1621
  }
1521
1622
  ]
1522
1623
  },
1624
+ {
1625
+ "name": "updateBankIfFactor",
1626
+ "accounts": [
1627
+ {
1628
+ "name": "admin",
1629
+ "isMut": false,
1630
+ "isSigner": true
1631
+ },
1632
+ {
1633
+ "name": "state",
1634
+ "isMut": false,
1635
+ "isSigner": false
1636
+ },
1637
+ {
1638
+ "name": "bank",
1639
+ "isMut": true,
1640
+ "isSigner": false
1641
+ }
1642
+ ],
1643
+ "args": [
1644
+ {
1645
+ "name": "bankIndex",
1646
+ "type": "u64"
1647
+ },
1648
+ {
1649
+ "name": "userIfFactor",
1650
+ "type": "u32"
1651
+ },
1652
+ {
1653
+ "name": "totalIfFactor",
1654
+ "type": "u32"
1655
+ },
1656
+ {
1657
+ "name": "liquidationIfFactor",
1658
+ "type": "u32"
1659
+ }
1660
+ ]
1661
+ },
1662
+ {
1663
+ "name": "updateBankRevenueSettlePeriod",
1664
+ "accounts": [
1665
+ {
1666
+ "name": "admin",
1667
+ "isMut": false,
1668
+ "isSigner": true
1669
+ },
1670
+ {
1671
+ "name": "state",
1672
+ "isMut": false,
1673
+ "isSigner": false
1674
+ },
1675
+ {
1676
+ "name": "bank",
1677
+ "isMut": true,
1678
+ "isSigner": false
1679
+ }
1680
+ ],
1681
+ "args": [
1682
+ {
1683
+ "name": "revenueSettlePeriod",
1684
+ "type": "i64"
1685
+ }
1686
+ ]
1687
+ },
1523
1688
  {
1524
1689
  "name": "updateMarketImfFactor",
1525
1690
  "accounts": [
@@ -1898,6 +2063,32 @@
1898
2063
  }
1899
2064
  ]
1900
2065
  },
2066
+ {
2067
+ "name": "updateAmmJitIntensity",
2068
+ "accounts": [
2069
+ {
2070
+ "name": "admin",
2071
+ "isMut": false,
2072
+ "isSigner": true
2073
+ },
2074
+ {
2075
+ "name": "state",
2076
+ "isMut": false,
2077
+ "isSigner": false
2078
+ },
2079
+ {
2080
+ "name": "market",
2081
+ "isMut": true,
2082
+ "isSigner": false
2083
+ }
2084
+ ],
2085
+ "args": [
2086
+ {
2087
+ "name": "ammJitIntensity",
2088
+ "type": "u8"
2089
+ }
2090
+ ]
2091
+ },
1901
2092
  {
1902
2093
  "name": "updateMarketMaxSpread",
1903
2094
  "accounts": [
@@ -2147,86 +2338,394 @@
2147
2338
  "type": "u8"
2148
2339
  }
2149
2340
  ]
2150
- }
2151
- ],
2152
- "accounts": [
2341
+ },
2153
2342
  {
2154
- "name": "Bank",
2155
- "type": {
2156
- "kind": "struct",
2157
- "fields": [
2158
- {
2159
- "name": "bankIndex",
2160
- "type": "u64"
2161
- },
2162
- {
2163
- "name": "pubkey",
2164
- "type": "publicKey"
2165
- },
2166
- {
2167
- "name": "oracle",
2168
- "type": "publicKey"
2169
- },
2170
- {
2171
- "name": "oracleSource",
2172
- "type": {
2173
- "defined": "OracleSource"
2174
- }
2175
- },
2176
- {
2177
- "name": "mint",
2178
- "type": "publicKey"
2179
- },
2180
- {
2181
- "name": "vault",
2182
- "type": "publicKey"
2183
- },
2184
- {
2185
- "name": "vaultAuthority",
2186
- "type": "publicKey"
2187
- },
2188
- {
2189
- "name": "vaultAuthorityNonce",
2190
- "type": "u8"
2191
- },
2192
- {
2193
- "name": "decimals",
2194
- "type": "u8"
2195
- },
2196
- {
2197
- "name": "optimalUtilization",
2198
- "type": "u128"
2199
- },
2200
- {
2201
- "name": "optimalBorrowRate",
2202
- "type": "u128"
2203
- },
2204
- {
2205
- "name": "maxBorrowRate",
2206
- "type": "u128"
2207
- },
2208
- {
2209
- "name": "depositBalance",
2210
- "type": "u128"
2211
- },
2212
- {
2213
- "name": "borrowBalance",
2214
- "type": "u128"
2215
- },
2216
- {
2217
- "name": "depositTokenTwap",
2218
- "type": "u128"
2219
- },
2220
- {
2221
- "name": "borrowTokenTwap",
2222
- "type": "u128"
2223
- },
2224
- {
2225
- "name": "utilizationTwap",
2226
- "type": "u128"
2227
- },
2228
- {
2229
- "name": "cumulativeDepositInterest",
2343
+ "name": "initializeInsuranceFundStake",
2344
+ "accounts": [
2345
+ {
2346
+ "name": "bank",
2347
+ "isMut": false,
2348
+ "isSigner": false
2349
+ },
2350
+ {
2351
+ "name": "insuranceFundStake",
2352
+ "isMut": true,
2353
+ "isSigner": false
2354
+ },
2355
+ {
2356
+ "name": "userStats",
2357
+ "isMut": true,
2358
+ "isSigner": false
2359
+ },
2360
+ {
2361
+ "name": "state",
2362
+ "isMut": false,
2363
+ "isSigner": false
2364
+ },
2365
+ {
2366
+ "name": "authority",
2367
+ "isMut": false,
2368
+ "isSigner": true
2369
+ },
2370
+ {
2371
+ "name": "payer",
2372
+ "isMut": true,
2373
+ "isSigner": true
2374
+ },
2375
+ {
2376
+ "name": "rent",
2377
+ "isMut": false,
2378
+ "isSigner": false
2379
+ },
2380
+ {
2381
+ "name": "systemProgram",
2382
+ "isMut": false,
2383
+ "isSigner": false
2384
+ }
2385
+ ],
2386
+ "args": [
2387
+ {
2388
+ "name": "bankIndex",
2389
+ "type": "u64"
2390
+ }
2391
+ ]
2392
+ },
2393
+ {
2394
+ "name": "settleRevenueToInsuranceFund",
2395
+ "accounts": [
2396
+ {
2397
+ "name": "state",
2398
+ "isMut": false,
2399
+ "isSigner": false
2400
+ },
2401
+ {
2402
+ "name": "bank",
2403
+ "isMut": false,
2404
+ "isSigner": false
2405
+ },
2406
+ {
2407
+ "name": "bankVault",
2408
+ "isMut": true,
2409
+ "isSigner": false
2410
+ },
2411
+ {
2412
+ "name": "clearingHouseSigner",
2413
+ "isMut": false,
2414
+ "isSigner": false
2415
+ },
2416
+ {
2417
+ "name": "insuranceFundVault",
2418
+ "isMut": true,
2419
+ "isSigner": false
2420
+ },
2421
+ {
2422
+ "name": "tokenProgram",
2423
+ "isMut": false,
2424
+ "isSigner": false
2425
+ }
2426
+ ],
2427
+ "args": [
2428
+ {
2429
+ "name": "bankIndex",
2430
+ "type": "u64"
2431
+ }
2432
+ ]
2433
+ },
2434
+ {
2435
+ "name": "addInsuranceFundStake",
2436
+ "accounts": [
2437
+ {
2438
+ "name": "bank",
2439
+ "isMut": false,
2440
+ "isSigner": false
2441
+ },
2442
+ {
2443
+ "name": "insuranceFundStake",
2444
+ "isMut": true,
2445
+ "isSigner": false
2446
+ },
2447
+ {
2448
+ "name": "userStats",
2449
+ "isMut": true,
2450
+ "isSigner": false
2451
+ },
2452
+ {
2453
+ "name": "authority",
2454
+ "isMut": false,
2455
+ "isSigner": true
2456
+ },
2457
+ {
2458
+ "name": "insuranceFundVault",
2459
+ "isMut": true,
2460
+ "isSigner": false
2461
+ },
2462
+ {
2463
+ "name": "userTokenAccount",
2464
+ "isMut": true,
2465
+ "isSigner": false
2466
+ },
2467
+ {
2468
+ "name": "tokenProgram",
2469
+ "isMut": false,
2470
+ "isSigner": false
2471
+ }
2472
+ ],
2473
+ "args": [
2474
+ {
2475
+ "name": "bankIndex",
2476
+ "type": "u64"
2477
+ },
2478
+ {
2479
+ "name": "amount",
2480
+ "type": "u64"
2481
+ }
2482
+ ]
2483
+ },
2484
+ {
2485
+ "name": "requestRemoveInsuranceFundStake",
2486
+ "accounts": [
2487
+ {
2488
+ "name": "bank",
2489
+ "isMut": false,
2490
+ "isSigner": false
2491
+ },
2492
+ {
2493
+ "name": "insuranceFundStake",
2494
+ "isMut": true,
2495
+ "isSigner": false
2496
+ },
2497
+ {
2498
+ "name": "userStats",
2499
+ "isMut": true,
2500
+ "isSigner": false
2501
+ },
2502
+ {
2503
+ "name": "authority",
2504
+ "isMut": false,
2505
+ "isSigner": true
2506
+ },
2507
+ {
2508
+ "name": "insuranceFundVault",
2509
+ "isMut": true,
2510
+ "isSigner": false
2511
+ }
2512
+ ],
2513
+ "args": [
2514
+ {
2515
+ "name": "bankIndex",
2516
+ "type": "u64"
2517
+ },
2518
+ {
2519
+ "name": "amount",
2520
+ "type": "u64"
2521
+ }
2522
+ ]
2523
+ },
2524
+ {
2525
+ "name": "cancelRequestRemoveInsuranceFundStake",
2526
+ "accounts": [
2527
+ {
2528
+ "name": "bank",
2529
+ "isMut": false,
2530
+ "isSigner": false
2531
+ },
2532
+ {
2533
+ "name": "insuranceFundStake",
2534
+ "isMut": true,
2535
+ "isSigner": false
2536
+ },
2537
+ {
2538
+ "name": "userStats",
2539
+ "isMut": true,
2540
+ "isSigner": false
2541
+ },
2542
+ {
2543
+ "name": "authority",
2544
+ "isMut": false,
2545
+ "isSigner": true
2546
+ },
2547
+ {
2548
+ "name": "insuranceFundVault",
2549
+ "isMut": true,
2550
+ "isSigner": false
2551
+ }
2552
+ ],
2553
+ "args": [
2554
+ {
2555
+ "name": "bankIndex",
2556
+ "type": "u64"
2557
+ }
2558
+ ]
2559
+ },
2560
+ {
2561
+ "name": "removeInsuranceFundStake",
2562
+ "accounts": [
2563
+ {
2564
+ "name": "state",
2565
+ "isMut": false,
2566
+ "isSigner": false
2567
+ },
2568
+ {
2569
+ "name": "bank",
2570
+ "isMut": false,
2571
+ "isSigner": false
2572
+ },
2573
+ {
2574
+ "name": "insuranceFundStake",
2575
+ "isMut": true,
2576
+ "isSigner": false
2577
+ },
2578
+ {
2579
+ "name": "userStats",
2580
+ "isMut": true,
2581
+ "isSigner": false
2582
+ },
2583
+ {
2584
+ "name": "authority",
2585
+ "isMut": false,
2586
+ "isSigner": true
2587
+ },
2588
+ {
2589
+ "name": "insuranceFundVault",
2590
+ "isMut": true,
2591
+ "isSigner": false
2592
+ },
2593
+ {
2594
+ "name": "clearingHouseSigner",
2595
+ "isMut": false,
2596
+ "isSigner": false
2597
+ },
2598
+ {
2599
+ "name": "userTokenAccount",
2600
+ "isMut": true,
2601
+ "isSigner": false
2602
+ },
2603
+ {
2604
+ "name": "tokenProgram",
2605
+ "isMut": false,
2606
+ "isSigner": false
2607
+ }
2608
+ ],
2609
+ "args": [
2610
+ {
2611
+ "name": "bankIndex",
2612
+ "type": "u64"
2613
+ }
2614
+ ]
2615
+ }
2616
+ ],
2617
+ "accounts": [
2618
+ {
2619
+ "name": "Bank",
2620
+ "type": {
2621
+ "kind": "struct",
2622
+ "fields": [
2623
+ {
2624
+ "name": "bankIndex",
2625
+ "type": "u64"
2626
+ },
2627
+ {
2628
+ "name": "pubkey",
2629
+ "type": "publicKey"
2630
+ },
2631
+ {
2632
+ "name": "oracle",
2633
+ "type": "publicKey"
2634
+ },
2635
+ {
2636
+ "name": "oracleSource",
2637
+ "type": {
2638
+ "defined": "OracleSource"
2639
+ }
2640
+ },
2641
+ {
2642
+ "name": "mint",
2643
+ "type": "publicKey"
2644
+ },
2645
+ {
2646
+ "name": "vault",
2647
+ "type": "publicKey"
2648
+ },
2649
+ {
2650
+ "name": "insuranceFundVault",
2651
+ "type": "publicKey"
2652
+ },
2653
+ {
2654
+ "name": "revenuePool",
2655
+ "type": {
2656
+ "defined": "PoolBalance"
2657
+ }
2658
+ },
2659
+ {
2660
+ "name": "totalIfFactor",
2661
+ "type": "u32"
2662
+ },
2663
+ {
2664
+ "name": "userIfFactor",
2665
+ "type": "u32"
2666
+ },
2667
+ {
2668
+ "name": "totalIfShares",
2669
+ "type": "u128"
2670
+ },
2671
+ {
2672
+ "name": "userIfShares",
2673
+ "type": "u128"
2674
+ },
2675
+ {
2676
+ "name": "ifSharesBase",
2677
+ "type": "u128"
2678
+ },
2679
+ {
2680
+ "name": "insuranceWithdrawEscrowPeriod",
2681
+ "type": "i64"
2682
+ },
2683
+ {
2684
+ "name": "lastRevenueSettleTs",
2685
+ "type": "i64"
2686
+ },
2687
+ {
2688
+ "name": "revenueSettlePeriod",
2689
+ "type": "i64"
2690
+ },
2691
+ {
2692
+ "name": "decimals",
2693
+ "type": "u8"
2694
+ },
2695
+ {
2696
+ "name": "optimalUtilization",
2697
+ "type": "u128"
2698
+ },
2699
+ {
2700
+ "name": "optimalBorrowRate",
2701
+ "type": "u128"
2702
+ },
2703
+ {
2704
+ "name": "maxBorrowRate",
2705
+ "type": "u128"
2706
+ },
2707
+ {
2708
+ "name": "depositBalance",
2709
+ "type": "u128"
2710
+ },
2711
+ {
2712
+ "name": "borrowBalance",
2713
+ "type": "u128"
2714
+ },
2715
+ {
2716
+ "name": "depositTokenTwap",
2717
+ "type": "u128"
2718
+ },
2719
+ {
2720
+ "name": "borrowTokenTwap",
2721
+ "type": "u128"
2722
+ },
2723
+ {
2724
+ "name": "utilizationTwap",
2725
+ "type": "u128"
2726
+ },
2727
+ {
2728
+ "name": "cumulativeDepositInterest",
2230
2729
  "type": "u128"
2231
2730
  },
2232
2731
  {
@@ -2265,6 +2764,10 @@
2265
2764
  "name": "liquidationFee",
2266
2765
  "type": "u128"
2267
2766
  },
2767
+ {
2768
+ "name": "liquidationIfFactor",
2769
+ "type": "u32"
2770
+ },
2268
2771
  {
2269
2772
  "name": "withdrawGuardThreshold",
2270
2773
  "type": "u128"
@@ -2272,6 +2775,50 @@
2272
2775
  ]
2273
2776
  }
2274
2777
  },
2778
+ {
2779
+ "name": "InsuranceFundStake",
2780
+ "type": {
2781
+ "kind": "struct",
2782
+ "fields": [
2783
+ {
2784
+ "name": "authority",
2785
+ "type": "publicKey"
2786
+ },
2787
+ {
2788
+ "name": "bankIndex",
2789
+ "type": "u64"
2790
+ },
2791
+ {
2792
+ "name": "ifShares",
2793
+ "type": "u128"
2794
+ },
2795
+ {
2796
+ "name": "ifBase",
2797
+ "type": "u128"
2798
+ },
2799
+ {
2800
+ "name": "lastValidTs",
2801
+ "type": "i64"
2802
+ },
2803
+ {
2804
+ "name": "lastWithdrawRequestShares",
2805
+ "type": "u128"
2806
+ },
2807
+ {
2808
+ "name": "lastWithdrawRequestValue",
2809
+ "type": "u64"
2810
+ },
2811
+ {
2812
+ "name": "lastWithdrawRequestTs",
2813
+ "type": "i64"
2814
+ },
2815
+ {
2816
+ "name": "costBasis",
2817
+ "type": "i64"
2818
+ }
2819
+ ]
2820
+ }
2821
+ },
2275
2822
  {
2276
2823
  "name": "Market",
2277
2824
  "type": {
@@ -2333,6 +2880,18 @@
2333
2880
  "defined": "PoolBalance"
2334
2881
  }
2335
2882
  },
2883
+ {
2884
+ "name": "revenueWithdrawSinceLastSettle",
2885
+ "type": "u128"
2886
+ },
2887
+ {
2888
+ "name": "maxRevenueWithdrawPerPeriod",
2889
+ "type": "u128"
2890
+ },
2891
+ {
2892
+ "name": "lastRevenueWithdrawTs",
2893
+ "type": "i64"
2894
+ },
2336
2895
  {
2337
2896
  "name": "imfFactor",
2338
2897
  "type": "u128"
@@ -2401,14 +2960,6 @@
2401
2960
  "name": "insuranceVault",
2402
2961
  "type": "publicKey"
2403
2962
  },
2404
- {
2405
- "name": "insuranceVaultAuthority",
2406
- "type": "publicKey"
2407
- },
2408
- {
2409
- "name": "insuranceVaultNonce",
2410
- "type": "u8"
2411
- },
2412
2963
  {
2413
2964
  "name": "marginRatioInitial",
2414
2965
  "type": "u128"
@@ -2497,6 +3048,14 @@
2497
3048
  "name": "liquidationMarginBufferRatio",
2498
3049
  "type": "u8"
2499
3050
  },
3051
+ {
3052
+ "name": "signer",
3053
+ "type": "publicKey"
3054
+ },
3055
+ {
3056
+ "name": "signerNonce",
3057
+ "type": "u8"
3058
+ },
2500
3059
  {
2501
3060
  "name": "padding0",
2502
3061
  "type": "u128"
@@ -2636,6 +3195,10 @@
2636
3195
  {
2637
3196
  "name": "lastFillerVolume30dTs",
2638
3197
  "type": "i64"
3198
+ },
3199
+ {
3200
+ "name": "quoteAssetInsuranceFundStake",
3201
+ "type": "u128"
2639
3202
  }
2640
3203
  ]
2641
3204
  }
@@ -2773,6 +3336,10 @@
2773
3336
  "name": "quoteAssetAmount",
2774
3337
  "type": "i128"
2775
3338
  },
3339
+ {
3340
+ "name": "lpShares",
3341
+ "type": "u128"
3342
+ },
2776
3343
  {
2777
3344
  "name": "userPnl",
2778
3345
  "type": "i128"
@@ -2905,6 +3472,10 @@
2905
3472
  "name": "pnl",
2906
3473
  "type": "i128"
2907
3474
  },
3475
+ {
3476
+ "name": "ifPayment",
3477
+ "type": "u128"
3478
+ },
2908
3479
  {
2909
3480
  "name": "cumulativeFundingRateDelta",
2910
3481
  "type": "i128"
@@ -2925,6 +3496,10 @@
2925
3496
  "name": "borrowAmount",
2926
3497
  "type": "u128"
2927
3498
  },
3499
+ {
3500
+ "name": "ifPayment",
3501
+ "type": "u128"
3502
+ },
2928
3503
  {
2929
3504
  "name": "cumulativeDepositInterestDelta",
2930
3505
  "type": "u128"
@@ -3057,6 +3632,10 @@
3057
3632
  "defined": "MarketPosition"
3058
3633
  }
3059
3634
  },
3635
+ {
3636
+ "name": "ammJitIntensity",
3637
+ "type": "u8"
3638
+ },
3060
3639
  {
3061
3640
  "name": "lastFundingRate",
3062
3641
  "type": "i128"
@@ -3193,11 +3772,11 @@
3193
3772
  },
3194
3773
  {
3195
3774
  "name": "totalFee",
3196
- "type": "u128"
3775
+ "type": "i128"
3197
3776
  },
3198
3777
  {
3199
3778
  "name": "totalMmFee",
3200
- "type": "u128"
3779
+ "type": "i128"
3201
3780
  },
3202
3781
  {
3203
3782
  "name": "totalExchangeFee",
@@ -3864,7 +4443,7 @@
3864
4443
  "name": "None"
3865
4444
  },
3866
4445
  {
3867
- "name": "BreachedMarginRequirement"
4446
+ "name": "InsufficientFreeCollateral"
3868
4447
  },
3869
4448
  {
3870
4449
  "name": "OraclePriceBreachedLimitPrice"
@@ -3887,6 +4466,23 @@
3887
4466
  ]
3888
4467
  }
3889
4468
  },
4469
+ {
4470
+ "name": "LPAction",
4471
+ "type": {
4472
+ "kind": "enum",
4473
+ "variants": [
4474
+ {
4475
+ "name": "AddLiquidity"
4476
+ },
4477
+ {
4478
+ "name": "RemoveLiquidity"
4479
+ },
4480
+ {
4481
+ "name": "SettleLiquidity"
4482
+ }
4483
+ ]
4484
+ }
4485
+ },
3890
4486
  {
3891
4487
  "name": "LiquidationType",
3892
4488
  "type": {
@@ -3913,6 +4509,26 @@
3913
4509
  ]
3914
4510
  }
3915
4511
  },
4512
+ {
4513
+ "name": "StakeAction",
4514
+ "type": {
4515
+ "kind": "enum",
4516
+ "variants": [
4517
+ {
4518
+ "name": "Stake"
4519
+ },
4520
+ {
4521
+ "name": "UnstakeRequest"
4522
+ },
4523
+ {
4524
+ "name": "UnstakeCancelRequest"
4525
+ },
4526
+ {
4527
+ "name": "Unstake"
4528
+ }
4529
+ ]
4530
+ }
4531
+ },
3916
4532
  {
3917
4533
  "name": "FulfillmentMethod",
3918
4534
  "type": {
@@ -4179,6 +4795,16 @@
4179
4795
  "type": "i128",
4180
4796
  "index": false
4181
4797
  },
4798
+ {
4799
+ "name": "fundingRateLong",
4800
+ "type": "i128",
4801
+ "index": false
4802
+ },
4803
+ {
4804
+ "name": "fundingRateShort",
4805
+ "type": "i128",
4806
+ "index": false
4807
+ },
4182
4808
  {
4183
4809
  "name": "cumulativeFundingRateLong",
4184
4810
  "type": "i128",
@@ -4198,6 +4824,21 @@
4198
4824
  "name": "markPriceTwap",
4199
4825
  "type": "u128",
4200
4826
  "index": false
4827
+ },
4828
+ {
4829
+ "name": "periodRevenue",
4830
+ "type": "i64",
4831
+ "index": false
4832
+ },
4833
+ {
4834
+ "name": "netBaseAssetAmount",
4835
+ "type": "i128",
4836
+ "index": false
4837
+ },
4838
+ {
4839
+ "name": "netUnsettledLpBaseAssetAmount",
4840
+ "type": "i128",
4841
+ "index": false
4201
4842
  }
4202
4843
  ]
4203
4844
  },
@@ -4255,180 +4896,330 @@
4255
4896
  "index": false
4256
4897
  },
4257
4898
  {
4258
- "name": "sqrtKAfter",
4259
- "type": "u128",
4899
+ "name": "sqrtKAfter",
4900
+ "type": "u128",
4901
+ "index": false
4902
+ },
4903
+ {
4904
+ "name": "baseAssetAmountLong",
4905
+ "type": "u128",
4906
+ "index": false
4907
+ },
4908
+ {
4909
+ "name": "baseAssetAmountShort",
4910
+ "type": "u128",
4911
+ "index": false
4912
+ },
4913
+ {
4914
+ "name": "netBaseAssetAmount",
4915
+ "type": "i128",
4916
+ "index": false
4917
+ },
4918
+ {
4919
+ "name": "openInterest",
4920
+ "type": "u128",
4921
+ "index": false
4922
+ },
4923
+ {
4924
+ "name": "totalFee",
4925
+ "type": "i128",
4926
+ "index": false
4927
+ },
4928
+ {
4929
+ "name": "totalFeeMinusDistributions",
4930
+ "type": "i128",
4931
+ "index": false
4932
+ },
4933
+ {
4934
+ "name": "adjustmentCost",
4935
+ "type": "i128",
4936
+ "index": false
4937
+ },
4938
+ {
4939
+ "name": "oraclePrice",
4940
+ "type": "i128",
4941
+ "index": false
4942
+ },
4943
+ {
4944
+ "name": "fillRecord",
4945
+ "type": "u128",
4946
+ "index": false
4947
+ }
4948
+ ]
4949
+ },
4950
+ {
4951
+ "name": "OrderRecord",
4952
+ "fields": [
4953
+ {
4954
+ "name": "ts",
4955
+ "type": "i64",
4956
+ "index": false
4957
+ },
4958
+ {
4959
+ "name": "user",
4960
+ "type": "publicKey",
4961
+ "index": false
4962
+ },
4963
+ {
4964
+ "name": "order",
4965
+ "type": {
4966
+ "defined": "Order"
4967
+ },
4968
+ "index": false
4969
+ }
4970
+ ]
4971
+ },
4972
+ {
4973
+ "name": "OrderActionRecord",
4974
+ "fields": [
4975
+ {
4976
+ "name": "ts",
4977
+ "type": "i64",
4978
+ "index": false
4979
+ },
4980
+ {
4981
+ "name": "action",
4982
+ "type": {
4983
+ "defined": "OrderAction"
4984
+ },
4985
+ "index": false
4986
+ },
4987
+ {
4988
+ "name": "actionExplanation",
4989
+ "type": {
4990
+ "defined": "OrderActionExplanation"
4991
+ },
4992
+ "index": false
4993
+ },
4994
+ {
4995
+ "name": "marketIndex",
4996
+ "type": "u64",
4997
+ "index": false
4998
+ },
4999
+ {
5000
+ "name": "filler",
5001
+ "type": {
5002
+ "option": "publicKey"
5003
+ },
5004
+ "index": false
5005
+ },
5006
+ {
5007
+ "name": "fillerReward",
5008
+ "type": {
5009
+ "option": "u64"
5010
+ },
5011
+ "index": false
5012
+ },
5013
+ {
5014
+ "name": "fillRecordId",
5015
+ "type": {
5016
+ "option": "u64"
5017
+ },
4260
5018
  "index": false
4261
5019
  },
4262
5020
  {
4263
- "name": "baseAssetAmountLong",
4264
- "type": "u128",
5021
+ "name": "referrer",
5022
+ "type": {
5023
+ "option": "publicKey"
5024
+ },
4265
5025
  "index": false
4266
5026
  },
4267
5027
  {
4268
- "name": "baseAssetAmountShort",
4269
- "type": "u128",
5028
+ "name": "baseAssetAmountFilled",
5029
+ "type": {
5030
+ "option": "u128"
5031
+ },
4270
5032
  "index": false
4271
5033
  },
4272
5034
  {
4273
- "name": "netBaseAssetAmount",
4274
- "type": "i128",
5035
+ "name": "quoteAssetAmountFilled",
5036
+ "type": {
5037
+ "option": "u64"
5038
+ },
4275
5039
  "index": false
4276
5040
  },
4277
5041
  {
4278
- "name": "openInterest",
4279
- "type": "u128",
5042
+ "name": "takerPnl",
5043
+ "type": {
5044
+ "option": "i64"
5045
+ },
4280
5046
  "index": false
4281
5047
  },
4282
5048
  {
4283
- "name": "totalFee",
4284
- "type": "u128",
5049
+ "name": "makerPnl",
5050
+ "type": {
5051
+ "option": "i64"
5052
+ },
4285
5053
  "index": false
4286
5054
  },
4287
5055
  {
4288
- "name": "totalFeeMinusDistributions",
4289
- "type": "i128",
5056
+ "name": "takerFee",
5057
+ "type": {
5058
+ "option": "u64"
5059
+ },
4290
5060
  "index": false
4291
5061
  },
4292
5062
  {
4293
- "name": "adjustmentCost",
4294
- "type": "i128",
5063
+ "name": "makerRebate",
5064
+ "type": {
5065
+ "option": "u64"
5066
+ },
4295
5067
  "index": false
4296
5068
  },
4297
5069
  {
4298
- "name": "oraclePrice",
4299
- "type": "i128",
5070
+ "name": "referrerReward",
5071
+ "type": {
5072
+ "option": "u64"
5073
+ },
4300
5074
  "index": false
4301
5075
  },
4302
5076
  {
4303
- "name": "fillRecord",
4304
- "type": "u128",
4305
- "index": false
4306
- }
4307
- ]
4308
- },
4309
- {
4310
- "name": "OrderRecord",
4311
- "fields": [
4312
- {
4313
- "name": "ts",
4314
- "type": "i64",
5077
+ "name": "refereeDiscount",
5078
+ "type": {
5079
+ "option": "u64"
5080
+ },
4315
5081
  "index": false
4316
5082
  },
4317
5083
  {
4318
- "name": "slot",
4319
- "type": "u64",
5084
+ "name": "quoteAssetAmountSurplus",
5085
+ "type": {
5086
+ "option": "i64"
5087
+ },
4320
5088
  "index": false
4321
5089
  },
4322
5090
  {
4323
5091
  "name": "taker",
4324
- "type": "publicKey",
5092
+ "type": {
5093
+ "option": "publicKey"
5094
+ },
4325
5095
  "index": false
4326
5096
  },
4327
5097
  {
4328
- "name": "maker",
4329
- "type": "publicKey",
5098
+ "name": "takerOrderId",
5099
+ "type": {
5100
+ "option": "u64"
5101
+ },
4330
5102
  "index": false
4331
5103
  },
4332
5104
  {
4333
- "name": "takerOrder",
5105
+ "name": "takerOrderBaseAssetAmount",
4334
5106
  "type": {
4335
- "defined": "Order"
5107
+ "option": "u128"
4336
5108
  },
4337
5109
  "index": false
4338
5110
  },
4339
5111
  {
4340
- "name": "makerOrder",
5112
+ "name": "takerOrderBaseAssetAmountFilled",
4341
5113
  "type": {
4342
- "defined": "Order"
5114
+ "option": "u128"
4343
5115
  },
4344
5116
  "index": false
4345
5117
  },
4346
5118
  {
4347
- "name": "makerPnl",
4348
- "type": "i128",
5119
+ "name": "takerOrderQuoteAssetAmountFilled",
5120
+ "type": {
5121
+ "option": "u64"
5122
+ },
4349
5123
  "index": false
4350
5124
  },
4351
5125
  {
4352
- "name": "takerPnl",
4353
- "type": "i128",
5126
+ "name": "takerOrderFee",
5127
+ "type": {
5128
+ "option": "i64"
5129
+ },
4354
5130
  "index": false
4355
5131
  },
4356
5132
  {
4357
- "name": "action",
5133
+ "name": "maker",
4358
5134
  "type": {
4359
- "defined": "OrderAction"
5135
+ "option": "publicKey"
4360
5136
  },
4361
5137
  "index": false
4362
5138
  },
4363
5139
  {
4364
- "name": "actionExplanation",
5140
+ "name": "makerOrderId",
4365
5141
  "type": {
4366
- "defined": "OrderActionExplanation"
5142
+ "option": "u64"
4367
5143
  },
4368
5144
  "index": false
4369
5145
  },
4370
5146
  {
4371
- "name": "filler",
4372
- "type": "publicKey",
5147
+ "name": "makerOrderBaseAssetAmount",
5148
+ "type": {
5149
+ "option": "u128"
5150
+ },
4373
5151
  "index": false
4374
5152
  },
4375
5153
  {
4376
- "name": "fillRecordId",
4377
- "type": "u64",
5154
+ "name": "makerOrderBaseAssetAmountFilled",
5155
+ "type": {
5156
+ "option": "u128"
5157
+ },
4378
5158
  "index": false
4379
5159
  },
4380
5160
  {
4381
- "name": "marketIndex",
4382
- "type": "u64",
5161
+ "name": "makerOrderQuoteAssetAmountFilled",
5162
+ "type": {
5163
+ "option": "u64"
5164
+ },
4383
5165
  "index": false
4384
5166
  },
4385
5167
  {
4386
- "name": "baseAssetAmountFilled",
4387
- "type": "u128",
5168
+ "name": "makerOrderFee",
5169
+ "type": {
5170
+ "option": "i64"
5171
+ },
4388
5172
  "index": false
4389
5173
  },
4390
5174
  {
4391
- "name": "quoteAssetAmountFilled",
4392
- "type": "u128",
5175
+ "name": "oraclePrice",
5176
+ "type": "i128",
4393
5177
  "index": false
4394
- },
5178
+ }
5179
+ ]
5180
+ },
5181
+ {
5182
+ "name": "LPRecord",
5183
+ "fields": [
4395
5184
  {
4396
- "name": "makerRebate",
4397
- "type": "u128",
5185
+ "name": "ts",
5186
+ "type": "i64",
4398
5187
  "index": false
4399
5188
  },
4400
5189
  {
4401
- "name": "takerFee",
4402
- "type": "u128",
5190
+ "name": "user",
5191
+ "type": "publicKey",
4403
5192
  "index": false
4404
5193
  },
4405
5194
  {
4406
- "name": "fillerReward",
4407
- "type": "u128",
5195
+ "name": "action",
5196
+ "type": {
5197
+ "defined": "LPAction"
5198
+ },
4408
5199
  "index": false
4409
5200
  },
4410
5201
  {
4411
- "name": "referrer",
4412
- "type": "publicKey",
5202
+ "name": "nShares",
5203
+ "type": "u128",
4413
5204
  "index": false
4414
5205
  },
4415
5206
  {
4416
- "name": "referrerReward",
4417
- "type": "u128",
5207
+ "name": "marketIndex",
5208
+ "type": "u64",
4418
5209
  "index": false
4419
5210
  },
4420
5211
  {
4421
- "name": "refereeDiscount",
4422
- "type": "u128",
5212
+ "name": "deltaBaseAssetAmount",
5213
+ "type": "i128",
4423
5214
  "index": false
4424
5215
  },
4425
5216
  {
4426
- "name": "quoteAssetAmountSurplus",
4427
- "type": "u128",
5217
+ "name": "deltaQuoteAssetAmount",
5218
+ "type": "i128",
4428
5219
  "index": false
4429
5220
  },
4430
5221
  {
4431
- "name": "oraclePrice",
5222
+ "name": "pnl",
4432
5223
  "type": "i128",
4433
5224
  "index": false
4434
5225
  }
@@ -4567,6 +5358,123 @@
4567
5358
  "index": false
4568
5359
  }
4569
5360
  ]
5361
+ },
5362
+ {
5363
+ "name": "InsuranceFundRecord",
5364
+ "fields": [
5365
+ {
5366
+ "name": "ts",
5367
+ "type": "i64",
5368
+ "index": false
5369
+ },
5370
+ {
5371
+ "name": "bankIndex",
5372
+ "type": "u64",
5373
+ "index": false
5374
+ },
5375
+ {
5376
+ "name": "userIfFactor",
5377
+ "type": "u32",
5378
+ "index": false
5379
+ },
5380
+ {
5381
+ "name": "totalIfFactor",
5382
+ "type": "u32",
5383
+ "index": false
5384
+ },
5385
+ {
5386
+ "name": "bankVaultAmountBefore",
5387
+ "type": "u64",
5388
+ "index": false
5389
+ },
5390
+ {
5391
+ "name": "insuranceVaultAmountBefore",
5392
+ "type": "u64",
5393
+ "index": false
5394
+ },
5395
+ {
5396
+ "name": "totalIfSharesBefore",
5397
+ "type": "u128",
5398
+ "index": false
5399
+ },
5400
+ {
5401
+ "name": "totalIfSharesAfter",
5402
+ "type": "u128",
5403
+ "index": false
5404
+ },
5405
+ {
5406
+ "name": "amount",
5407
+ "type": "u64",
5408
+ "index": false
5409
+ }
5410
+ ]
5411
+ },
5412
+ {
5413
+ "name": "InsuranceFundStakeRecord",
5414
+ "fields": [
5415
+ {
5416
+ "name": "ts",
5417
+ "type": "i64",
5418
+ "index": false
5419
+ },
5420
+ {
5421
+ "name": "userAuthority",
5422
+ "type": "publicKey",
5423
+ "index": false
5424
+ },
5425
+ {
5426
+ "name": "action",
5427
+ "type": {
5428
+ "defined": "StakeAction"
5429
+ },
5430
+ "index": false
5431
+ },
5432
+ {
5433
+ "name": "amount",
5434
+ "type": "u64",
5435
+ "index": false
5436
+ },
5437
+ {
5438
+ "name": "bankIndex",
5439
+ "type": "u64",
5440
+ "index": false
5441
+ },
5442
+ {
5443
+ "name": "insuranceVaultAmountBefore",
5444
+ "type": "u64",
5445
+ "index": false
5446
+ },
5447
+ {
5448
+ "name": "ifSharesBefore",
5449
+ "type": "u128",
5450
+ "index": false
5451
+ },
5452
+ {
5453
+ "name": "userIfSharesBefore",
5454
+ "type": "u128",
5455
+ "index": false
5456
+ },
5457
+ {
5458
+ "name": "totalIfSharesBefore",
5459
+ "type": "u128",
5460
+ "index": false
5461
+ },
5462
+ {
5463
+ "name": "ifSharesAfter",
5464
+ "type": "u128",
5465
+ "index": false
5466
+ },
5467
+ {
5468
+ "name": "userIfSharesAfter",
5469
+ "type": "u128",
5470
+ "index": false
5471
+ },
5472
+ {
5473
+ "name": "totalIfSharesAfter",
5474
+ "type": "u128",
5475
+ "index": false
5476
+ }
5477
+ ]
4570
5478
  }
4571
5479
  ],
4572
5480
  "errors": [
@@ -4577,8 +5485,8 @@
4577
5485
  },
4578
5486
  {
4579
5487
  "code": 6001,
4580
- "name": "InvalidInsuranceAccountAuthority",
4581
- "msg": "Clearing house not insurance account owner"
5488
+ "name": "InvalidInsuranceFundAuthority",
5489
+ "msg": "Clearing house not insurance fund authority"
4582
5490
  },
4583
5491
  {
4584
5492
  "code": 6002,