@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.
- package/lib/browser/adminClient.d.ts +13 -10
- package/lib/browser/adminClient.js +16 -21
- package/lib/browser/decode/user.js +3 -1
- package/lib/browser/equityFloorManager.d.ts +154 -0
- package/lib/browser/equityFloorManager.js +283 -0
- package/lib/browser/idl/velocity.d.ts +85 -10
- package/lib/browser/idl/velocity.json +85 -10
- package/lib/browser/index.d.ts +4 -0
- package/lib/browser/index.js +5 -0
- package/lib/browser/jupiter/jupiterClient.d.ts +31 -27
- package/lib/browser/jupiter/jupiterClient.js +84 -37
- package/lib/browser/math/margin.d.ts +28 -0
- package/lib/browser/math/margin.js +43 -1
- package/lib/browser/math/superStake.d.ts +9 -9
- package/lib/browser/math/superStake.js +8 -8
- package/lib/browser/swap/UnifiedSwapClient.d.ts +38 -76
- package/lib/browser/swap/UnifiedSwapClient.js +53 -110
- package/lib/browser/swap/routeInstructions.d.ts +19 -0
- package/lib/browser/swap/routeInstructions.js +43 -0
- package/lib/browser/swap/types.d.ts +196 -0
- package/lib/browser/swap/types.js +88 -0
- package/lib/browser/titan/titanClient.d.ts +37 -67
- package/lib/browser/titan/titanClient.js +160 -103
- package/lib/browser/types.d.ts +6 -2
- package/lib/browser/types.js +2 -0
- package/lib/browser/user.d.ts +43 -18
- package/lib/browser/user.js +94 -45
- package/lib/browser/velocityClient.d.ts +86 -103
- package/lib/browser/velocityClient.js +157 -298
- package/lib/node/adminClient.d.ts +13 -10
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +16 -21
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +3 -1
- package/lib/node/equityFloorManager.d.ts +155 -0
- package/lib/node/equityFloorManager.d.ts.map +1 -0
- package/lib/node/equityFloorManager.js +283 -0
- package/lib/node/idl/velocity.d.ts +85 -10
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +85 -10
- package/lib/node/index.d.ts +4 -0
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +5 -0
- package/lib/node/jupiter/jupiterClient.d.ts +31 -27
- package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
- package/lib/node/jupiter/jupiterClient.js +84 -37
- package/lib/node/math/margin.d.ts +28 -0
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +43 -1
- package/lib/node/math/superStake.d.ts +9 -9
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +8 -8
- package/lib/node/swap/UnifiedSwapClient.d.ts +38 -76
- package/lib/node/swap/UnifiedSwapClient.d.ts.map +1 -1
- package/lib/node/swap/UnifiedSwapClient.js +53 -110
- package/lib/node/swap/routeInstructions.d.ts +20 -0
- package/lib/node/swap/routeInstructions.d.ts.map +1 -0
- package/lib/node/swap/routeInstructions.js +43 -0
- package/lib/node/swap/types.d.ts +197 -0
- package/lib/node/swap/types.d.ts.map +1 -0
- package/lib/node/swap/types.js +88 -0
- package/lib/node/titan/titanClient.d.ts +37 -67
- package/lib/node/titan/titanClient.d.ts.map +1 -1
- package/lib/node/titan/titanClient.js +160 -103
- package/lib/node/types.d.ts +6 -2
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +2 -0
- package/lib/node/user.d.ts +43 -18
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +94 -45
- package/lib/node/velocityClient.d.ts +86 -103
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +157 -298
- package/package.json +1 -1
package/lib/node/user.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
415
|
-
*
|
|
416
|
-
*
|
|
417
|
-
* of the
|
|
418
|
-
*
|
|
419
|
-
*
|
|
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(
|
|
421
|
+
isBelowEquityFloor(): boolean;
|
|
422
422
|
/**
|
|
423
|
-
*
|
|
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
|
-
*
|
|
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
|
-
|
|
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.
|
package/lib/node/user.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
-
|
|
748
|
-
|
|
749
|
-
|
|
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
|
|
817
|
-
const { totalLiabilityValue } = this.getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, liquidationBuffer, includeOpenOrders, strict
|
|
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
|
|
826
|
-
const { totalAssetValue } = this.getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, undefined, includeOpenOrders, strict
|
|
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
|
|
835
|
-
const { totalAssetValue, totalLiabilityValue } = this.getSpotMarketAssetAndLiabilityValue(marketIndex, marginCategory, undefined, includeOpenOrders, strict
|
|
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
|
|
903
|
-
*
|
|
904
|
-
*
|
|
905
|
-
* of the
|
|
906
|
-
*
|
|
907
|
-
*
|
|
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
|
-
|
|
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.
|
|
938
|
+
return this.getNetUsdValue().lt(this.getBufferedEquityFloor());
|
|
915
939
|
}
|
|
916
940
|
/**
|
|
917
|
-
*
|
|
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
|
-
*
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
1992
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
2067
|
-
const { totalAssetValue: outTotalAssetValueAfter, totalLiabilityValue: outTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(outPositionAfter,
|
|
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
|
-
|
|
2165
|
-
|
|
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,
|
|
2171
|
-
const { totalAssetValue: outTotalAssetValueInitial, totalLiabilityValue: outTotalLiabilityValueInitial, } = this.calculateSpotPositionLeverageContribution(outSpotPosition,
|
|
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,
|
|
2176
|
-
const { totalAssetValue: outTotalAssetValueAfter, totalLiabilityValue: outTotalLiabilityValueAfter, } = this.calculateSpotPositionLeverageContribution(outPositionAfter,
|
|
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
|
|
2384
|
-
//
|
|
2385
|
-
const equityAboveFloor = this.getEquityAboveFloor(
|
|
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
|
-
?
|
|
2974
|
+
? spotMarket.historicalOracleData.lastOraclePriceTwap5Min
|
|
2926
2975
|
: undefined;
|
|
2927
2976
|
const strictOracle = new strictOraclePrice_1.StrictOraclePrice(oraclePriceData.price, twap5);
|
|
2928
2977
|
if (isQuote) {
|