@velocity-exchange/sdk 0.8.0 → 0.10.0

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 (74) hide show
  1. package/lib/browser/adminClient.d.ts +13 -10
  2. package/lib/browser/adminClient.js +16 -21
  3. package/lib/browser/decode/user.js +3 -1
  4. package/lib/browser/equityFloorManager.d.ts +154 -0
  5. package/lib/browser/equityFloorManager.js +283 -0
  6. package/lib/browser/idl/velocity.d.ts +85 -10
  7. package/lib/browser/idl/velocity.json +85 -10
  8. package/lib/browser/index.d.ts +4 -0
  9. package/lib/browser/index.js +5 -0
  10. package/lib/browser/jupiter/jupiterClient.d.ts +31 -27
  11. package/lib/browser/jupiter/jupiterClient.js +84 -37
  12. package/lib/browser/math/margin.d.ts +28 -0
  13. package/lib/browser/math/margin.js +43 -1
  14. package/lib/browser/math/superStake.d.ts +9 -9
  15. package/lib/browser/math/superStake.js +8 -8
  16. package/lib/browser/swap/UnifiedSwapClient.d.ts +38 -76
  17. package/lib/browser/swap/UnifiedSwapClient.js +53 -110
  18. package/lib/browser/swap/routeInstructions.d.ts +19 -0
  19. package/lib/browser/swap/routeInstructions.js +43 -0
  20. package/lib/browser/swap/types.d.ts +196 -0
  21. package/lib/browser/swap/types.js +88 -0
  22. package/lib/browser/titan/titanClient.d.ts +37 -67
  23. package/lib/browser/titan/titanClient.js +160 -103
  24. package/lib/browser/types.d.ts +6 -2
  25. package/lib/browser/types.js +2 -0
  26. package/lib/browser/user.d.ts +43 -18
  27. package/lib/browser/user.js +94 -45
  28. package/lib/browser/velocityClient.d.ts +86 -103
  29. package/lib/browser/velocityClient.js +157 -298
  30. package/lib/node/adminClient.d.ts +13 -10
  31. package/lib/node/adminClient.d.ts.map +1 -1
  32. package/lib/node/adminClient.js +16 -21
  33. package/lib/node/decode/user.d.ts.map +1 -1
  34. package/lib/node/decode/user.js +3 -1
  35. package/lib/node/equityFloorManager.d.ts +155 -0
  36. package/lib/node/equityFloorManager.d.ts.map +1 -0
  37. package/lib/node/equityFloorManager.js +283 -0
  38. package/lib/node/idl/velocity.d.ts +85 -10
  39. package/lib/node/idl/velocity.d.ts.map +1 -1
  40. package/lib/node/idl/velocity.json +85 -10
  41. package/lib/node/index.d.ts +4 -0
  42. package/lib/node/index.d.ts.map +1 -1
  43. package/lib/node/index.js +5 -0
  44. package/lib/node/jupiter/jupiterClient.d.ts +31 -27
  45. package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
  46. package/lib/node/jupiter/jupiterClient.js +84 -37
  47. package/lib/node/math/margin.d.ts +28 -0
  48. package/lib/node/math/margin.d.ts.map +1 -1
  49. package/lib/node/math/margin.js +43 -1
  50. package/lib/node/math/superStake.d.ts +9 -9
  51. package/lib/node/math/superStake.d.ts.map +1 -1
  52. package/lib/node/math/superStake.js +8 -8
  53. package/lib/node/swap/UnifiedSwapClient.d.ts +38 -76
  54. package/lib/node/swap/UnifiedSwapClient.d.ts.map +1 -1
  55. package/lib/node/swap/UnifiedSwapClient.js +53 -110
  56. package/lib/node/swap/routeInstructions.d.ts +20 -0
  57. package/lib/node/swap/routeInstructions.d.ts.map +1 -0
  58. package/lib/node/swap/routeInstructions.js +43 -0
  59. package/lib/node/swap/types.d.ts +197 -0
  60. package/lib/node/swap/types.d.ts.map +1 -0
  61. package/lib/node/swap/types.js +88 -0
  62. package/lib/node/titan/titanClient.d.ts +37 -67
  63. package/lib/node/titan/titanClient.d.ts.map +1 -1
  64. package/lib/node/titan/titanClient.js +160 -103
  65. package/lib/node/types.d.ts +6 -2
  66. package/lib/node/types.d.ts.map +1 -1
  67. package/lib/node/types.js +2 -0
  68. package/lib/node/user.d.ts +43 -18
  69. package/lib/node/user.d.ts.map +1 -1
  70. package/lib/node/user.js +94 -45
  71. package/lib/node/velocityClient.d.ts +86 -103
  72. package/lib/node/velocityClient.d.ts.map +1 -1
  73. package/lib/node/velocityClient.js +157 -298
  74. package/package.json +1 -1
