@velocity-exchange/sdk 0.2.3 → 0.2.4

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @velocity-exchange/sdk
2
2
 
3
+ ## 0.2.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [#127](https://github.com/drift-labs/protocol-v2-shadow/pull/127) [`4f8e7aa`](https://github.com/drift-labs/protocol-v2-shadow/commit/4f8e7aaef0e35b190fc0b91cd29314d902d1ccab) Thanks [@ChesterSim](https://github.com/ChesterSim)! - reflect Typescript types on IDL changes
8
+
3
9
  ## 0.2.3
4
10
 
5
11
  ### Patch Changes
@@ -22,7 +22,7 @@ exports.configs = {
22
22
  PYTH_ORACLE_MAPPING_ADDRESS: 'BmA9Z6FjioHJPpjT39QazZyhDRUdZy2ezwx4GiDdE2u2',
23
23
  VELOCITY_PROGRAM_ID: exports.VELOCITY_DEVNET_PROGRAM_ID,
24
24
  JIT_PROXY_PROGRAM_ID: 'J1TnP8zvVxbtF5KFp5xRmWuvG9McnhzmBd9XGfCyuxFP',
25
- QUOTE_MINT_ADDRESS: '8FfvSRKMZRDHrCBy142XMUXrKEkXnxDQ4YmJv7xbAw8Q',
25
+ QUOTE_MINT_ADDRESS: 'GqmEqYsy8EyvofDpmtFxK8zhYrgWgNokAtYoduQdL7v6',
26
26
  V2_ALPHA_TICKET_MINT_ADDRESS: 'DeEiGWfCMP9psnLGkxGrBBMEAW5Jv8bBGMN8DCtFRCyB',
27
27
  PERP_MARKETS: perpMarkets_1.DevnetPerpMarkets,
28
28
  SPOT_MARKETS: spotMarkets_1.DevnetSpotMarkets,
@@ -15,7 +15,7 @@ exports.DevnetSpotMarkets = [
15
15
  poolId: 0,
16
16
  oracle: new web3_js_1.PublicKey('Dai8hT1YRBBm5rBSJUSKcdR11psM55LVAkshbypfC4k4'),
17
17
  oracleSource: types_1.OracleSource.PYTH_LAZER_STABLE_COIN,
18
- mint: new web3_js_1.PublicKey('8FfvSRKMZRDHrCBy142XMUXrKEkXnxDQ4YmJv7xbAw8Q'),
18
+ mint: new web3_js_1.PublicKey('GqmEqYsy8EyvofDpmtFxK8zhYrgWgNokAtYoduQdL7v6'),
19
19
  precision: new anchor_1.BN(10).pow(numericConstants_1.SIX),
20
20
  precisionExp: numericConstants_1.SIX,
21
21
  pythLazerId: 8,
@@ -1,5 +1,19 @@
1
1
  import { BN } from '../isomorphic/anchor';
2
+ /**
3
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
4
+ * COMBINED insurance-fund + protocol liquidation fee budget:
5
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
6
+ * on-chain). Pass that sum here to match on-chain sizing; passing
7
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
8
+ */
2
9
  export declare function calculateBaseAssetAmountToCoverMarginShortage(marginShortage: BN, marginRatio: number, liquidationFee: number, ifLiquidationFee: number, oraclePrice: BN, quoteOraclePrice: BN): BN | undefined;
10
+ /**
11
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
12
+ * COMBINED insurance-fund + protocol liquidation fee budget:
13
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
14
+ * on-chain). Pass that sum here to match on-chain sizing; passing
15
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
16
+ */
3
17
  export declare function calculateLiabilityTransferToCoverMarginShortage(marginShortage: BN, assetWeight: number, assetLiquidationMultiplier: number, liabilityWeight: number, liabilityLiquidationMultiplier: number, liabilityDecimals: number, liabilityPrice: BN, ifLiquidationFee: number): BN | undefined;
4
18
  export declare function calculateAssetTransferForLiabilityTransfer(assetAmount: BN, assetLiquidationMultiplier: number, assetDecimals: number, assetPrice: BN, liabilityAmount: BN, liabilityLiquidationMultiplier: number, liabilityDecimals: number, liabilityPrice: BN): BN | undefined;
5
19
  export declare function calculateMaxPctToLiquidate(userLastActiveSlot: BN, userLiquidationMarginFreed: BN, marginShortage: BN, slot: BN, initialPctToLiquidate: BN, liquidationDuration: BN): BN;
@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getMarginShortage = exports.calculateMaxPctToLiquidate = exports.calculateAssetTransferForLiabilityTransfer = exports.calculateLiabilityTransferToCoverMarginShortage = exports.calculateBaseAssetAmountToCoverMarginShortage = void 0;
4
4
  const anchor_1 = require("../isomorphic/anchor");
5
5
  const numericConstants_1 = require("../constants/numericConstants");
6
+ /**
7
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
8
+ * COMBINED insurance-fund + protocol liquidation fee budget:
9
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
10
+ * on-chain). Pass that sum here to match on-chain sizing; passing
11
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
12
+ */
6
13
  function calculateBaseAssetAmountToCoverMarginShortage(marginShortage, marginRatio, liquidationFee, ifLiquidationFee, oraclePrice, quoteOraclePrice) {
7
14
  const marginRatioBN = new anchor_1.BN(marginRatio)
8
15
  .mul(numericConstants_1.LIQUIDATION_FEE_PRECISION)
@@ -20,6 +27,13 @@ function calculateBaseAssetAmountToCoverMarginShortage(marginShortage, marginRat
20
27
  .sub(oraclePrice.mul(new anchor_1.BN(ifLiquidationFee)).div(numericConstants_1.LIQUIDATION_FEE_PRECISION)));
21
28
  }
22
29
  exports.calculateBaseAssetAmountToCoverMarginShortage = calculateBaseAssetAmountToCoverMarginShortage;
30
+ /**
31
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
32
+ * COMBINED insurance-fund + protocol liquidation fee budget:
33
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
34
+ * on-chain). Pass that sum here to match on-chain sizing; passing
35
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
36
+ */
23
37
  function calculateLiabilityTransferToCoverMarginShortage(marginShortage, assetWeight, assetLiquidationMultiplier, liabilityWeight, liabilityLiquidationMultiplier, liabilityDecimals, liabilityPrice, ifLiquidationFee) {
24
38
  if (assetWeight >= liabilityWeight) {
25
39
  // undefined is max
@@ -464,6 +464,8 @@ export type DepositRecord = {
464
464
  depositRecordId: BN;
465
465
  explanation: DepositExplanation;
466
466
  transferUser?: PublicKey;
467
+ signer?: PublicKey;
468
+ userTokenAmountAfter: BN;
467
469
  };
468
470
  export type SpotInterestRecord = {
469
471
  ts: BN;
@@ -551,13 +553,14 @@ export type LiquidationRecord = {
551
553
  marginFreed: BN;
552
554
  liquidationId: number;
553
555
  bankrupt: boolean;
554
- canceledOrderIds: BN[];
556
+ canceledOrderIds: number[];
555
557
  liquidatePerp: LiquidatePerpRecord;
556
558
  liquidateSpot: LiquidateSpotRecord;
557
559
  liquidateBorrowForPerpPnl: LiquidateBorrowForPerpPnlRecord;
558
560
  liquidatePerpPnlForDeposit: LiquidatePerpPnlForDepositRecord;
559
561
  perpBankruptcy: PerpBankruptcyRecord;
560
562
  spotBankruptcy: SpotBankruptcyRecord;
563
+ bitFlags: number;
561
564
  };
562
565
  export declare class LiquidationType {
563
566
  static readonly LIQUIDATE_PERP: {
@@ -584,11 +587,12 @@ export type LiquidatePerpRecord = {
584
587
  oraclePrice: BN;
585
588
  baseAssetAmount: BN;
586
589
  quoteAssetAmount: BN;
587
- userOrderId: BN;
588
- liquidatorOrderId: BN;
590
+ userOrderId: number;
591
+ liquidatorOrderId: number;
589
592
  fillRecordId: BN;
590
593
  liquidatorFee: BN;
591
594
  ifFee: BN;
595
+ protocolFee: BN;
592
596
  };
593
597
  export type LiquidateSpotRecord = {
594
598
  assetMarketIndex: number;
@@ -598,6 +602,7 @@ export type LiquidateSpotRecord = {
598
602
  liabilityPrice: BN;
599
603
  liabilityTransfer: BN;
600
604
  ifFee: BN;
605
+ protocolFee: BN;
601
606
  };
602
607
  export type LiquidateBorrowForPerpPnlRecord = {
603
608
  perpMarketIndex: number;
@@ -691,6 +696,9 @@ export type OrderActionRecord = {
691
696
  takerExistingBaseAssetAmount: BN | null;
692
697
  makerExistingQuoteEntryAmount: BN | null;
693
698
  makerExistingBaseAssetAmount: BN | null;
699
+ triggerPrice: BN | null;
700
+ builderIdx: number | null;
701
+ builderFee: BN | null;
694
702
  };
695
703
  export type SwapRecord = {
696
704
  ts: BN;
@@ -733,8 +741,6 @@ export type LPSwapRecord = {
733
741
  inConstituentIndex: number;
734
742
  outOraclePrice: BN;
735
743
  inOraclePrice: BN;
736
- outMint: PublicKey;
737
- inMint: PublicKey;
738
744
  lastAum: BN;
739
745
  lastAumSlot: BN;
740
746
  inMarketCurrentWeight: BN;
@@ -756,7 +762,6 @@ export type LPMintRedeemRecord = {
756
762
  constituentIndex: number;
757
763
  oraclePrice: BN;
758
764
  mint: PublicKey;
759
- lpMint: PublicKey;
760
765
  lpAmount: BN;
761
766
  lpFee: BN;
762
767
  lpPrice: BN;
@@ -796,6 +801,7 @@ export type LPBorrowLendDepositRecord = {
796
801
  export type StateAccount = {
797
802
  coldAdmin: PublicKey;
798
803
  warmAdmin: PublicKey;
804
+ pauseAdmin: PublicKey;
799
805
  hotAmmCrank: PublicKey;
800
806
  hotLpCache: PublicKey;
801
807
  hotLpSwap: PublicKey;
@@ -832,6 +838,7 @@ export type StateAccount = {
832
838
  liquidationDuration: number;
833
839
  maxInitializeUserFee: number;
834
840
  featureBitFlags: number;
841
+ lpPoolFeatureBitFlags: number;
835
842
  };
836
843
  export type PerpMarketAccount = {
837
844
  status: MarketStatus;
@@ -873,6 +880,7 @@ export type PerpMarketAccount = {
873
880
  feeAdjustment: number;
874
881
  pausedOperations: number;
875
882
  lastFillPrice: BN;
883
+ poolId: number;
876
884
  hedgeConfig: {
877
885
  poolId: number;
878
886
  status: number;
@@ -961,6 +969,7 @@ export type SpotMarketAccount = {
961
969
  maxTokenDeposits: BN;
962
970
  lastInterestTs: BN;
963
971
  lastTwapTs: BN;
972
+ expiryTs: BN;
964
973
  initialAssetWeight: number;
965
974
  maintenanceAssetWeight: number;
966
975
  initialLiabilityWeight: number;
@@ -1019,12 +1028,21 @@ export type AMM = {
1019
1028
  totalMmFee: BN;
1020
1029
  totalFeeMinusDistributions: BN;
1021
1030
  totalFeeWithdrawn: BN;
1031
+ askBaseAssetReserve: BN;
1032
+ askQuoteAssetReserve: BN;
1033
+ bidBaseAssetReserve: BN;
1034
+ bidQuoteAssetReserve: BN;
1022
1035
  lastUpdateSlot: BN;
1023
1036
  netRevenueSinceLastFunding: BN;
1024
1037
  lastCumulativeFundingRateLong: BN;
1025
1038
  lastCumulativeFundingRateShort: BN;
1039
+ lastOracleReservePriceSpreadPct: BN;
1040
+ lastSpreadUpdateSlot: BN;
1026
1041
  baseSpread: number;
1027
1042
  maxSpread: number;
1043
+ longSpread: number;
1044
+ shortSpread: number;
1045
+ referencePriceOffset: number;
1028
1046
  maxFillReserveFraction: number;
1029
1047
  maxSlippageRatio: number;
1030
1048
  curveUpdateIntensity: number;
@@ -1093,6 +1111,8 @@ export type UserStatsAccount = {
1093
1111
  };
1094
1112
  referrer: PublicKey;
1095
1113
  referrerStatus: number;
1114
+ disableUpdatePerpBidAskTwap: number;
1115
+ pausedOperations: number;
1096
1116
  authority: PublicKey;
1097
1117
  ifStakedQuoteAssetAmount: BN;
1098
1118
  delegatePermissions: number;
@@ -1375,8 +1395,8 @@ export type FeeTier = {
1375
1395
  refereeFeeDenominator: number;
1376
1396
  };
1377
1397
  export type OrderFillerRewardStructure = {
1378
- rewardNumerator: BN;
1379
- rewardDenominator: BN;
1398
+ rewardNumerator: number;
1399
+ rewardDenominator: number;
1380
1400
  timeBasedRewardLowerBound: BN;
1381
1401
  };
1382
1402
  export type OracleGuardRails = {
@@ -1409,6 +1429,22 @@ export type PrelaunchOracle = {
1409
1429
  lastUpdateSlot: BN;
1410
1430
  perpMarketIndex: number;
1411
1431
  };
1432
+ export type PrelaunchOracleParams = {
1433
+ perpMarketIndex: number;
1434
+ price: BN | null;
1435
+ maxPrice: BN | null;
1436
+ };
1437
+ export type PythLazerOracle = {
1438
+ price: BN;
1439
+ publishTime: BN;
1440
+ postedSlot: BN;
1441
+ exponent: number;
1442
+ conf: BN;
1443
+ };
1444
+ export type UpdatePerpMarketSummaryStatsParams = {
1445
+ netUnsettledFundingPnl: BN | null;
1446
+ updateAmmSummaryStats: boolean | null;
1447
+ };
1412
1448
  export type MarginCategory = 'Initial' | 'Maintenance';
1413
1449
  export type InsuranceFundStake = {
1414
1450
  costBasis: BN;
@@ -1416,6 +1452,7 @@ export type InsuranceFundStake = {
1416
1452
  authority: PublicKey;
1417
1453
  ifShares: BN;
1418
1454
  ifBase: BN;
1455
+ lastValidTs: BN;
1419
1456
  lastWithdrawRequestShares: BN;
1420
1457
  lastWithdrawRequestValue: BN;
1421
1458
  lastWithdrawRequestTs: BN;
@@ -1489,6 +1526,9 @@ export type SignedMsgUserOrdersAccount = {
1489
1526
  authorityPubkey: PublicKey;
1490
1527
  signedMsgOrderData: SignedMsgOrderId[];
1491
1528
  };
1529
+ export type SignedMsgWsDelegatesAccount = {
1530
+ delegates: PublicKey[];
1531
+ };
1492
1532
  export type RevenueShareAccount = {
1493
1533
  authority: PublicKey;
1494
1534
  totalReferrerRewards: BN;
@@ -1519,8 +1559,23 @@ export type BuilderInfo = {
1519
1559
  maxFeeTenthBps: number;
1520
1560
  padding: number[];
1521
1561
  };
1562
+ export type PerpMarketFeeSweepRecord = {
1563
+ ts: BN;
1564
+ marketIndex: number;
1565
+ ifSwept: BN;
1566
+ protocolSwept: BN;
1567
+ ammProvisionTokenized: BN;
1568
+ };
1569
+ export type ProtocolFeeWithdrawRecord = {
1570
+ ts: BN;
1571
+ marketIndex: number;
1572
+ isPerp: boolean;
1573
+ spotMarketIndex: number;
1574
+ amount: BN;
1575
+ recipientTokenAccount: PublicKey;
1576
+ };
1522
1577
  export type RevenueShareSettleRecord = {
1523
- ts: number;
1578
+ ts: BN;
1524
1579
  builder: PublicKey | null;
1525
1580
  referrer: PublicKey | null;
1526
1581
  feeSettled: BN;
@@ -1583,6 +1638,8 @@ export type LPPoolAccount = {
1583
1638
  bump: number;
1584
1639
  gammaExecution: number;
1585
1640
  xi: number;
1641
+ targetOracleDelayFeeBpsPer10Slots: number;
1642
+ targetPositionDelayFeeBpsPer10Slots: number;
1586
1643
  };
1587
1644
  export type ConstituentSpotBalance = {
1588
1645
  scaledBalance: BN;
@@ -1675,6 +1732,7 @@ export type CacheInfo = {
1675
1732
  marketIndex: number;
1676
1733
  };
1677
1734
  export type AmmCache = {
1735
+ bump: number;
1678
1736
  cache: CacheInfo[];
1679
1737
  };
1680
1738
  export type AccountLiquidatableStatus = {
@@ -1690,4 +1748,12 @@ export declare class TransferFeeAndPnlPoolDirection {
1690
1748
  pnlToFeePool: {};
1691
1749
  };
1692
1750
  }
1751
+ export type TransferFeeAndPnlPoolRecord = {
1752
+ ts: BN;
1753
+ slot: BN;
1754
+ perpMarketIndexWithFeePool: number;
1755
+ perpMarketIndexWithPnlPool: number;
1756
+ direction: TransferFeeAndPnlPoolDirection;
1757
+ amount: BN;
1758
+ };
1693
1759
  export {};
@@ -13,7 +13,11 @@ const PollingSubscription_1 = require("./PollingSubscription");
13
13
  const user_2 = require("../decode/user");
14
14
  const grpcSubscription_1 = require("./grpcSubscription");
15
15
  const events_1 = require("events");
16
- const MAX_USER_ACCOUNT_SIZE_BYTES = 4376;
16
+ // Velocity's User account is 4496 bytes (8-byte discriminator + 4488 struct);
17
+ // drift's was 4376. This caps the zstd-decompressed buffer in defaultSync — if it's
18
+ // smaller than the real account, the buffer is truncated and decodeUser reads past
19
+ // the end (RangeError: ERR_BUFFER_OUT_OF_BOUNDS). Must be >= the on-chain User size.
20
+ const MAX_USER_ACCOUNT_SIZE_BYTES = 4496;
17
21
  class UserMap {
18
22
  /**
19
23
  * Constructs a new UserMap instance.
@@ -22,7 +22,7 @@ exports.configs = {
22
22
  PYTH_ORACLE_MAPPING_ADDRESS: 'BmA9Z6FjioHJPpjT39QazZyhDRUdZy2ezwx4GiDdE2u2',
23
23
  VELOCITY_PROGRAM_ID: exports.VELOCITY_DEVNET_PROGRAM_ID,
24
24
  JIT_PROXY_PROGRAM_ID: 'J1TnP8zvVxbtF5KFp5xRmWuvG9McnhzmBd9XGfCyuxFP',
25
- QUOTE_MINT_ADDRESS: '8FfvSRKMZRDHrCBy142XMUXrKEkXnxDQ4YmJv7xbAw8Q',
25
+ QUOTE_MINT_ADDRESS: 'GqmEqYsy8EyvofDpmtFxK8zhYrgWgNokAtYoduQdL7v6',
26
26
  V2_ALPHA_TICKET_MINT_ADDRESS: 'DeEiGWfCMP9psnLGkxGrBBMEAW5Jv8bBGMN8DCtFRCyB',
27
27
  PERP_MARKETS: perpMarkets_1.DevnetPerpMarkets,
28
28
  SPOT_MARKETS: spotMarkets_1.DevnetSpotMarkets,
@@ -15,7 +15,7 @@ exports.DevnetSpotMarkets = [
15
15
  poolId: 0,
16
16
  oracle: new web3_js_1.PublicKey('Dai8hT1YRBBm5rBSJUSKcdR11psM55LVAkshbypfC4k4'),
17
17
  oracleSource: types_1.OracleSource.PYTH_LAZER_STABLE_COIN,
18
- mint: new web3_js_1.PublicKey('8FfvSRKMZRDHrCBy142XMUXrKEkXnxDQ4YmJv7xbAw8Q'),
18
+ mint: new web3_js_1.PublicKey('GqmEqYsy8EyvofDpmtFxK8zhYrgWgNokAtYoduQdL7v6'),
19
19
  precision: new anchor_1.BN(10).pow(numericConstants_1.SIX),
20
20
  precisionExp: numericConstants_1.SIX,
21
21
  pythLazerId: 8,
@@ -1,5 +1,19 @@
1
1
  import { BN } from '../isomorphic/anchor';
2
+ /**
3
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
4
+ * COMBINED insurance-fund + protocol liquidation fee budget:
5
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
6
+ * on-chain). Pass that sum here to match on-chain sizing; passing
7
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
8
+ */
2
9
  export declare function calculateBaseAssetAmountToCoverMarginShortage(marginShortage: BN, marginRatio: number, liquidationFee: number, ifLiquidationFee: number, oraclePrice: BN, quoteOraclePrice: BN): BN | undefined;
10
+ /**
11
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
12
+ * COMBINED insurance-fund + protocol liquidation fee budget:
13
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
14
+ * on-chain). Pass that sum here to match on-chain sizing; passing
15
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
16
+ */
3
17
  export declare function calculateLiabilityTransferToCoverMarginShortage(marginShortage: BN, assetWeight: number, assetLiquidationMultiplier: number, liabilityWeight: number, liabilityLiquidationMultiplier: number, liabilityDecimals: number, liabilityPrice: BN, ifLiquidationFee: number): BN | undefined;
4
18
  export declare function calculateAssetTransferForLiabilityTransfer(assetAmount: BN, assetLiquidationMultiplier: number, assetDecimals: number, assetPrice: BN, liabilityAmount: BN, liabilityLiquidationMultiplier: number, liabilityDecimals: number, liabilityPrice: BN): BN | undefined;
5
19
  export declare function calculateMaxPctToLiquidate(userLastActiveSlot: BN, userLiquidationMarginFreed: BN, marginShortage: BN, slot: BN, initialPctToLiquidate: BN, liquidationDuration: BN): BN;
@@ -1 +1 @@
1
- {"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["../../../src/math/liquidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAa1C,wBAAgB,6CAA6C,CAC5D,cAAc,EAAE,EAAE,EAClB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,EAAE,EACf,gBAAgB,EAAE,EAAE,GAClB,EAAE,GAAG,SAAS,CAqBhB;AAED,wBAAgB,+CAA+C,CAC9D,cAAc,EAAE,EAAE,EAClB,WAAW,EAAE,MAAM,EACnB,0BAA0B,EAAE,MAAM,EAClC,eAAe,EAAE,MAAM,EACvB,8BAA8B,EAAE,MAAM,EACtC,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,EAAE,EAClB,gBAAgB,EAAE,MAAM,GACtB,EAAE,GAAG,SAAS,CA8ChB;AAED,wBAAgB,0CAA0C,CACzD,WAAW,EAAE,EAAE,EACf,0BAA0B,EAAE,MAAM,EAClC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,EAAE,EACd,eAAe,EAAE,EAAE,EACnB,8BAA8B,EAAE,MAAM,EACtC,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,EAAE,GAChB,EAAE,GAAG,SAAS,CAkDhB;AAED,wBAAgB,0BAA0B,CACzC,kBAAkB,EAAE,EAAE,EACtB,0BAA0B,EAAE,EAAE,EAC9B,cAAc,EAAE,EAAE,EAClB,IAAI,EAAE,EAAE,EACR,qBAAqB,EAAE,EAAE,EACzB,mBAAmB,EAAE,EAAE,GACrB,EAAE,CA+BJ;AAED,wBAAgB,iBAAiB,CAChC,sCAAsC,EAAE,EAAE,EAC1C,0BAA0B,EAAE,EAAE,GAC5B,EAAE,CAIJ"}
1
+ {"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["../../../src/math/liquidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAa1C;;;;;;GAMG;AACH,wBAAgB,6CAA6C,CAC5D,cAAc,EAAE,EAAE,EAClB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,EAAE,EACf,gBAAgB,EAAE,EAAE,GAClB,EAAE,GAAG,SAAS,CAqBhB;AAED;;;;;;GAMG;AACH,wBAAgB,+CAA+C,CAC9D,cAAc,EAAE,EAAE,EAClB,WAAW,EAAE,MAAM,EACnB,0BAA0B,EAAE,MAAM,EAClC,eAAe,EAAE,MAAM,EACvB,8BAA8B,EAAE,MAAM,EACtC,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,EAAE,EAClB,gBAAgB,EAAE,MAAM,GACtB,EAAE,GAAG,SAAS,CA8ChB;AAED,wBAAgB,0CAA0C,CACzD,WAAW,EAAE,EAAE,EACf,0BAA0B,EAAE,MAAM,EAClC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,EAAE,EACd,eAAe,EAAE,EAAE,EACnB,8BAA8B,EAAE,MAAM,EACtC,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,EAAE,GAChB,EAAE,GAAG,SAAS,CAkDhB;AAED,wBAAgB,0BAA0B,CACzC,kBAAkB,EAAE,EAAE,EACtB,0BAA0B,EAAE,EAAE,EAC9B,cAAc,EAAE,EAAE,EAClB,IAAI,EAAE,EAAE,EACR,qBAAqB,EAAE,EAAE,EACzB,mBAAmB,EAAE,EAAE,GACrB,EAAE,CA+BJ;AAED,wBAAgB,iBAAiB,CAChC,sCAAsC,EAAE,EAAE,EAC1C,0BAA0B,EAAE,EAAE,GAC5B,EAAE,CAIJ"}
@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getMarginShortage = exports.calculateMaxPctToLiquidate = exports.calculateAssetTransferForLiabilityTransfer = exports.calculateLiabilityTransferToCoverMarginShortage = exports.calculateBaseAssetAmountToCoverMarginShortage = void 0;
4
4
  const anchor_1 = require("../isomorphic/anchor");
5
5
  const numericConstants_1 = require("../constants/numericConstants");
6
+ /**
7
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
8
+ * COMBINED insurance-fund + protocol liquidation fee budget:
9
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
10
+ * on-chain). Pass that sum here to match on-chain sizing; passing
11
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
12
+ */
6
13
  function calculateBaseAssetAmountToCoverMarginShortage(marginShortage, marginRatio, liquidationFee, ifLiquidationFee, oraclePrice, quoteOraclePrice) {
7
14
  const marginRatioBN = new anchor_1.BN(marginRatio)
8
15
  .mul(numericConstants_1.LIQUIDATION_FEE_PRECISION)
@@ -20,6 +27,13 @@ function calculateBaseAssetAmountToCoverMarginShortage(marginShortage, marginRat
20
27
  .sub(oraclePrice.mul(new anchor_1.BN(ifLiquidationFee)).div(numericConstants_1.LIQUIDATION_FEE_PRECISION)));
21
28
  }
22
29
  exports.calculateBaseAssetAmountToCoverMarginShortage = calculateBaseAssetAmountToCoverMarginShortage;
30
+ /**
31
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
32
+ * COMBINED insurance-fund + protocol liquidation fee budget:
33
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
34
+ * on-chain). Pass that sum here to match on-chain sizing; passing
35
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
36
+ */
23
37
  function calculateLiabilityTransferToCoverMarginShortage(marginShortage, assetWeight, assetLiquidationMultiplier, liabilityWeight, liabilityLiquidationMultiplier, liabilityDecimals, liabilityPrice, ifLiquidationFee) {
24
38
  if (assetWeight >= liabilityWeight) {
25
39
  // undefined is max
@@ -464,6 +464,8 @@ export type DepositRecord = {
464
464
  depositRecordId: BN;
465
465
  explanation: DepositExplanation;
466
466
  transferUser?: PublicKey;
467
+ signer?: PublicKey;
468
+ userTokenAmountAfter: BN;
467
469
  };
468
470
  export type SpotInterestRecord = {
469
471
  ts: BN;
@@ -551,13 +553,14 @@ export type LiquidationRecord = {
551
553
  marginFreed: BN;
552
554
  liquidationId: number;
553
555
  bankrupt: boolean;
554
- canceledOrderIds: BN[];
556
+ canceledOrderIds: number[];
555
557
  liquidatePerp: LiquidatePerpRecord;
556
558
  liquidateSpot: LiquidateSpotRecord;
557
559
  liquidateBorrowForPerpPnl: LiquidateBorrowForPerpPnlRecord;
558
560
  liquidatePerpPnlForDeposit: LiquidatePerpPnlForDepositRecord;
559
561
  perpBankruptcy: PerpBankruptcyRecord;
560
562
  spotBankruptcy: SpotBankruptcyRecord;
563
+ bitFlags: number;
561
564
  };
562
565
  export declare class LiquidationType {
563
566
  static readonly LIQUIDATE_PERP: {
@@ -584,11 +587,12 @@ export type LiquidatePerpRecord = {
584
587
  oraclePrice: BN;
585
588
  baseAssetAmount: BN;
586
589
  quoteAssetAmount: BN;
587
- userOrderId: BN;
588
- liquidatorOrderId: BN;
590
+ userOrderId: number;
591
+ liquidatorOrderId: number;
589
592
  fillRecordId: BN;
590
593
  liquidatorFee: BN;
591
594
  ifFee: BN;
595
+ protocolFee: BN;
592
596
  };
593
597
  export type LiquidateSpotRecord = {
594
598
  assetMarketIndex: number;
@@ -598,6 +602,7 @@ export type LiquidateSpotRecord = {
598
602
  liabilityPrice: BN;
599
603
  liabilityTransfer: BN;
600
604
  ifFee: BN;
605
+ protocolFee: BN;
601
606
  };
602
607
  export type LiquidateBorrowForPerpPnlRecord = {
603
608
  perpMarketIndex: number;
@@ -691,6 +696,9 @@ export type OrderActionRecord = {
691
696
  takerExistingBaseAssetAmount: BN | null;
692
697
  makerExistingQuoteEntryAmount: BN | null;
693
698
  makerExistingBaseAssetAmount: BN | null;
699
+ triggerPrice: BN | null;
700
+ builderIdx: number | null;
701
+ builderFee: BN | null;
694
702
  };
695
703
  export type SwapRecord = {
696
704
  ts: BN;
@@ -733,8 +741,6 @@ export type LPSwapRecord = {
733
741
  inConstituentIndex: number;
734
742
  outOraclePrice: BN;
735
743
  inOraclePrice: BN;
736
- outMint: PublicKey;
737
- inMint: PublicKey;
738
744
  lastAum: BN;
739
745
  lastAumSlot: BN;
740
746
  inMarketCurrentWeight: BN;
@@ -756,7 +762,6 @@ export type LPMintRedeemRecord = {
756
762
  constituentIndex: number;
757
763
  oraclePrice: BN;
758
764
  mint: PublicKey;
759
- lpMint: PublicKey;
760
765
  lpAmount: BN;
761
766
  lpFee: BN;
762
767
  lpPrice: BN;
@@ -796,6 +801,7 @@ export type LPBorrowLendDepositRecord = {
796
801
  export type StateAccount = {
797
802
  coldAdmin: PublicKey;
798
803
  warmAdmin: PublicKey;
804
+ pauseAdmin: PublicKey;
799
805
  hotAmmCrank: PublicKey;
800
806
  hotLpCache: PublicKey;
801
807
  hotLpSwap: PublicKey;
@@ -832,6 +838,7 @@ export type StateAccount = {
832
838
  liquidationDuration: number;
833
839
  maxInitializeUserFee: number;
834
840
  featureBitFlags: number;
841
+ lpPoolFeatureBitFlags: number;
835
842
  };
836
843
  export type PerpMarketAccount = {
837
844
  status: MarketStatus;
@@ -873,6 +880,7 @@ export type PerpMarketAccount = {
873
880
  feeAdjustment: number;
874
881
  pausedOperations: number;
875
882
  lastFillPrice: BN;
883
+ poolId: number;
876
884
  hedgeConfig: {
877
885
  poolId: number;
878
886
  status: number;
@@ -961,6 +969,7 @@ export type SpotMarketAccount = {
961
969
  maxTokenDeposits: BN;
962
970
  lastInterestTs: BN;
963
971
  lastTwapTs: BN;
972
+ expiryTs: BN;
964
973
  initialAssetWeight: number;
965
974
  maintenanceAssetWeight: number;
966
975
  initialLiabilityWeight: number;
@@ -1019,12 +1028,21 @@ export type AMM = {
1019
1028
  totalMmFee: BN;
1020
1029
  totalFeeMinusDistributions: BN;
1021
1030
  totalFeeWithdrawn: BN;
1031
+ askBaseAssetReserve: BN;
1032
+ askQuoteAssetReserve: BN;
1033
+ bidBaseAssetReserve: BN;
1034
+ bidQuoteAssetReserve: BN;
1022
1035
  lastUpdateSlot: BN;
1023
1036
  netRevenueSinceLastFunding: BN;
1024
1037
  lastCumulativeFundingRateLong: BN;
1025
1038
  lastCumulativeFundingRateShort: BN;
1039
+ lastOracleReservePriceSpreadPct: BN;
1040
+ lastSpreadUpdateSlot: BN;
1026
1041
  baseSpread: number;
1027
1042
  maxSpread: number;
1043
+ longSpread: number;
1044
+ shortSpread: number;
1045
+ referencePriceOffset: number;
1028
1046
  maxFillReserveFraction: number;
1029
1047
  maxSlippageRatio: number;
1030
1048
  curveUpdateIntensity: number;
@@ -1093,6 +1111,8 @@ export type UserStatsAccount = {
1093
1111
  };
1094
1112
  referrer: PublicKey;
1095
1113
  referrerStatus: number;
1114
+ disableUpdatePerpBidAskTwap: number;
1115
+ pausedOperations: number;
1096
1116
  authority: PublicKey;
1097
1117
  ifStakedQuoteAssetAmount: BN;
1098
1118
  delegatePermissions: number;
@@ -1375,8 +1395,8 @@ export type FeeTier = {
1375
1395
  refereeFeeDenominator: number;
1376
1396
  };
1377
1397
  export type OrderFillerRewardStructure = {
1378
- rewardNumerator: BN;
1379
- rewardDenominator: BN;
1398
+ rewardNumerator: number;
1399
+ rewardDenominator: number;
1380
1400
  timeBasedRewardLowerBound: BN;
1381
1401
  };
1382
1402
  export type OracleGuardRails = {
@@ -1409,6 +1429,22 @@ export type PrelaunchOracle = {
1409
1429
  lastUpdateSlot: BN;
1410
1430
  perpMarketIndex: number;
1411
1431
  };
1432
+ export type PrelaunchOracleParams = {
1433
+ perpMarketIndex: number;
1434
+ price: BN | null;
1435
+ maxPrice: BN | null;
1436
+ };
1437
+ export type PythLazerOracle = {
1438
+ price: BN;
1439
+ publishTime: BN;
1440
+ postedSlot: BN;
1441
+ exponent: number;
1442
+ conf: BN;
1443
+ };
1444
+ export type UpdatePerpMarketSummaryStatsParams = {
1445
+ netUnsettledFundingPnl: BN | null;
1446
+ updateAmmSummaryStats: boolean | null;
1447
+ };
1412
1448
  export type MarginCategory = 'Initial' | 'Maintenance';
1413
1449
  export type InsuranceFundStake = {
1414
1450
  costBasis: BN;
@@ -1416,6 +1452,7 @@ export type InsuranceFundStake = {
1416
1452
  authority: PublicKey;
1417
1453
  ifShares: BN;
1418
1454
  ifBase: BN;
1455
+ lastValidTs: BN;
1419
1456
  lastWithdrawRequestShares: BN;
1420
1457
  lastWithdrawRequestValue: BN;
1421
1458
  lastWithdrawRequestTs: BN;
@@ -1489,6 +1526,9 @@ export type SignedMsgUserOrdersAccount = {
1489
1526
  authorityPubkey: PublicKey;
1490
1527
  signedMsgOrderData: SignedMsgOrderId[];
1491
1528
  };
1529
+ export type SignedMsgWsDelegatesAccount = {
1530
+ delegates: PublicKey[];
1531
+ };
1492
1532
  export type RevenueShareAccount = {
1493
1533
  authority: PublicKey;
1494
1534
  totalReferrerRewards: BN;
@@ -1519,8 +1559,23 @@ export type BuilderInfo = {
1519
1559
  maxFeeTenthBps: number;
1520
1560
  padding: number[];
1521
1561
  };
1562
+ export type PerpMarketFeeSweepRecord = {
1563
+ ts: BN;
1564
+ marketIndex: number;
1565
+ ifSwept: BN;
1566
+ protocolSwept: BN;
1567
+ ammProvisionTokenized: BN;
1568
+ };
1569
+ export type ProtocolFeeWithdrawRecord = {
1570
+ ts: BN;
1571
+ marketIndex: number;
1572
+ isPerp: boolean;
1573
+ spotMarketIndex: number;
1574
+ amount: BN;
1575
+ recipientTokenAccount: PublicKey;
1576
+ };
1522
1577
  export type RevenueShareSettleRecord = {
1523
- ts: number;
1578
+ ts: BN;
1524
1579
  builder: PublicKey | null;
1525
1580
  referrer: PublicKey | null;
1526
1581
  feeSettled: BN;
@@ -1583,6 +1638,8 @@ export type LPPoolAccount = {
1583
1638
  bump: number;
1584
1639
  gammaExecution: number;
1585
1640
  xi: number;
1641
+ targetOracleDelayFeeBpsPer10Slots: number;
1642
+ targetPositionDelayFeeBpsPer10Slots: number;
1586
1643
  };
1587
1644
  export type ConstituentSpotBalance = {
1588
1645
  scaledBalance: BN;
@@ -1675,6 +1732,7 @@ export type CacheInfo = {
1675
1732
  marketIndex: number;
1676
1733
  };
1677
1734
  export type AmmCache = {
1735
+ bump: number;
1678
1736
  cache: CacheInfo[];
1679
1737
  };
1680
1738
  export type AccountLiquidatableStatus = {
@@ -1690,5 +1748,13 @@ export declare class TransferFeeAndPnlPoolDirection {
1690
1748
  pnlToFeePool: {};
1691
1749
  };
1692
1750
  }
1751
+ export type TransferFeeAndPnlPoolRecord = {
1752
+ ts: BN;
1753
+ slot: BN;
1754
+ perpMarketIndexWithFeePool: number;
1755
+ perpMarketIndexWithPnlPool: number;
1756
+ direction: TransferFeeAndPnlPoolDirection;
1757
+ amount: BN;
1758
+ };
1693
1759
  export {};
1694
1760
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"userMap.d.ts","sourceRoot":"","sources":["../../../src/userMap/userMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userMap.d.ts","sourceRoot":"","sources":["../../../src/userMap/userMap.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,11 @@ const PollingSubscription_1 = require("./PollingSubscription");
13
13
  const user_2 = require("../decode/user");
14
14
  const grpcSubscription_1 = require("./grpcSubscription");
15
15
  const events_1 = require("events");
16
- const MAX_USER_ACCOUNT_SIZE_BYTES = 4376;
16
+ // Velocity's User account is 4496 bytes (8-byte discriminator + 4488 struct);
17
+ // drift's was 4376. This caps the zstd-decompressed buffer in defaultSync — if it's
18
+ // smaller than the real account, the buffer is truncated and decodeUser reads past
19
+ // the end (RangeError: ERR_BUFFER_OUT_OF_BOUNDS). Must be >= the on-chain User size.
20
+ const MAX_USER_ACCOUNT_SIZE_BYTES = 4496;
17
21
  class UserMap {
18
22
  /**
19
23
  * Constructs a new UserMap instance.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velocity-exchange/sdk",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "module": "./lib/browser/index.js",
package/src/config.ts CHANGED
@@ -73,7 +73,7 @@ export const configs: { [key in VelocityEnv]: VelocityConfig } = {
73
73
  PYTH_ORACLE_MAPPING_ADDRESS: 'BmA9Z6FjioHJPpjT39QazZyhDRUdZy2ezwx4GiDdE2u2',
74
74
  VELOCITY_PROGRAM_ID: VELOCITY_DEVNET_PROGRAM_ID,
75
75
  JIT_PROXY_PROGRAM_ID: 'J1TnP8zvVxbtF5KFp5xRmWuvG9McnhzmBd9XGfCyuxFP',
76
- QUOTE_MINT_ADDRESS: '8FfvSRKMZRDHrCBy142XMUXrKEkXnxDQ4YmJv7xbAw8Q',
76
+ QUOTE_MINT_ADDRESS: 'GqmEqYsy8EyvofDpmtFxK8zhYrgWgNokAtYoduQdL7v6',
77
77
  V2_ALPHA_TICKET_MINT_ADDRESS:
78
78
  'DeEiGWfCMP9psnLGkxGrBBMEAW5Jv8bBGMN8DCtFRCyB',
79
79
  PERP_MARKETS: DevnetPerpMarkets,
@@ -40,7 +40,7 @@ export const DevnetSpotMarkets: SpotMarketConfig[] = [
40
40
  poolId: 0,
41
41
  oracle: new PublicKey('Dai8hT1YRBBm5rBSJUSKcdR11psM55LVAkshbypfC4k4'),
42
42
  oracleSource: OracleSource.PYTH_LAZER_STABLE_COIN,
43
- mint: new PublicKey('8FfvSRKMZRDHrCBy142XMUXrKEkXnxDQ4YmJv7xbAw8Q'),
43
+ mint: new PublicKey('GqmEqYsy8EyvofDpmtFxK8zhYrgWgNokAtYoduQdL7v6'),
44
44
  precision: new BN(10).pow(SIX),
45
45
  precisionExp: SIX,
46
46
  pythLazerId: 8,
@@ -11,6 +11,13 @@ import {
11
11
  ONE,
12
12
  } from '../constants/numericConstants';
13
13
 
14
+ /**
15
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
16
+ * COMBINED insurance-fund + protocol liquidation fee budget:
17
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
18
+ * on-chain). Pass that sum here to match on-chain sizing; passing
19
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
20
+ */
14
21
  export function calculateBaseAssetAmountToCoverMarginShortage(
15
22
  marginShortage: BN,
16
23
  marginRatio: number,
@@ -41,6 +48,13 @@ export function calculateBaseAssetAmountToCoverMarginShortage(
41
48
  );
42
49
  }
43
50
 
51
+ /**
52
+ * @param ifLiquidationFee Since PR#75 the program sizes liquidations against the
53
+ * COMBINED insurance-fund + protocol liquidation fee budget:
54
+ * `market.ifLiquidationFee + market.protocolLiquidationFee` (split IF-first
55
+ * on-chain). Pass that sum here to match on-chain sizing; passing
56
+ * `market.ifLiquidationFee` alone under-sizes the estimate.
57
+ */
44
58
  export function calculateLiabilityTransferToCoverMarginShortage(
45
59
  marginShortage: BN,
46
60
  assetWeight: number,
package/src/types.ts CHANGED
@@ -371,6 +371,8 @@ export type DepositRecord = {
371
371
  depositRecordId: BN;
372
372
  explanation: DepositExplanation;
373
373
  transferUser?: PublicKey;
374
+ signer?: PublicKey;
375
+ userTokenAmountAfter: BN;
374
376
  };
375
377
 
376
378
  export type SpotInterestRecord = {
@@ -465,13 +467,14 @@ export type LiquidationRecord = {
465
467
  marginFreed: BN;
466
468
  liquidationId: number;
467
469
  bankrupt: boolean;
468
- canceledOrderIds: BN[];
470
+ canceledOrderIds: number[];
469
471
  liquidatePerp: LiquidatePerpRecord;
470
472
  liquidateSpot: LiquidateSpotRecord;
471
473
  liquidateBorrowForPerpPnl: LiquidateBorrowForPerpPnlRecord;
472
474
  liquidatePerpPnlForDeposit: LiquidatePerpPnlForDepositRecord;
473
475
  perpBankruptcy: PerpBankruptcyRecord;
474
476
  spotBankruptcy: SpotBankruptcyRecord;
477
+ bitFlags: number;
475
478
  };
476
479
 
477
480
  export class LiquidationType {
@@ -498,11 +501,12 @@ export type LiquidatePerpRecord = {
498
501
  oraclePrice: BN;
499
502
  baseAssetAmount: BN;
500
503
  quoteAssetAmount: BN;
501
- userOrderId: BN;
502
- liquidatorOrderId: BN;
504
+ userOrderId: number;
505
+ liquidatorOrderId: number;
503
506
  fillRecordId: BN;
504
507
  liquidatorFee: BN;
505
508
  ifFee: BN;
509
+ protocolFee: BN;
506
510
  };
507
511
 
508
512
  export type LiquidateSpotRecord = {
@@ -513,6 +517,7 @@ export type LiquidateSpotRecord = {
513
517
  liabilityPrice: BN;
514
518
  liabilityTransfer: BN;
515
519
  ifFee: BN;
520
+ protocolFee: BN;
516
521
  };
517
522
 
518
523
  export type LiquidateBorrowForPerpPnlRecord = {
@@ -615,6 +620,9 @@ export type OrderActionRecord = {
615
620
  takerExistingBaseAssetAmount: BN | null;
616
621
  makerExistingQuoteEntryAmount: BN | null;
617
622
  makerExistingBaseAssetAmount: BN | null;
623
+ triggerPrice: BN | null;
624
+ builderIdx: number | null;
625
+ builderFee: BN | null;
618
626
  };
619
627
 
620
628
  export type SwapRecord = {
@@ -661,8 +669,6 @@ export type LPSwapRecord = {
661
669
  inConstituentIndex: number;
662
670
  outOraclePrice: BN;
663
671
  inOraclePrice: BN;
664
- outMint: PublicKey;
665
- inMint: PublicKey;
666
672
  lastAum: BN;
667
673
  lastAumSlot: BN;
668
674
  inMarketCurrentWeight: BN;
@@ -685,7 +691,6 @@ export type LPMintRedeemRecord = {
685
691
  constituentIndex: number;
686
692
  oraclePrice: BN;
687
693
  mint: PublicKey;
688
- lpMint: PublicKey;
689
694
  lpAmount: BN;
690
695
  lpFee: BN;
691
696
  lpPrice: BN;
@@ -728,6 +733,7 @@ export type LPBorrowLendDepositRecord = {
728
733
  export type StateAccount = {
729
734
  coldAdmin: PublicKey;
730
735
  warmAdmin: PublicKey;
736
+ pauseAdmin: PublicKey;
731
737
  hotAmmCrank: PublicKey;
732
738
  hotLpCache: PublicKey;
733
739
  hotLpSwap: PublicKey;
@@ -764,6 +770,7 @@ export type StateAccount = {
764
770
  liquidationDuration: number;
765
771
  maxInitializeUserFee: number;
766
772
  featureBitFlags: number;
773
+ lpPoolFeatureBitFlags: number;
767
774
  };
768
775
 
769
776
  export type PerpMarketAccount = {
@@ -807,6 +814,7 @@ export type PerpMarketAccount = {
807
814
  pausedOperations: number;
808
815
 
809
816
  lastFillPrice: BN;
817
+ poolId: number;
810
818
 
811
819
  hedgeConfig: {
812
820
  poolId: number;
@@ -908,6 +916,7 @@ export type SpotMarketAccount = {
908
916
 
909
917
  lastInterestTs: BN;
910
918
  lastTwapTs: BN;
919
+ expiryTs: BN;
911
920
  initialAssetWeight: number;
912
921
  maintenanceAssetWeight: number;
913
922
  initialLiabilityWeight: number;
@@ -988,12 +997,21 @@ export type AMM = {
988
997
  totalFeeMinusDistributions: BN;
989
998
  /// @deprecated frozen pre-isolation analytics counter
990
999
  totalFeeWithdrawn: BN;
1000
+ askBaseAssetReserve: BN;
1001
+ askQuoteAssetReserve: BN;
1002
+ bidBaseAssetReserve: BN;
1003
+ bidQuoteAssetReserve: BN;
991
1004
  lastUpdateSlot: BN;
992
1005
  netRevenueSinceLastFunding: BN;
993
1006
  lastCumulativeFundingRateLong: BN;
994
1007
  lastCumulativeFundingRateShort: BN;
1008
+ lastOracleReservePriceSpreadPct: BN;
1009
+ lastSpreadUpdateSlot: BN;
995
1010
  baseSpread: number;
996
1011
  maxSpread: number;
1012
+ longSpread: number;
1013
+ shortSpread: number;
1014
+ referencePriceOffset: number;
997
1015
  maxFillReserveFraction: number;
998
1016
  maxSlippageRatio: number;
999
1017
  curveUpdateIntensity: number;
@@ -1066,6 +1084,8 @@ export type UserStatsAccount = {
1066
1084
  };
1067
1085
  referrer: PublicKey;
1068
1086
  referrerStatus: number;
1087
+ disableUpdatePerpBidAskTwap: number;
1088
+ pausedOperations: number;
1069
1089
  authority: PublicKey;
1070
1090
  ifStakedQuoteAssetAmount: BN;
1071
1091
  delegatePermissions: number;
@@ -1388,8 +1408,8 @@ export type FeeTier = {
1388
1408
  };
1389
1409
 
1390
1410
  export type OrderFillerRewardStructure = {
1391
- rewardNumerator: BN;
1392
- rewardDenominator: BN;
1411
+ rewardNumerator: number;
1412
+ rewardDenominator: number;
1393
1413
  timeBasedRewardLowerBound: BN;
1394
1414
  };
1395
1415
 
@@ -1426,6 +1446,25 @@ export type PrelaunchOracle = {
1426
1446
  perpMarketIndex: number;
1427
1447
  };
1428
1448
 
1449
+ export type PrelaunchOracleParams = {
1450
+ perpMarketIndex: number;
1451
+ price: BN | null;
1452
+ maxPrice: BN | null;
1453
+ };
1454
+
1455
+ export type PythLazerOracle = {
1456
+ price: BN;
1457
+ publishTime: BN;
1458
+ postedSlot: BN;
1459
+ exponent: number;
1460
+ conf: BN;
1461
+ };
1462
+
1463
+ export type UpdatePerpMarketSummaryStatsParams = {
1464
+ netUnsettledFundingPnl: BN | null;
1465
+ updateAmmSummaryStats: boolean | null;
1466
+ };
1467
+
1429
1468
  export type MarginCategory = 'Initial' | 'Maintenance';
1430
1469
 
1431
1470
  export type InsuranceFundStake = {
@@ -1436,6 +1475,7 @@ export type InsuranceFundStake = {
1436
1475
 
1437
1476
  ifShares: BN;
1438
1477
  ifBase: BN;
1478
+ lastValidTs: BN;
1439
1479
 
1440
1480
  lastWithdrawRequestShares: BN;
1441
1481
  lastWithdrawRequestValue: BN;
@@ -1523,6 +1563,10 @@ export type SignedMsgUserOrdersAccount = {
1523
1563
  signedMsgOrderData: SignedMsgOrderId[];
1524
1564
  };
1525
1565
 
1566
+ export type SignedMsgWsDelegatesAccount = {
1567
+ delegates: PublicKey[];
1568
+ };
1569
+
1526
1570
  export type RevenueShareAccount = {
1527
1571
  authority: PublicKey;
1528
1572
  totalReferrerRewards: BN;
@@ -1557,8 +1601,25 @@ export type BuilderInfo = {
1557
1601
  padding: number[];
1558
1602
  };
1559
1603
 
1604
+ export type PerpMarketFeeSweepRecord = {
1605
+ ts: BN;
1606
+ marketIndex: number;
1607
+ ifSwept: BN;
1608
+ protocolSwept: BN;
1609
+ ammProvisionTokenized: BN;
1610
+ };
1611
+
1612
+ export type ProtocolFeeWithdrawRecord = {
1613
+ ts: BN;
1614
+ marketIndex: number;
1615
+ isPerp: boolean;
1616
+ spotMarketIndex: number;
1617
+ amount: BN;
1618
+ recipientTokenAccount: PublicKey;
1619
+ };
1620
+
1560
1621
  export type RevenueShareSettleRecord = {
1561
- ts: number;
1622
+ ts: BN;
1562
1623
  builder: PublicKey | null;
1563
1624
  referrer: PublicKey | null;
1564
1625
  feeSettled: BN;
@@ -1628,6 +1689,8 @@ export type LPPoolAccount = {
1628
1689
  bump: number;
1629
1690
  gammaExecution: number;
1630
1691
  xi: number;
1692
+ targetOracleDelayFeeBpsPer10Slots: number;
1693
+ targetPositionDelayFeeBpsPer10Slots: number;
1631
1694
  };
1632
1695
 
1633
1696
  export type ConstituentSpotBalance = {
@@ -1726,6 +1789,7 @@ export type CacheInfo = {
1726
1789
  };
1727
1790
 
1728
1791
  export type AmmCache = {
1792
+ bump: number;
1729
1793
  cache: CacheInfo[];
1730
1794
  };
1731
1795
 
@@ -1739,3 +1803,12 @@ export class TransferFeeAndPnlPoolDirection {
1739
1803
  static readonly FEE_TO_PNL_POOL = { feeToPnlPool: {} };
1740
1804
  static readonly PNL_TO_FEE_POOL = { pnlToFeePool: {} };
1741
1805
  }
1806
+
1807
+ export type TransferFeeAndPnlPoolRecord = {
1808
+ ts: BN;
1809
+ slot: BN;
1810
+ perpMarketIndexWithFeePool: number;
1811
+ perpMarketIndexWithPnlPool: number;
1812
+ direction: TransferFeeAndPnlPoolDirection;
1813
+ amount: BN;
1814
+ };
@@ -44,7 +44,11 @@ import { grpcSubscription } from './grpcSubscription';
44
44
  import StrictEventEmitter from 'strict-event-emitter-types';
45
45
  import { EventEmitter } from 'events';
46
46
 
47
- const MAX_USER_ACCOUNT_SIZE_BYTES = 4376;
47
+ // Velocity's User account is 4496 bytes (8-byte discriminator + 4488 struct);
48
+ // drift's was 4376. This caps the zstd-decompressed buffer in defaultSync — if it's
49
+ // smaller than the real account, the buffer is truncated and decodeUser reads past
50
+ // the end (RangeError: ERR_BUFFER_OUT_OF_BOUNDS). Must be >= the on-chain User size.
51
+ const MAX_USER_ACCOUNT_SIZE_BYTES = 4496;
48
52
 
49
53
  export interface UserMapInterface {
50
54
  eventEmitter: StrictEventEmitter<EventEmitter, UserEvents>;
@@ -52,9 +52,23 @@ export const mockAMM: AMM = {
52
52
  quoteAssetReserve: new BN(12)
53
53
  .mul(QUOTE_PRECISION)
54
54
  .mul(AMM_TO_QUOTE_PRECISION_RATIO),
55
+ // zero-spread mock: bid/ask reserves mirror the base/quote reserves
56
+ askBaseAssetReserve: new BN(1).mul(BASE_PRECISION),
57
+ askQuoteAssetReserve: new BN(12)
58
+ .mul(QUOTE_PRECISION)
59
+ .mul(AMM_TO_QUOTE_PRECISION_RATIO),
60
+ bidBaseAssetReserve: new BN(1).mul(BASE_PRECISION),
61
+ bidQuoteAssetReserve: new BN(12)
62
+ .mul(QUOTE_PRECISION)
63
+ .mul(AMM_TO_QUOTE_PRECISION_RATIO),
55
64
  sqrtK: new BN(1),
56
65
  pegMultiplier: new BN(1),
57
66
  maxSlippageRatio: 1_000_000,
67
+ lastOracleReservePriceSpreadPct: new BN(0),
68
+ lastSpreadUpdateSlot: new BN(0),
69
+ longSpread: 0,
70
+ shortSpread: 0,
71
+ referencePriceOffset: 0,
58
72
 
59
73
  feePool: {
60
74
  scaledBalance: new BN(0),
@@ -177,6 +191,7 @@ function mockPerpMarketCommon(): Omit<
177
191
  },
178
192
  quoteSpotMarketIndex: 0,
179
193
  feeAdjustment: 0,
194
+ poolId: 0,
180
195
  pausedOperations: 0,
181
196
  hedgeConfig: {
182
197
  poolId: 0,
@@ -285,6 +300,7 @@ export const mockSpotMarkets: Array<SpotMarketAccount> = [
285
300
  borrowBalance: new BN(0),
286
301
  lastInterestTs: new BN(0),
287
302
  lastTwapTs: new BN(0),
303
+ expiryTs: new BN(0),
288
304
  oracle: PublicKey.default,
289
305
  initialAssetWeight: SPOT_MARKET_WEIGHT_PRECISION.toNumber(),
290
306
  maintenanceAssetWeight: SPOT_MARKET_WEIGHT_PRECISION.toNumber(),
@@ -378,6 +394,7 @@ export const mockSpotMarkets: Array<SpotMarketAccount> = [
378
394
  borrowBalance: new BN(0),
379
395
  lastInterestTs: new BN(0),
380
396
  lastTwapTs: new BN(0),
397
+ expiryTs: new BN(0),
381
398
  oracle: PublicKey.default,
382
399
  initialAssetWeight: 0,
383
400
  maintenanceAssetWeight: 0,
@@ -473,6 +490,7 @@ export const mockSpotMarkets: Array<SpotMarketAccount> = [
473
490
  borrowBalance: new BN(0),
474
491
  lastInterestTs: new BN(0),
475
492
  lastTwapTs: new BN(0),
493
+ expiryTs: new BN(0),
476
494
  oracle: PublicKey.default,
477
495
  initialAssetWeight: 0,
478
496
  maintenanceAssetWeight: 0,
@@ -526,6 +544,7 @@ export const mockSpotMarkets: Array<SpotMarketAccount> = [
526
544
  export const mockStateAccount: StateAccount = {
527
545
  coldAdmin: PublicKey.default,
528
546
  warmAdmin: PublicKey.default,
547
+ pauseAdmin: PublicKey.default,
529
548
  hotAmmCrank: PublicKey.default,
530
549
  hotLpCache: PublicKey.default,
531
550
  hotLpSwap: PublicKey.default,
@@ -540,6 +559,7 @@ export const mockStateAccount: StateAccount = {
540
559
  protocolFeeRecipientPerp: PublicKey.default,
541
560
  protocolFeeRecipientSpot: PublicKey.default,
542
561
  featureBitFlags: 0,
562
+ lpPoolFeatureBitFlags: 0,
543
563
  defaultMarketOrderTimeInForce: 0,
544
564
  defaultSpotAuctionDuration: 0,
545
565
  discountMint: PublicKey.default,
@@ -578,8 +598,8 @@ export const mockStateAccount: StateAccount = {
578
598
  },
579
599
  ],
580
600
  fillerRewardStructure: {
581
- rewardNumerator: new BN(0),
582
- rewardDenominator: new BN(0),
601
+ rewardNumerator: 0,
602
+ rewardDenominator: 0,
583
603
  timeBasedRewardLowerBound: new BN(0),
584
604
  },
585
605
  flatFillerFee: new BN(0),
@@ -603,8 +623,8 @@ export const mockStateAccount: StateAccount = {
603
623
  },
604
624
  ],
605
625
  fillerRewardStructure: {
606
- rewardNumerator: new BN(0),
607
- rewardDenominator: new BN(0),
626
+ rewardNumerator: 0,
627
+ rewardDenominator: 0,
608
628
  timeBasedRewardLowerBound: new BN(0),
609
629
  },
610
630
  flatFillerFee: new BN(0),