@@ -362,24 +362,23 @@ export declare class User {
362
362
  * @param marginCategory `'Initial'` or `'Maintenance'` asset/liability weights; omit for unweighted (100%) values.
363
363
  * @param liquidationBuffer Optional buffer (MARGIN_PRECISION, 1e4) added to the liability weight side.
364
364
  * @param includeOpenOrders If false, ignores open bids/asks and only counts the current balance (faster, less conservative).
365
- * @param strict Use the worse of live oracle price vs 5-minute TWAP. Defaults to false.
366
- * @param now Unix timestamp (seconds) used for TWAP staleness when `strict` is set; defaults to current time.
365
+ * @param strict Use the worse of live oracle price vs the market's stored 5-minute TWAP. Defaults to false.
367
366
  * @returns `{ totalAssetValue, totalLiabilityValue }`, both QUOTE_PRECISION (1e6) and non-negative.
368
367
  */
369
- getSpotMarketAssetAndLiabilityValue(marketIndex?: number, marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean, now?: BN): {
368
+ getSpotMarketAssetAndLiabilityValue(marketIndex?: number, marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean): {
370
369
  totalAssetValue: BN;
371
370
  totalLiabilityValue: BN;
372
371
  };
373
372
  /** Convenience wrapper around `getSpotMarketAssetAndLiabilityValue` returning only `totalLiabilityValue`. See that method for parameter semantics. Returns QUOTE_PRECISION (1e6). */
374
- getSpotMarketLiabilityValue(marketIndex?: number, marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean, now?: BN): BN;
373
+ getSpotMarketLiabilityValue(marketIndex?: number, marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean): BN;
375
374
  /** Thin wrapper around the `math/spotBalance` `getSpotLiabilityValue` helper that supplies the user's `maxMarginRatio`. Returns QUOTE_PRECISION (1e6), negative. */
376
375
  getSpotLiabilityValue(tokenAmount: BN, strictOraclePrice: StrictOraclePrice, spotMarketAccount: SpotMarketAccount, marginCategory?: MarginCategory, liquidationBuffer?: BN): BN;
377
376
  /** Convenience wrapper around `getSpotMarketAssetAndLiabilityValue` returning only `totalAssetValue`. See that method for parameter semantics. Returns QUOTE_PRECISION (1e6), non-negative. */
378
- getSpotMarketAssetValue(marketIndex?: number, marginCategory?: MarginCategory, includeOpenOrders?: boolean, strict?: boolean, now?: BN): BN;
377
+ getSpotMarketAssetValue(marketIndex?: number, marginCategory?: MarginCategory, includeOpenOrders?: boolean, strict?: boolean): BN;
379
378
  /** Thin wrapper around the `math/spotBalance` `getSpotAssetValue` helper that supplies the user's `maxMarginRatio`. Returns QUOTE_PRECISION (1e6), non-negative. */
380
379
  getSpotAssetValue(tokenAmount: BN, strictOraclePrice: StrictOraclePrice, spotMarketAccount: SpotMarketAccount, marginCategory?: MarginCategory): BN;
381
380
  /** Net spot value (`totalAssetValue - totalLiabilityValue`) for a single spot market. See `getSpotMarketAssetAndLiabilityValue` for parameter semantics. Returns QUOTE_PRECISION (1e6), can be negative. */
382
- getSpotPositionValue(marketIndex: number, marginCategory?: MarginCategory, includeOpenOrders?: boolean, strict?: boolean, now?: BN): BN;
381
+ getSpotPositionValue(marketIndex: number, marginCategory?: MarginCategory, includeOpenOrders?: boolean, strict?: boolean): BN;
383
382
  /**
384
383
  * Net spot value (`totalAssetValue - totalLiabilityValue`) across all spot
385
384
  * markets combined.
@@ -411,20 +410,45 @@ export declare class User {
411
410
  */
412
411
  getTotalCollateral(marginCategory?: MarginCategory, strict?: boolean, includeOpenOrders?: boolean, liquidationBuffer?: BN, perpMarketIndex?: number): BN;
413
412
  /**
414
- * True when the account has an admin-set `equityFloor` and its cross-margin
415
- * total collateral is below it. While below the floor, the program rejects
416
- * risk-increasing order placement and fills, withdrawals, and transfers out
417
- * of the account (`EquityBelowFloor`); reduce-only activity stays allowed.
418
- * Mirrors `User::is_below_equity_floor` on-chain.
419
- * @param strict Use TWAP-bounded oracle pricing, matching the withdraw path. Defaults to false.
413
+ * True when the account has an admin-set `equityFloor` and its net equity
414
+ * (`getNetUsdValue`: unweighted assets and perp PnL minus unweighted spot
415
+ * liabilities, at live oracle prices) is below it. This is the trip
416
+ * threshold of the permissionless `tripEquityFloorBreaker`; action gating
417
+ * happens at `equityFloor + equityFloorBuffer` (see
418
+ * `isBelowBufferedEquityFloor`). Mirrors `User::is_below_equity_floor`
419
+ * onchain.
420
420
  */
421
- isBelowEquityFloor(strict?: boolean): boolean;
421
+ isBelowEquityFloor(): boolean;
422
422
  /**
423
- * Cross-margin total collateral in excess of the admin-set `equityFloor`,
423
+ * The equity required by risk-increasing actions:
424
+ * `equityFloor + equityFloorBuffer` (QUOTE_PRECISION). Mirrors
425
+ * `User::buffered_equity_floor` on-chain. Meaningless while
426
+ * `equityFloor` is 0 (the checks are disabled).
427
+ */
428
+ getBufferedEquityFloor(): BN;
429
+ /**
430
+ * True when the account has an admin-set `equityFloor` and its net equity
431
+ * (`getNetUsdValue`) is below `equityFloor + equityFloorBuffer`. While
432
+ * below, the program rejects risk-increasing order placement and fills,
433
+ * withdrawals, and transfers out of the account (`EquityBelowFloor`);
434
+ * reduce-only activity stays allowed. Mirrors
435
+ * `User::is_below_buffered_equity_floor` on-chain.
436
+ */
437
+ isBelowBufferedEquityFloor(): boolean;
438
+ /**
439
+ * Net equity (`getNetUsdValue`) in excess of the admin-set `equityFloor`,
424
440
  * floored at zero (QUOTE_PRECISION). Unbounded (`null`) when no floor is set.
425
- * @param strict Use TWAP-bounded oracle pricing. Defaults to false.
441
+ * This is headroom above the trip threshold; headroom above the level
442
+ * risk-increasing actions must clear is `getEquityAboveBufferedFloor`.
443
+ */
444
+ getEquityAboveFloor(): BN | null;
445
+ /**
446
+ * Net equity (`getNetUsdValue`) in excess of `equityFloor +
447
+ * equityFloorBuffer`, floored at zero (QUOTE_PRECISION). Unbounded
448
+ * (`null`) when no floor is set. When this reaches zero, risk-increasing
449
+ * actions start rejecting.
426
450
  */
427
- getEquityAboveFloor(strict?: boolean): BN | null;
451
+ getEquityAboveBufferedFloor(): BN | null;
428
452
  /**
429
453
  * Builds the liquidation-buffer map to pass into margin calculations while
430
454
  * a liquidation is in progress: `'cross'` is set to the state account's
@@ -768,7 +792,7 @@ export declare class User {
768
792
  * @param outMarketIndex
769
793
  * @param calculateSwap Optional function to simulate the in-to-out conversion (e.g. to model swap fees/slippage); defaults to a 1:1 oracle-price conversion.
770
794
  * @param iterationLimit How many binary-search iterations to run before erroring out. Defaults to 1000.
771
- * @returns `inAmount`/`outAmount` in each market's own token decimals, and the resulting `leverage` (TEN_THOUSAND, 1e4 precision) after the swap.
795
+ * @returns `inAmount`/`outAmount` in each market's own token decimals, and the resulting `leverage` (TEN_THOUSAND, 1e4 precision) after the swap. Sizing is TWAP-bounded to match the program's margin check; `leverage` is marked at the live oracle price so it stays comparable to `getLeverage()`.
772
796
  */
773
797
  getMaxSwapAmount({ inMarketIndex, outMarketIndex, calculateSwap, iterationLimit, }: {
774
798
  inMarketIndex: number;
@@ -796,7 +820,8 @@ export declare class User {
796
820
  totalLiabilityValue: BN;
797
821
  };
798
822
  /**
799
- * Estimates what the user leverage will be after swap
823
+ * Estimates what the user leverage will be after swap, marked at the live
824
+ * oracle price so it stays comparable to `getLeverage()`.
800
825
  * @param inMarketIndex Market being sold/paid from.
801
826
  * @param outMarketIndex Market being bought/received.
802
827
  * @param inAmount Amount removed from `inMarketIndex`, that market's own token decimals.
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/user.ts"],"names":[],"mappings":"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"}
package/lib/node/user.js CHANGED
@@ -724,12 +724,10 @@ class User {
724
724
  * @param marginCategory `'Initial'` or `'Maintenance'` asset/liability weights; omit for unweighted (100%) values.
725
725
  * @param liquidationBuffer Optional buffer (MARGIN_PRECISION, 1e4) added to the liability weight side.
726
726
  * @param includeOpenOrders If false, ignores open bids/asks and only counts the current balance (faster, less conservative).
727
- * @param strict Use the worse of live oracle price vs 5-minute TWAP. Defaults to false.
728
- * @param now Unix timestamp (seconds) used for TWAP staleness when `strict` is set; defaults to current time.
727
+ * @param strict Use the worse of live oracle price vs the market's stored 5-minute TWAP. Defaults to false.
729
728
  * @returns `{ totalAssetValue, totalLiabilityValue }`, both QUOTE_PRECISION (1e6) and non-negative.
730
729
  */
731
- getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, liquidationBuffer, includeOpenOrders, strict = false, now) {
732
- now = now || new anchor_1.BN(new Date().getTime() / 1000);
730
+ getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, liquidationBuffer, includeOpenOrders, strict = false) {
733
731
  let netQuoteValue = numericConstants_1.ZERO;
734
732
  let totalAssetValue = numericConstants_1.ZERO;
735
733
  let totalLiabilityValue = numericConstants_1.ZERO;
@@ -744,11 +742,11 @@ class User {
744
742
  }
745
743
  const spotMarketAccount = this.velocityClient.getSpotMarketAccountOrThrow(spotPosition.marketIndex);
746
744
  const oraclePriceData = this.getOracleDataForSpotMarket(spotPosition.marketIndex);
747
- let twap5min;
748
- if (strict) {
749
- twap5min = (0, oracles_1.calculateLiveOracleTwap)(spotMarketAccount.historicalOracleData, oraclePriceData, now, numericConstants_1.FIVE_MINUTE // 5MIN
750
- );
751
- }
745
+ // mirrors margin.rs: strict mode prices against the market's *stored*
746
+ // 5min TWAP, not a live-projected one
747
+ const twap5min = strict
748
+ ? spotMarketAccount.historicalOracleData.lastOraclePriceTwap5Min
749
+ : undefined;
752
750
  const strictOraclePrice = new strictOraclePrice_1.StrictOraclePrice(oraclePriceData.price, twap5min);
753
751
  if (spotPosition.marketIndex === numericConstants_1.QUOTE_SPOT_MARKET_INDEX &&
754
752
  countForQuote) {
@@ -813,8 +811,8 @@ class User {
813
811
  return { totalAssetValue, totalLiabilityValue };
814
812
  }
815
813
  /** Convenience wrapper around `getSpotMarketAssetAndLiabilityValue` returning only `totalLiabilityValue`. See that method for parameter semantics. Returns QUOTE_PRECISION (1e6). */
816
- getSpotMarketLiabilityValue(marketIndex, marginCategory, liquidationBuffer, includeOpenOrders, strict = false, now) {
817
- const { totalLiabilityValue } = this.getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, liquidationBuffer, includeOpenOrders, strict, now);
814
+ getSpotMarketLiabilityValue(marketIndex, marginCategory, liquidationBuffer, includeOpenOrders, strict = false) {
815
+ const { totalLiabilityValue } = this.getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, liquidationBuffer, includeOpenOrders, strict);
818
816
  return totalLiabilityValue;
819
817
  }
820
818
  /** Thin wrapper around the `math/spotBalance` `getSpotLiabilityValue` helper that supplies the user's `maxMarginRatio`. Returns QUOTE_PRECISION (1e6), negative. */
@@ -822,8 +820,8 @@ class User {
822
820
  return (0, spotBalance_2.getSpotLiabilityValue)(tokenAmount, strictOraclePrice, spotMarketAccount, this.getUserAccountOrThrow().maxMarginRatio, marginCategory, liquidationBuffer);
823
821
  }
824
822
  /** Convenience wrapper around `getSpotMarketAssetAndLiabilityValue` returning only `totalAssetValue`. See that method for parameter semantics. Returns QUOTE_PRECISION (1e6), non-negative. */
825
- getSpotMarketAssetValue(marketIndex, marginCategory, includeOpenOrders, strict = false, now) {
826
- const { totalAssetValue } = this.getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, undefined, includeOpenOrders, strict, now);
823
+ getSpotMarketAssetValue(marketIndex, marginCategory, includeOpenOrders, strict = false) {
824
+ const { totalAssetValue } = this.getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, undefined, includeOpenOrders, strict);
827
825
  return totalAssetValue;
828
826
  }
829
827
  /** Thin wrapper around the `math/spotBalance` `getSpotAssetValue` helper that supplies the user's `maxMarginRatio`. Returns QUOTE_PRECISION (1e6), non-negative. */
@@ -831,8 +829,8 @@ class User {
831
829
  return (0, spotBalance_2.getSpotAssetValue)(tokenAmount, strictOraclePrice, spotMarketAccount, this.getUserAccountOrThrow().maxMarginRatio, marginCategory);
832
830
  }
833
831
  /** Net spot value (`totalAssetValue - totalLiabilityValue`) for a single spot market. See `getSpotMarketAssetAndLiabilityValue` for parameter semantics. Returns QUOTE_PRECISION (1e6), can be negative. */
834
- getSpotPositionValue(marketIndex, marginCategory, includeOpenOrders, strict = false, now) {
835
- const { totalAssetValue, totalLiabilityValue } = this.getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, undefined, includeOpenOrders, strict, now);
832
+ getSpotPositionValue(marketIndex, marginCategory, includeOpenOrders, strict = false) {
833
+ const { totalAssetValue, totalLiabilityValue } = this.getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, undefined, includeOpenOrders, strict);
836
834
  return totalAssetValue.sub(totalLiabilityValue);
837
835
  }
838
836
  /**
@@ -899,31 +897,71 @@ class User {
899
897
  return marginCalc.totalCollateral;
900
898
  }
901
899
  /**
902
- * True when the account has an admin-set `equityFloor` and its cross-margin
903
- * total collateral is below it. While below the floor, the program rejects
904
- * risk-increasing order placement and fills, withdrawals, and transfers out
905
- * of the account (`EquityBelowFloor`); reduce-only activity stays allowed.
906
- * Mirrors `User::is_below_equity_floor` on-chain.
907
- * @param strict Use TWAP-bounded oracle pricing, matching the withdraw path. Defaults to false.
900
+ * True when the account has an admin-set `equityFloor` and its net equity
901
+ * (`getNetUsdValue`: unweighted assets and perp PnL minus unweighted spot
902
+ * liabilities, at live oracle prices) is below it. This is the trip
903
+ * threshold of the permissionless `tripEquityFloorBreaker`; action gating
904
+ * happens at `equityFloor + equityFloorBuffer` (see
905
+ * `isBelowBufferedEquityFloor`). Mirrors `User::is_below_equity_floor`
906
+ * onchain.
907
+ */
908
+ isBelowEquityFloor() {
909
+ const equityFloor = this.getUserAccountOrThrow().equityFloor;
910
+ if (equityFloor.lte(numericConstants_1.ZERO)) {
911
+ return false;
912
+ }
913
+ return this.getNetUsdValue().lt(equityFloor);
914
+ }
915
+ /**
916
+ * The equity required by risk-increasing actions:
917
+ * `equityFloor + equityFloorBuffer` (QUOTE_PRECISION). Mirrors
918
+ * `User::buffered_equity_floor` on-chain. Meaningless while
919
+ * `equityFloor` is 0 (the checks are disabled).
920
+ */
921
+ getBufferedEquityFloor() {
922
+ const userAccount = this.getUserAccountOrThrow();
923
+ return userAccount.equityFloor.add(userAccount.equityFloorBuffer);
924
+ }
925
+ /**
926
+ * True when the account has an admin-set `equityFloor` and its net equity
927
+ * (`getNetUsdValue`) is below `equityFloor + equityFloorBuffer`. While
928
+ * below, the program rejects risk-increasing order placement and fills,
929
+ * withdrawals, and transfers out of the account (`EquityBelowFloor`);
930
+ * reduce-only activity stays allowed. Mirrors
931
+ * `User::is_below_buffered_equity_floor` on-chain.
908
932
  */
909
- isBelowEquityFloor(strict = false) {
933
+ isBelowBufferedEquityFloor() {
910
934
  const equityFloor = this.getUserAccountOrThrow().equityFloor;
911
935
  if (equityFloor.lte(numericConstants_1.ZERO)) {
912
936
  return false;
913
937
  }
914
- return this.getTotalCollateral('Initial', strict).lt(equityFloor);
938
+ return this.getNetUsdValue().lt(this.getBufferedEquityFloor());
915
939
  }
916
940
  /**
917
- * Cross-margin total collateral in excess of the admin-set `equityFloor`,
941
+ * Net equity (`getNetUsdValue`) in excess of the admin-set `equityFloor`,
918
942
  * floored at zero (QUOTE_PRECISION). Unbounded (`null`) when no floor is set.
919
- * @param strict Use TWAP-bounded oracle pricing. Defaults to false.
943
+ * This is headroom above the trip threshold; headroom above the level
944
+ * risk-increasing actions must clear is `getEquityAboveBufferedFloor`.
945
+ */
946
+ getEquityAboveFloor() {
947
+ const equityFloor = this.getUserAccountOrThrow().equityFloor;
948
+ if (equityFloor.lte(numericConstants_1.ZERO)) {
949
+ return null;
950
+ }
951
+ return anchor_1.BN.max(this.getNetUsdValue().sub(equityFloor), numericConstants_1.ZERO);
952
+ }
953
+ /**
954
+ * Net equity (`getNetUsdValue`) in excess of `equityFloor +
955
+ * equityFloorBuffer`, floored at zero (QUOTE_PRECISION). Unbounded
956
+ * (`null`) when no floor is set. When this reaches zero, risk-increasing
957
+ * actions start rejecting.
920
958
  */
921
- getEquityAboveFloor(strict = false) {
959
+ getEquityAboveBufferedFloor() {
922
960
  const equityFloor = this.getUserAccountOrThrow().equityFloor;
923
961
  if (equityFloor.lte(numericConstants_1.ZERO)) {
924
962
  return null;
925
963
  }
926
- return anchor_1.BN.max(this.getTotalCollateral('Initial', strict).sub(equityFloor), numericConstants_1.ZERO);
964
+ return anchor_1.BN.max(this.getNetUsdValue().sub(this.getBufferedEquityFloor()), numericConstants_1.ZERO);
927
965
  }
928
966
  /**
929
967
  * Builds the liquidation-buffer map to pass into margin calculations while
@@ -1979,7 +2017,7 @@ class User {
1979
2017
  * @param outMarketIndex
1980
2018
  * @param calculateSwap Optional function to simulate the in-to-out conversion (e.g. to model swap fees/slippage); defaults to a 1:1 oracle-price conversion.
1981
2019
  * @param iterationLimit How many binary-search iterations to run before erroring out. Defaults to 1000.
1982
- * @returns `inAmount`/`outAmount` in each market's own token decimals, and the resulting `leverage` (TEN_THOUSAND, 1e4 precision) after the swap.
2020
+ * @returns `inAmount`/`outAmount` in each market's own token decimals, and the resulting `leverage` (TEN_THOUSAND, 1e4 precision) after the swap. Sizing is TWAP-bounded to match the program's margin check; `leverage` is marked at the live oracle price so it stays comparable to `getLeverage()`.
1983
2021
  */
1984
2022
  getMaxSwapAmount({ inMarketIndex, outMarketIndex, calculateSwap, iterationLimit = 1000, }) {
1985
2023
  const inMarket = this.velocityClient.getSpotMarketAccountOrThrow(inMarketIndex);
@@ -1988,8 +2026,14 @@ class User {
1988
2026
  const inOraclePrice = inOraclePriceData.price;
1989
2027
  const outOraclePriceData = this.getOracleDataForSpotMarket(outMarketIndex);
1990
2028
  const outOraclePrice = outOraclePriceData.price;
1991
- const inStrictOraclePrice = new strictOraclePrice_1.StrictOraclePrice(inOraclePrice);
1992
- const outStrictOraclePrice = new strictOraclePrice_1.StrictOraclePrice(outOraclePrice);
2029
+ // sizing mirrors handle_end_swap: both legs are priced strictly, against
2030
+ // each market's stored 5min TWAP
2031
+ const inStrictOraclePrice = new strictOraclePrice_1.StrictOraclePrice(inOraclePrice, inMarket.historicalOracleData.lastOraclePriceTwap5Min);
2032
+ const outStrictOraclePrice = new strictOraclePrice_1.StrictOraclePrice(outOraclePrice, outMarket.historicalOracleData.lastOraclePriceTwap5Min);
2033
+ // the returned leverage is a delta on top of getLeverageComponents' live-oracle
2034
+ // baseline, so pricing its legs strictly would mix two bases in one figure
2035
+ const inLeveragePrice = new strictOraclePrice_1.StrictOraclePrice(inOraclePrice);
2036
+ const outLeveragePrice = new strictOraclePrice_1.StrictOraclePrice(outOraclePrice);
1993
2037
  const inPrecision = new anchor_1.BN(10 ** inMarket.decimals);
1994
2038
  const outPrecision = new anchor_1.BN(10 ** outMarket.decimals);
1995
2039
  const inSpotPosition = this.getSpotPosition(inMarketIndex) ||
@@ -1998,9 +2042,9 @@ class User {
1998
2042
  this.getEmptySpotPosition(outMarketIndex);
1999
2043
  const freeCollateral = this.getFreeCollateral();
2000
2044
  const inContributionInitial = this.calculateSpotPositionFreeCollateralContribution(inSpotPosition, inStrictOraclePrice);
2001
- const { totalAssetValue: inTotalAssetValueInitial, totalLiabilityValue: inTotalLiabilityValueInitial, } = this.calculateSpotPositionLeverageContribution(inSpotPosition, inStrictOraclePrice);
2045
+ const { totalAssetValue: inTotalAssetValueInitial, totalLiabilityValue: inTotalLiabilityValueInitial, } = this.calculateSpotPositionLeverageContribution(inSpotPosition, inLeveragePrice);
2002
2046
  const outContributionInitial = this.calculateSpotPositionFreeCollateralContribution(outSpotPosition, outStrictOraclePrice);
2003
- const { totalAssetValue: outTotalAssetValueInitial, totalLiabilityValue: outTotalLiabilityValueInitial, } = this.calculateSpotPositionLeverageContribution(outSpotPosition, outStrictOraclePrice);
2047
+ const { totalAssetValue: outTotalAssetValueInitial, totalLiabilityValue: outTotalLiabilityValueInitial, } = this.calculateSpotPositionLeverageContribution(outSpotPosition, outLeveragePrice);
2004
2048
  const initialContribution = inContributionInitial.add(outContributionInitial);
2005
2049
  const { perpLiabilityValue, perpPnl, spotAssetValue, spotLiabilityValue } = this.getLeverageComponents();
2006
2050
  if (!calculateSwap) {
@@ -2063,8 +2107,8 @@ class User {
2063
2107
  }
2064
2108
  const inPositionAfter = this.cloneAndUpdateSpotPosition(inSpotPosition, inSwap.neg(), inMarket);
2065
2109
  const outPositionAfter = this.cloneAndUpdateSpotPosition(outSpotPosition, outSwap, outMarket);
2066
- const { totalAssetValue: inTotalAssetValueAfter, totalLiabilityValue: inTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(inPositionAfter, inStrictOraclePrice);
2067
- const { totalAssetValue: outTotalAssetValueAfter, totalLiabilityValue: outTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(outPositionAfter, outStrictOraclePrice);
2110
+ const { totalAssetValue: inTotalAssetValueAfter, totalLiabilityValue: inTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(inPositionAfter, inLeveragePrice);
2111
+ const { totalAssetValue: outTotalAssetValueAfter, totalLiabilityValue: outTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(outPositionAfter, outLeveragePrice);
2068
2112
  const spotAssetValueDelta = inTotalAssetValueAfter
2069
2113
  .add(outTotalAssetValueAfter)
2070
2114
  .sub(inTotalAssetValueInitial)
@@ -2147,7 +2191,8 @@ class User {
2147
2191
  };
2148
2192
  }
2149
2193
  /**
2150
- * Estimates what the user leverage will be after swap
2194
+ * Estimates what the user leverage will be after swap, marked at the live
2195
+ * oracle price so it stays comparable to `getLeverage()`.
2151
2196
  * @param inMarketIndex Market being sold/paid from.
2152
2197
  * @param outMarketIndex Market being bought/received.
2153
2198
  * @param inAmount Amount removed from `inMarketIndex`, that market's own token decimals.
@@ -2161,19 +2206,21 @@ class User {
2161
2206
  const inOraclePrice = inOraclePriceData.price;
2162
2207
  const outOraclePriceData = this.getOracleDataForSpotMarket(outMarketIndex);
2163
2208
  const outOraclePrice = outOraclePriceData.price;
2164
- const inStrictOraclePrice = new strictOraclePrice_1.StrictOraclePrice(inOraclePrice);
2165
- const outStrictOraclePrice = new strictOraclePrice_1.StrictOraclePrice(outOraclePrice);
2209
+ // same live-oracle basis as getMaxSwapAmount's leverage legs and as the
2210
+ // getLeverageComponents baseline these deltas are applied to
2211
+ const inLeveragePrice = new strictOraclePrice_1.StrictOraclePrice(inOraclePrice);
2212
+ const outLeveragePrice = new strictOraclePrice_1.StrictOraclePrice(outOraclePrice);
2166
2213
  const inSpotPosition = this.getSpotPosition(inMarketIndex) ||
2167
2214
  this.getEmptySpotPosition(inMarketIndex);
2168
2215
  const outSpotPosition = this.getSpotPosition(outMarketIndex) ||
2169
2216
  this.getEmptySpotPosition(outMarketIndex);
2170
- const { totalAssetValue: inTotalAssetValueInitial, totalLiabilityValue: inTotalLiabilityValueInitial, } = this.calculateSpotPositionLeverageContribution(inSpotPosition, inStrictOraclePrice);
2171
- const { totalAssetValue: outTotalAssetValueInitial, totalLiabilityValue: outTotalLiabilityValueInitial, } = this.calculateSpotPositionLeverageContribution(outSpotPosition, outStrictOraclePrice);
2217
+ const { totalAssetValue: inTotalAssetValueInitial, totalLiabilityValue: inTotalLiabilityValueInitial, } = this.calculateSpotPositionLeverageContribution(inSpotPosition, inLeveragePrice);
2218
+ const { totalAssetValue: outTotalAssetValueInitial, totalLiabilityValue: outTotalLiabilityValueInitial, } = this.calculateSpotPositionLeverageContribution(outSpotPosition, outLeveragePrice);
2172
2219
  const { perpLiabilityValue, perpPnl, spotAssetValue, spotLiabilityValue } = this.getLeverageComponents();
2173
2220
  const inPositionAfter = this.cloneAndUpdateSpotPosition(inSpotPosition, inAmount.abs().neg(), inMarket);
2174
2221
  const outPositionAfter = this.cloneAndUpdateSpotPosition(outSpotPosition, outAmount.abs(), outMarket);
2175
- const { totalAssetValue: inTotalAssetValueAfter, totalLiabilityValue: inTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(inPositionAfter, inStrictOraclePrice);
2176
- const { totalAssetValue: outTotalAssetValueAfter, totalLiabilityValue: outTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(outPositionAfter, outStrictOraclePrice);
2222
+ const { totalAssetValue: inTotalAssetValueAfter, totalLiabilityValue: inTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(inPositionAfter, inLeveragePrice);
2223
+ const { totalAssetValue: outTotalAssetValueAfter, totalLiabilityValue: outTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(outPositionAfter, outLeveragePrice);
2177
2224
  const spotAssetValueDelta = inTotalAssetValueAfter
2178
2225
  .add(outTotalAssetValueAfter)
2179
2226
  .sub(inTotalAssetValueInitial)
@@ -2380,9 +2427,9 @@ class User {
2380
2427
  const spotMarket = this.velocityClient.getSpotMarketAccountOrThrow(marketIndex);
2381
2428
  // eslint-disable-next-line prefer-const
2382
2429
  let { borrowLimit, withdrawLimit } = (0, spotBalance_2.calculateWithdrawLimit)(spotMarket, nowTs);
2383
- // the withdraw path enforces the equity floor on post-withdraw total
2384
- // collateral, so equity above the floor caps free collateral here
2385
- const equityAboveFloor = this.getEquityAboveFloor(true);
2430
+ // the withdraw path enforces the equity floor on post-withdraw net
2431
+ // equity, so equity above the floor caps free collateral here
2432
+ const equityAboveFloor = this.getEquityAboveFloor();
2386
2433
  if (equityAboveFloor !== null && equityAboveFloor.eq(numericConstants_1.ZERO)) {
2387
2434
  return numericConstants_1.ZERO;
2388
2435
  }
@@ -2921,8 +2968,10 @@ class User {
2921
2968
  skipTokenValue = true;
2922
2969
  }
2923
2970
  const oraclePriceData = this.getOracleDataForSpotMarket(spotPosition.marketIndex);
2971
+ // mirrors margin.rs: strict mode prices against the market's *stored*
2972
+ // 5min TWAP, not a live-projected one
2924
2973
  const twap5 = strict
2925
- ? (0, oracles_1.calculateLiveOracleTwap)(spotMarket.historicalOracleData, oraclePriceData, new anchor_1.BN(Math.floor(Date.now() / 1000)), numericConstants_1.FIVE_MINUTE)
2974
+ ? spotMarket.historicalOracleData.lastOraclePriceTwap5Min
2926
2975
  : undefined;
2927
2976
  const strictOracle = new strictOraclePrice_1.StrictOraclePrice(oraclePriceData.price, twap5);
2928
2977
  if (isQuote) {