@drift-labs/sdk 2.121.0-beta.23 → 2.121.0-beta.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.121.0-beta.23
1
+ 2.121.0-beta.25
@@ -84,7 +84,7 @@ exports.DevnetSpotMarkets = [
84
84
  marketIndex: 6,
85
85
  poolId: 1,
86
86
  oracle: new web3_js_1.PublicKey('En8hkHLkRe9d9DraYmBTrus518BvmVH448YcvmrFM6Ce'),
87
- oracleSource: __1.OracleSource.PYTH_PULL,
87
+ oracleSource: __1.OracleSource.PYTH_STABLE_COIN_PULL,
88
88
  mint: new web3_js_1.PublicKey('8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2'),
89
89
  precision: new __1.BN(10).pow(numericConstants_1.SIX),
90
90
  precisionExp: numericConstants_1.SIX,
@@ -677,6 +677,32 @@ exports.MainnetSpotMarkets = [
677
677
  pythFeedId: '0x31558e9ccb18c151af6c52bf78afd03098a7aca1b9cf171a65b693b464c2f066',
678
678
  launchTs: 1747155600000,
679
679
  },
680
+ {
681
+ symbol: 'USDC-4',
682
+ marketIndex: 47,
683
+ poolId: 4,
684
+ oracle: new web3_js_1.PublicKey('9VCioxmni2gDLv11qufWzT3RDERhQE4iY5Gf7NTfYyAV'),
685
+ oracleSource: __1.OracleSource.PYTH_LAZER_STABLE_COIN,
686
+ mint: new web3_js_1.PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'),
687
+ precision: numericConstants_1.QUOTE_PRECISION,
688
+ precisionExp: numericConstants_1.QUOTE_PRECISION_EXP,
689
+ pythFeedId: '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',
690
+ pythLazerId: 7,
691
+ launchTs: 1747494165000,
692
+ },
693
+ {
694
+ symbol: 'USDT-4',
695
+ marketIndex: 48,
696
+ poolId: 4,
697
+ oracle: new web3_js_1.PublicKey('JDKJSkxjasBGL3ce1pkrN6tqDzuVUZPWzzkGuyX8m9yN'),
698
+ oracleSource: __1.OracleSource.PYTH_LAZER_STABLE_COIN,
699
+ mint: new web3_js_1.PublicKey('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB'),
700
+ precision: numericConstants_1.QUOTE_PRECISION,
701
+ precisionExp: numericConstants_1.QUOTE_PRECISION_EXP,
702
+ serumMarket: new web3_js_1.PublicKey('B2na8Awyd7cpC59iEU43FagJAPLigr3AP3s38KM982bu'),
703
+ pythFeedId: '0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
704
+ pythLazerId: 8,
705
+ },
680
706
  ];
681
707
  exports.SpotMarkets = {
682
708
  devnet: exports.DevnetSpotMarkets,
@@ -111,7 +111,7 @@ export declare class User {
111
111
  /**
112
112
  * @returns The margin requirement of a certain type (Initial or Maintenance) in USDC. : QUOTE_PRECISION
113
113
  */
114
- getMarginRequirement(marginCategory: MarginCategory, liquidationBuffer?: BN, strict?: boolean, includeOpenOrders?: boolean): BN;
114
+ getMarginRequirement(marginCategory: MarginCategory, liquidationBuffer?: BN, strict?: boolean, includeOpenOrders?: boolean, enteringHighLeverage?: boolean): BN;
115
115
  /**
116
116
  * @returns The initial margin requirement in USDC. : QUOTE_PRECISION
117
117
  */
@@ -165,7 +165,7 @@ export declare class User {
165
165
  * @returns : number (value from [0, 100])
166
166
  */
167
167
  getHealth(): number;
168
- calculateWeightedPerpPositionLiability(perpPosition: PerpPosition, marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean): BN;
168
+ calculateWeightedPerpPositionLiability(perpPosition: PerpPosition, marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean, enteringHighLeverage?: boolean): BN;
169
169
  /**
170
170
  * calculates position value of a single perp market in margin system
171
171
  * @returns : Precision QUOTE_PRECISION
@@ -175,7 +175,7 @@ export declare class User {
175
175
  * calculates sum of position value across all positions in margin system
176
176
  * @returns : Precision QUOTE_PRECISION
177
177
  */
178
- getTotalPerpPositionLiability(marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean): BN;
178
+ getTotalPerpPositionLiability(marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean, enteringHighLeverage?: boolean): BN;
179
179
  /**
180
180
  * calculates position value based on oracle
181
181
  * @returns : Precision QUOTE_PRECISION
@@ -271,9 +271,9 @@ export declare class User {
271
271
  * @param offsetCollateral // allows calculating the liquidation price after this offset collateral is added to the user's account (e.g. : what will the liquidation price be for this position AFTER I deposit $x worth of collateral)
272
272
  * @returns Precision : PRICE_PRECISION
273
273
  */
274
- liquidationPrice(marketIndex: number, positionBaseSizeChange?: BN, estimatedEntryPrice?: BN, marginCategory?: MarginCategory, includeOpenOrders?: boolean, offsetCollateral?: BN): BN;
275
- calculateEntriesEffectOnFreeCollateral(market: PerpMarketAccount, oraclePrice: BN, perpPosition: PerpPosition, positionBaseSizeChange: BN, estimatedEntryPrice: BN, includeOpenOrders: boolean): BN;
276
- calculateFreeCollateralDeltaForPerp(market: PerpMarketAccount, perpPosition: PerpPosition, positionBaseSizeChange: BN, oraclePrice: BN, marginCategory?: MarginCategory, includeOpenOrders?: boolean): BN | undefined;
274
+ liquidationPrice(marketIndex: number, positionBaseSizeChange?: BN, estimatedEntryPrice?: BN, marginCategory?: MarginCategory, includeOpenOrders?: boolean, offsetCollateral?: BN, enteringHighLeverage?: boolean): BN;
275
+ calculateEntriesEffectOnFreeCollateral(market: PerpMarketAccount, oraclePrice: BN, perpPosition: PerpPosition, positionBaseSizeChange: BN, estimatedEntryPrice: BN, includeOpenOrders: boolean, enteringHighLeverage?: boolean): BN;
276
+ calculateFreeCollateralDeltaForPerp(market: PerpMarketAccount, perpPosition: PerpPosition, positionBaseSizeChange: BN, oraclePrice: BN, marginCategory?: MarginCategory, includeOpenOrders?: boolean, enteringHighLeverage?: boolean): BN | undefined;
277
277
  calculateFreeCollateralDeltaForSpot(market: SpotMarketAccount, signedTokenAmount: BN, marginCategory?: MarginCategory): BN;
278
278
  /**
279
279
  * Calculates the estimated liquidation price for a position after closing a quote amount of the position.
@@ -445,8 +445,8 @@ class User {
445
445
  /**
446
446
  * @returns The margin requirement of a certain type (Initial or Maintenance) in USDC. : QUOTE_PRECISION
447
447
  */
448
- getMarginRequirement(marginCategory, liquidationBuffer, strict = false, includeOpenOrders = true) {
449
- return this.getTotalPerpPositionLiability(marginCategory, liquidationBuffer, includeOpenOrders, strict).add(this.getSpotMarketLiabilityValue(undefined, marginCategory, liquidationBuffer, includeOpenOrders, strict));
448
+ getMarginRequirement(marginCategory, liquidationBuffer, strict = false, includeOpenOrders = true, enteringHighLeverage = false) {
449
+ return this.getTotalPerpPositionLiability(marginCategory, liquidationBuffer, includeOpenOrders, strict, enteringHighLeverage).add(this.getSpotMarketLiabilityValue(undefined, marginCategory, liquidationBuffer, includeOpenOrders, strict));
450
450
  }
451
451
  /**
452
452
  * @returns The initial margin requirement in USDC. : QUOTE_PRECISION
@@ -739,7 +739,7 @@ class User {
739
739
  }
740
740
  return health;
741
741
  }
742
- calculateWeightedPerpPositionLiability(perpPosition, marginCategory, liquidationBuffer, includeOpenOrders, strict = false) {
742
+ calculateWeightedPerpPositionLiability(perpPosition, marginCategory, liquidationBuffer, includeOpenOrders, strict = false, enteringHighLeverage = false) {
743
743
  const market = this.driftClient.getPerpMarketAccount(perpPosition.marketIndex);
744
744
  if (perpPosition.lpShares.gt(numericConstants_1.ZERO)) {
745
745
  // is an lp, clone so we dont mutate the position
@@ -761,7 +761,7 @@ class User {
761
761
  liabilityValue = (0, _1.calculatePerpLiabilityValue)(baseAssetAmount, valuationPrice, (0, types_1.isVariant)(market.contractType, 'prediction'));
762
762
  }
763
763
  if (marginCategory) {
764
- let marginRatio = new _1.BN((0, _1.calculateMarketMarginRatio)(market, baseAssetAmount.abs(), marginCategory, this.getUserAccount().maxMarginRatio, this.isHighLeverageMode()));
764
+ let marginRatio = new _1.BN((0, _1.calculateMarketMarginRatio)(market, baseAssetAmount.abs(), marginCategory, this.getUserAccount().maxMarginRatio, this.isHighLeverageMode() || enteringHighLeverage));
765
765
  if (liquidationBuffer !== undefined) {
766
766
  marginRatio = marginRatio.add(liquidationBuffer);
767
767
  }
@@ -807,9 +807,9 @@ class User {
807
807
  * calculates sum of position value across all positions in margin system
808
808
  * @returns : Precision QUOTE_PRECISION
809
809
  */
810
- getTotalPerpPositionLiability(marginCategory, liquidationBuffer, includeOpenOrders, strict = false) {
810
+ getTotalPerpPositionLiability(marginCategory, liquidationBuffer, includeOpenOrders, strict = false, enteringHighLeverage = false) {
811
811
  return this.getActivePerpPositions().reduce((totalPerpValue, perpPosition) => {
812
- const baseAssetValue = this.calculateWeightedPerpPositionLiability(perpPosition, marginCategory, liquidationBuffer, includeOpenOrders, strict);
812
+ const baseAssetValue = this.calculateWeightedPerpPositionLiability(perpPosition, marginCategory, liquidationBuffer, includeOpenOrders, strict, enteringHighLeverage);
813
813
  return totalPerpValue.add(baseAssetValue);
814
814
  }, numericConstants_1.ZERO);
815
815
  }
@@ -1190,9 +1190,9 @@ class User {
1190
1190
  * @param offsetCollateral // allows calculating the liquidation price after this offset collateral is added to the user's account (e.g. : what will the liquidation price be for this position AFTER I deposit $x worth of collateral)
1191
1191
  * @returns Precision : PRICE_PRECISION
1192
1192
  */
1193
- liquidationPrice(marketIndex, positionBaseSizeChange = numericConstants_1.ZERO, estimatedEntryPrice = numericConstants_1.ZERO, marginCategory = 'Maintenance', includeOpenOrders = false, offsetCollateral = numericConstants_1.ZERO) {
1193
+ liquidationPrice(marketIndex, positionBaseSizeChange = numericConstants_1.ZERO, estimatedEntryPrice = numericConstants_1.ZERO, marginCategory = 'Maintenance', includeOpenOrders = false, offsetCollateral = numericConstants_1.ZERO, enteringHighLeverage = false) {
1194
1194
  const totalCollateral = this.getTotalCollateral(marginCategory, false, includeOpenOrders);
1195
- const marginRequirement = this.getMarginRequirement(marginCategory, undefined, false, includeOpenOrders);
1195
+ const marginRequirement = this.getMarginRequirement(marginCategory, undefined, false, includeOpenOrders, enteringHighLeverage);
1196
1196
  let freeCollateral = _1.BN.max(numericConstants_1.ZERO, totalCollateral.sub(marginRequirement)).add(offsetCollateral);
1197
1197
  const oracle = this.driftClient.getPerpMarketAccount(marketIndex).amm.oracle;
1198
1198
  const oraclePrice = this.driftClient.getOracleDataForPerpMarket(marketIndex).price;
@@ -1200,9 +1200,9 @@ class User {
1200
1200
  const currentPerpPosition = this.getPerpPositionWithLPSettle(marketIndex, undefined, true)[0] ||
1201
1201
  this.getEmptyPosition(marketIndex);
1202
1202
  positionBaseSizeChange = (0, _1.standardizeBaseAssetAmount)(positionBaseSizeChange, market.amm.orderStepSize);
1203
- const freeCollateralChangeFromNewPosition = this.calculateEntriesEffectOnFreeCollateral(market, oraclePrice, currentPerpPosition, positionBaseSizeChange, estimatedEntryPrice, includeOpenOrders);
1203
+ const freeCollateralChangeFromNewPosition = this.calculateEntriesEffectOnFreeCollateral(market, oraclePrice, currentPerpPosition, positionBaseSizeChange, estimatedEntryPrice, includeOpenOrders, enteringHighLeverage);
1204
1204
  freeCollateral = freeCollateral.add(freeCollateralChangeFromNewPosition);
1205
- let freeCollateralDelta = this.calculateFreeCollateralDeltaForPerp(market, currentPerpPosition, positionBaseSizeChange, oraclePrice, marginCategory, includeOpenOrders);
1205
+ let freeCollateralDelta = this.calculateFreeCollateralDeltaForPerp(market, currentPerpPosition, positionBaseSizeChange, oraclePrice, marginCategory, includeOpenOrders, enteringHighLeverage);
1206
1206
  if (!freeCollateralDelta) {
1207
1207
  return new _1.BN(-1);
1208
1208
  }
@@ -1235,7 +1235,7 @@ class User {
1235
1235
  }
1236
1236
  return liqPrice;
1237
1237
  }
1238
- calculateEntriesEffectOnFreeCollateral(market, oraclePrice, perpPosition, positionBaseSizeChange, estimatedEntryPrice, includeOpenOrders) {
1238
+ calculateEntriesEffectOnFreeCollateral(market, oraclePrice, perpPosition, positionBaseSizeChange, estimatedEntryPrice, includeOpenOrders, enteringHighLeverage = false) {
1239
1239
  let freeCollateralChange = numericConstants_1.ZERO;
1240
1240
  // update free collateral to account for change in pnl from new position
1241
1241
  if (!estimatedEntryPrice.eq(numericConstants_1.ZERO) && !positionBaseSizeChange.eq(numericConstants_1.ZERO)) {
@@ -1270,7 +1270,7 @@ class User {
1270
1270
  baseAssetAmount = perpPosition.baseAssetAmount;
1271
1271
  liabilityValue = (0, _1.calculatePerpLiabilityValue)(baseAssetAmount, oraclePrice, (0, types_1.isVariant)(market.contractType, 'prediction'));
1272
1272
  }
1273
- const marginRatio = (0, _1.calculateMarketMarginRatio)(market, baseAssetAmount.abs(), 'Maintenance', this.getUserAccount().maxMarginRatio, this.isHighLeverageMode());
1273
+ const marginRatio = (0, _1.calculateMarketMarginRatio)(market, baseAssetAmount.abs(), 'Maintenance', this.getUserAccount().maxMarginRatio, this.isHighLeverageMode() || enteringHighLeverage);
1274
1274
  return liabilityValue.mul(new _1.BN(marginRatio)).div(numericConstants_1.MARGIN_PRECISION);
1275
1275
  };
1276
1276
  const freeCollateralConsumptionBefore = calculateMarginRequirement(perpPosition);
@@ -1279,14 +1279,14 @@ class User {
1279
1279
  const freeCollateralConsumptionAfter = calculateMarginRequirement(perpPositionAfter);
1280
1280
  return freeCollateralChange.sub(freeCollateralConsumptionAfter.sub(freeCollateralConsumptionBefore));
1281
1281
  }
1282
- calculateFreeCollateralDeltaForPerp(market, perpPosition, positionBaseSizeChange, oraclePrice, marginCategory = 'Maintenance', includeOpenOrders = false) {
1282
+ calculateFreeCollateralDeltaForPerp(market, perpPosition, positionBaseSizeChange, oraclePrice, marginCategory = 'Maintenance', includeOpenOrders = false, enteringHighLeverage = false) {
1283
1283
  const baseAssetAmount = includeOpenOrders
1284
1284
  ? (0, margin_1.calculateWorstCaseBaseAssetAmount)(perpPosition, market, oraclePrice)
1285
1285
  : perpPosition.baseAssetAmount;
1286
1286
  // zero if include orders == false
1287
1287
  const orderBaseAssetAmount = baseAssetAmount.sub(perpPosition.baseAssetAmount);
1288
1288
  const proposedBaseAssetAmount = baseAssetAmount.add(positionBaseSizeChange);
1289
- const marginRatio = (0, _1.calculateMarketMarginRatio)(market, proposedBaseAssetAmount.abs(), marginCategory, this.getUserAccount().maxMarginRatio, this.isHighLeverageMode());
1289
+ const marginRatio = (0, _1.calculateMarketMarginRatio)(market, proposedBaseAssetAmount.abs(), marginCategory, this.getUserAccount().maxMarginRatio, this.isHighLeverageMode() || enteringHighLeverage);
1290
1290
  const marginRatioQuotePrecision = new _1.BN(marginRatio)
1291
1291
  .mul(numericConstants_1.QUOTE_PRECISION)
1292
1292
  .div(numericConstants_1.MARGIN_PRECISION);
@@ -1 +1 @@
1
- {"version":3,"file":"spotMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/spotMarkets.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAYjD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,EAAE,CAAC;IACd,YAAY,EAAE,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EA+F/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAmpBhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,gBAAgB,EAAE;CAGhE,CAAC"}
1
+ {"version":3,"file":"spotMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/spotMarkets.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAYjD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,EAAE,CAAC;IACd,YAAY,EAAE,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EA+F/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EA+qBhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,gBAAgB,EAAE;CAGhE,CAAC"}
@@ -84,7 +84,7 @@ exports.DevnetSpotMarkets = [
84
84
  marketIndex: 6,
85
85
  poolId: 1,
86
86
  oracle: new web3_js_1.PublicKey('En8hkHLkRe9d9DraYmBTrus518BvmVH448YcvmrFM6Ce'),
87
- oracleSource: __1.OracleSource.PYTH_PULL,
87
+ oracleSource: __1.OracleSource.PYTH_STABLE_COIN_PULL,
88
88
  mint: new web3_js_1.PublicKey('8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2'),
89
89
  precision: new __1.BN(10).pow(numericConstants_1.SIX),
90
90
  precisionExp: numericConstants_1.SIX,
@@ -677,6 +677,32 @@ exports.MainnetSpotMarkets = [
677
677
  pythFeedId: '0x31558e9ccb18c151af6c52bf78afd03098a7aca1b9cf171a65b693b464c2f066',
678
678
  launchTs: 1747155600000,
679
679
  },
680
+ {
681
+ symbol: 'USDC-4',
682
+ marketIndex: 47,
683
+ poolId: 4,
684
+ oracle: new web3_js_1.PublicKey('9VCioxmni2gDLv11qufWzT3RDERhQE4iY5Gf7NTfYyAV'),
685
+ oracleSource: __1.OracleSource.PYTH_LAZER_STABLE_COIN,
686
+ mint: new web3_js_1.PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'),
687
+ precision: numericConstants_1.QUOTE_PRECISION,
688
+ precisionExp: numericConstants_1.QUOTE_PRECISION_EXP,
689
+ pythFeedId: '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',
690
+ pythLazerId: 7,
691
+ launchTs: 1747494165000,
692
+ },
693
+ {
694
+ symbol: 'USDT-4',
695
+ marketIndex: 48,
696
+ poolId: 4,
697
+ oracle: new web3_js_1.PublicKey('JDKJSkxjasBGL3ce1pkrN6tqDzuVUZPWzzkGuyX8m9yN'),
698
+ oracleSource: __1.OracleSource.PYTH_LAZER_STABLE_COIN,
699
+ mint: new web3_js_1.PublicKey('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB'),
700
+ precision: numericConstants_1.QUOTE_PRECISION,
701
+ precisionExp: numericConstants_1.QUOTE_PRECISION_EXP,
702
+ serumMarket: new web3_js_1.PublicKey('B2na8Awyd7cpC59iEU43FagJAPLigr3AP3s38KM982bu'),
703
+ pythFeedId: '0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
704
+ pythLazerId: 8,
705
+ },
680
706
  ];
681
707
  exports.SpotMarkets = {
682
708
  devnet: exports.DevnetSpotMarkets,
@@ -111,7 +111,7 @@ export declare class User {
111
111
  /**
112
112
  * @returns The margin requirement of a certain type (Initial or Maintenance) in USDC. : QUOTE_PRECISION
113
113
  */
114
- getMarginRequirement(marginCategory: MarginCategory, liquidationBuffer?: BN, strict?: boolean, includeOpenOrders?: boolean): BN;
114
+ getMarginRequirement(marginCategory: MarginCategory, liquidationBuffer?: BN, strict?: boolean, includeOpenOrders?: boolean, enteringHighLeverage?: boolean): BN;
115
115
  /**
116
116
  * @returns The initial margin requirement in USDC. : QUOTE_PRECISION
117
117
  */
@@ -165,7 +165,7 @@ export declare class User {
165
165
  * @returns : number (value from [0, 100])
166
166
  */
167
167
  getHealth(): number;
168
- calculateWeightedPerpPositionLiability(perpPosition: PerpPosition, marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean): BN;
168
+ calculateWeightedPerpPositionLiability(perpPosition: PerpPosition, marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean, enteringHighLeverage?: boolean): BN;
169
169
  /**
170
170
  * calculates position value of a single perp market in margin system
171
171
  * @returns : Precision QUOTE_PRECISION
@@ -175,7 +175,7 @@ export declare class User {
175
175
  * calculates sum of position value across all positions in margin system
176
176
  * @returns : Precision QUOTE_PRECISION
177
177
  */
178
- getTotalPerpPositionLiability(marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean): BN;
178
+ getTotalPerpPositionLiability(marginCategory?: MarginCategory, liquidationBuffer?: BN, includeOpenOrders?: boolean, strict?: boolean, enteringHighLeverage?: boolean): BN;
179
179
  /**
180
180
  * calculates position value based on oracle
181
181
  * @returns : Precision QUOTE_PRECISION
@@ -271,9 +271,9 @@ export declare class User {
271
271
  * @param offsetCollateral // allows calculating the liquidation price after this offset collateral is added to the user's account (e.g. : what will the liquidation price be for this position AFTER I deposit $x worth of collateral)
272
272
  * @returns Precision : PRICE_PRECISION
273
273
  */
274
- liquidationPrice(marketIndex: number, positionBaseSizeChange?: BN, estimatedEntryPrice?: BN, marginCategory?: MarginCategory, includeOpenOrders?: boolean, offsetCollateral?: BN): BN;
275
- calculateEntriesEffectOnFreeCollateral(market: PerpMarketAccount, oraclePrice: BN, perpPosition: PerpPosition, positionBaseSizeChange: BN, estimatedEntryPrice: BN, includeOpenOrders: boolean): BN;
276
- calculateFreeCollateralDeltaForPerp(market: PerpMarketAccount, perpPosition: PerpPosition, positionBaseSizeChange: BN, oraclePrice: BN, marginCategory?: MarginCategory, includeOpenOrders?: boolean): BN | undefined;
274
+ liquidationPrice(marketIndex: number, positionBaseSizeChange?: BN, estimatedEntryPrice?: BN, marginCategory?: MarginCategory, includeOpenOrders?: boolean, offsetCollateral?: BN, enteringHighLeverage?: boolean): BN;
275
+ calculateEntriesEffectOnFreeCollateral(market: PerpMarketAccount, oraclePrice: BN, perpPosition: PerpPosition, positionBaseSizeChange: BN, estimatedEntryPrice: BN, includeOpenOrders: boolean, enteringHighLeverage?: boolean): BN;
276
+ calculateFreeCollateralDeltaForPerp(market: PerpMarketAccount, perpPosition: PerpPosition, positionBaseSizeChange: BN, oraclePrice: BN, marginCategory?: MarginCategory, includeOpenOrders?: boolean, enteringHighLeverage?: boolean): BN | undefined;
277
277
  calculateFreeCollateralDeltaForSpot(market: SpotMarketAccount, signedTokenAmount: BN, marginCategory?: MarginCategory): BN;
278
278
  /**
279
279
  * Calculates the estimated liquidation price for a position after closing a quote amount of the position.
@@ -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
@@ -445,8 +445,8 @@ class User {
445
445
  /**
446
446
  * @returns The margin requirement of a certain type (Initial or Maintenance) in USDC. : QUOTE_PRECISION
447
447
  */
448
- getMarginRequirement(marginCategory, liquidationBuffer, strict = false, includeOpenOrders = true) {
449
- return this.getTotalPerpPositionLiability(marginCategory, liquidationBuffer, includeOpenOrders, strict).add(this.getSpotMarketLiabilityValue(undefined, marginCategory, liquidationBuffer, includeOpenOrders, strict));
448
+ getMarginRequirement(marginCategory, liquidationBuffer, strict = false, includeOpenOrders = true, enteringHighLeverage = false) {
449
+ return this.getTotalPerpPositionLiability(marginCategory, liquidationBuffer, includeOpenOrders, strict, enteringHighLeverage).add(this.getSpotMarketLiabilityValue(undefined, marginCategory, liquidationBuffer, includeOpenOrders, strict));
450
450
  }
451
451
  /**
452
452
  * @returns The initial margin requirement in USDC. : QUOTE_PRECISION
@@ -739,7 +739,7 @@ class User {
739
739
  }
740
740
  return health;
741
741
  }
742
- calculateWeightedPerpPositionLiability(perpPosition, marginCategory, liquidationBuffer, includeOpenOrders, strict = false) {
742
+ calculateWeightedPerpPositionLiability(perpPosition, marginCategory, liquidationBuffer, includeOpenOrders, strict = false, enteringHighLeverage = false) {
743
743
  const market = this.driftClient.getPerpMarketAccount(perpPosition.marketIndex);
744
744
  if (perpPosition.lpShares.gt(numericConstants_1.ZERO)) {
745
745
  // is an lp, clone so we dont mutate the position
@@ -761,7 +761,7 @@ class User {
761
761
  liabilityValue = (0, _1.calculatePerpLiabilityValue)(baseAssetAmount, valuationPrice, (0, types_1.isVariant)(market.contractType, 'prediction'));
762
762
  }
763
763
  if (marginCategory) {
764
- let marginRatio = new _1.BN((0, _1.calculateMarketMarginRatio)(market, baseAssetAmount.abs(), marginCategory, this.getUserAccount().maxMarginRatio, this.isHighLeverageMode()));
764
+ let marginRatio = new _1.BN((0, _1.calculateMarketMarginRatio)(market, baseAssetAmount.abs(), marginCategory, this.getUserAccount().maxMarginRatio, this.isHighLeverageMode() || enteringHighLeverage));
765
765
  if (liquidationBuffer !== undefined) {
766
766
  marginRatio = marginRatio.add(liquidationBuffer);
767
767
  }
@@ -807,9 +807,9 @@ class User {
807
807
  * calculates sum of position value across all positions in margin system
808
808
  * @returns : Precision QUOTE_PRECISION
809
809
  */
810
- getTotalPerpPositionLiability(marginCategory, liquidationBuffer, includeOpenOrders, strict = false) {
810
+ getTotalPerpPositionLiability(marginCategory, liquidationBuffer, includeOpenOrders, strict = false, enteringHighLeverage = false) {
811
811
  return this.getActivePerpPositions().reduce((totalPerpValue, perpPosition) => {
812
- const baseAssetValue = this.calculateWeightedPerpPositionLiability(perpPosition, marginCategory, liquidationBuffer, includeOpenOrders, strict);
812
+ const baseAssetValue = this.calculateWeightedPerpPositionLiability(perpPosition, marginCategory, liquidationBuffer, includeOpenOrders, strict, enteringHighLeverage);
813
813
  return totalPerpValue.add(baseAssetValue);
814
814
  }, numericConstants_1.ZERO);
815
815
  }
@@ -1190,9 +1190,9 @@ class User {
1190
1190
  * @param offsetCollateral // allows calculating the liquidation price after this offset collateral is added to the user's account (e.g. : what will the liquidation price be for this position AFTER I deposit $x worth of collateral)
1191
1191
  * @returns Precision : PRICE_PRECISION
1192
1192
  */
1193
- liquidationPrice(marketIndex, positionBaseSizeChange = numericConstants_1.ZERO, estimatedEntryPrice = numericConstants_1.ZERO, marginCategory = 'Maintenance', includeOpenOrders = false, offsetCollateral = numericConstants_1.ZERO) {
1193
+ liquidationPrice(marketIndex, positionBaseSizeChange = numericConstants_1.ZERO, estimatedEntryPrice = numericConstants_1.ZERO, marginCategory = 'Maintenance', includeOpenOrders = false, offsetCollateral = numericConstants_1.ZERO, enteringHighLeverage = false) {
1194
1194
  const totalCollateral = this.getTotalCollateral(marginCategory, false, includeOpenOrders);
1195
- const marginRequirement = this.getMarginRequirement(marginCategory, undefined, false, includeOpenOrders);
1195
+ const marginRequirement = this.getMarginRequirement(marginCategory, undefined, false, includeOpenOrders, enteringHighLeverage);
1196
1196
  let freeCollateral = _1.BN.max(numericConstants_1.ZERO, totalCollateral.sub(marginRequirement)).add(offsetCollateral);
1197
1197
  const oracle = this.driftClient.getPerpMarketAccount(marketIndex).amm.oracle;
1198
1198
  const oraclePrice = this.driftClient.getOracleDataForPerpMarket(marketIndex).price;
@@ -1200,9 +1200,9 @@ class User {
1200
1200
  const currentPerpPosition = this.getPerpPositionWithLPSettle(marketIndex, undefined, true)[0] ||
1201
1201
  this.getEmptyPosition(marketIndex);
1202
1202
  positionBaseSizeChange = (0, _1.standardizeBaseAssetAmount)(positionBaseSizeChange, market.amm.orderStepSize);
1203
- const freeCollateralChangeFromNewPosition = this.calculateEntriesEffectOnFreeCollateral(market, oraclePrice, currentPerpPosition, positionBaseSizeChange, estimatedEntryPrice, includeOpenOrders);
1203
+ const freeCollateralChangeFromNewPosition = this.calculateEntriesEffectOnFreeCollateral(market, oraclePrice, currentPerpPosition, positionBaseSizeChange, estimatedEntryPrice, includeOpenOrders, enteringHighLeverage);
1204
1204
  freeCollateral = freeCollateral.add(freeCollateralChangeFromNewPosition);
1205
- let freeCollateralDelta = this.calculateFreeCollateralDeltaForPerp(market, currentPerpPosition, positionBaseSizeChange, oraclePrice, marginCategory, includeOpenOrders);
1205
+ let freeCollateralDelta = this.calculateFreeCollateralDeltaForPerp(market, currentPerpPosition, positionBaseSizeChange, oraclePrice, marginCategory, includeOpenOrders, enteringHighLeverage);
1206
1206
  if (!freeCollateralDelta) {
1207
1207
  return new _1.BN(-1);
1208
1208
  }
@@ -1235,7 +1235,7 @@ class User {
1235
1235
  }
1236
1236
  return liqPrice;
1237
1237
  }
1238
- calculateEntriesEffectOnFreeCollateral(market, oraclePrice, perpPosition, positionBaseSizeChange, estimatedEntryPrice, includeOpenOrders) {
1238
+ calculateEntriesEffectOnFreeCollateral(market, oraclePrice, perpPosition, positionBaseSizeChange, estimatedEntryPrice, includeOpenOrders, enteringHighLeverage = false) {
1239
1239
  let freeCollateralChange = numericConstants_1.ZERO;
1240
1240
  // update free collateral to account for change in pnl from new position
1241
1241
  if (!estimatedEntryPrice.eq(numericConstants_1.ZERO) && !positionBaseSizeChange.eq(numericConstants_1.ZERO)) {
@@ -1270,7 +1270,7 @@ class User {
1270
1270
  baseAssetAmount = perpPosition.baseAssetAmount;
1271
1271
  liabilityValue = (0, _1.calculatePerpLiabilityValue)(baseAssetAmount, oraclePrice, (0, types_1.isVariant)(market.contractType, 'prediction'));
1272
1272
  }
1273
- const marginRatio = (0, _1.calculateMarketMarginRatio)(market, baseAssetAmount.abs(), 'Maintenance', this.getUserAccount().maxMarginRatio, this.isHighLeverageMode());
1273
+ const marginRatio = (0, _1.calculateMarketMarginRatio)(market, baseAssetAmount.abs(), 'Maintenance', this.getUserAccount().maxMarginRatio, this.isHighLeverageMode() || enteringHighLeverage);
1274
1274
  return liabilityValue.mul(new _1.BN(marginRatio)).div(numericConstants_1.MARGIN_PRECISION);
1275
1275
  };
1276
1276
  const freeCollateralConsumptionBefore = calculateMarginRequirement(perpPosition);
@@ -1279,14 +1279,14 @@ class User {
1279
1279
  const freeCollateralConsumptionAfter = calculateMarginRequirement(perpPositionAfter);
1280
1280
  return freeCollateralChange.sub(freeCollateralConsumptionAfter.sub(freeCollateralConsumptionBefore));
1281
1281
  }
1282
- calculateFreeCollateralDeltaForPerp(market, perpPosition, positionBaseSizeChange, oraclePrice, marginCategory = 'Maintenance', includeOpenOrders = false) {
1282
+ calculateFreeCollateralDeltaForPerp(market, perpPosition, positionBaseSizeChange, oraclePrice, marginCategory = 'Maintenance', includeOpenOrders = false, enteringHighLeverage = false) {
1283
1283
  const baseAssetAmount = includeOpenOrders
1284
1284
  ? (0, margin_1.calculateWorstCaseBaseAssetAmount)(perpPosition, market, oraclePrice)
1285
1285
  : perpPosition.baseAssetAmount;
1286
1286
  // zero if include orders == false
1287
1287
  const orderBaseAssetAmount = baseAssetAmount.sub(perpPosition.baseAssetAmount);
1288
1288
  const proposedBaseAssetAmount = baseAssetAmount.add(positionBaseSizeChange);
1289
- const marginRatio = (0, _1.calculateMarketMarginRatio)(market, proposedBaseAssetAmount.abs(), marginCategory, this.getUserAccount().maxMarginRatio, this.isHighLeverageMode());
1289
+ const marginRatio = (0, _1.calculateMarketMarginRatio)(market, proposedBaseAssetAmount.abs(), marginCategory, this.getUserAccount().maxMarginRatio, this.isHighLeverageMode() || enteringHighLeverage);
1290
1290
  const marginRatioQuotePrecision = new _1.BN(marginRatio)
1291
1291
  .mul(numericConstants_1.QUOTE_PRECISION)
1292
1292
  .div(numericConstants_1.MARGIN_PRECISION);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "2.121.0-beta.23",
3
+ "version": "2.121.0-beta.25",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "browser": "./lib/browser/index.js",
@@ -119,7 +119,7 @@ export const DevnetSpotMarkets: SpotMarketConfig[] = [
119
119
  marketIndex: 6,
120
120
  poolId: 1,
121
121
  oracle: new PublicKey('En8hkHLkRe9d9DraYmBTrus518BvmVH448YcvmrFM6Ce'),
122
- oracleSource: OracleSource.PYTH_PULL,
122
+ oracleSource: OracleSource.PYTH_STABLE_COIN_PULL,
123
123
  mint: new PublicKey('8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2'),
124
124
  precision: new BN(10).pow(SIX),
125
125
  precisionExp: SIX,
@@ -788,6 +788,34 @@ export const MainnetSpotMarkets: SpotMarketConfig[] = [
788
788
  '0x31558e9ccb18c151af6c52bf78afd03098a7aca1b9cf171a65b693b464c2f066',
789
789
  launchTs: 1747155600000,
790
790
  },
791
+ {
792
+ symbol: 'USDC-4',
793
+ marketIndex: 47,
794
+ poolId: 4,
795
+ oracle: new PublicKey('9VCioxmni2gDLv11qufWzT3RDERhQE4iY5Gf7NTfYyAV'),
796
+ oracleSource: OracleSource.PYTH_LAZER_STABLE_COIN,
797
+ mint: new PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'),
798
+ precision: QUOTE_PRECISION,
799
+ precisionExp: QUOTE_PRECISION_EXP,
800
+ pythFeedId:
801
+ '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',
802
+ pythLazerId: 7,
803
+ launchTs: 1747494165000,
804
+ },
805
+ {
806
+ symbol: 'USDT-4',
807
+ marketIndex: 48,
808
+ poolId: 4,
809
+ oracle: new PublicKey('JDKJSkxjasBGL3ce1pkrN6tqDzuVUZPWzzkGuyX8m9yN'),
810
+ oracleSource: OracleSource.PYTH_LAZER_STABLE_COIN,
811
+ mint: new PublicKey('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB'),
812
+ precision: QUOTE_PRECISION,
813
+ precisionExp: QUOTE_PRECISION_EXP,
814
+ serumMarket: new PublicKey('B2na8Awyd7cpC59iEU43FagJAPLigr3AP3s38KM982bu'),
815
+ pythFeedId:
816
+ '0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
817
+ pythLazerId: 8,
818
+ },
791
819
  ];
792
820
 
793
821
  export const SpotMarkets: { [key in DriftEnv]: SpotMarketConfig[] } = {
package/src/user.ts CHANGED
@@ -724,13 +724,15 @@ export class User {
724
724
  marginCategory: MarginCategory,
725
725
  liquidationBuffer?: BN,
726
726
  strict = false,
727
- includeOpenOrders = true
727
+ includeOpenOrders = true,
728
+ enteringHighLeverage = false
728
729
  ): BN {
729
730
  return this.getTotalPerpPositionLiability(
730
731
  marginCategory,
731
732
  liquidationBuffer,
732
733
  includeOpenOrders,
733
- strict
734
+ strict,
735
+ enteringHighLeverage
734
736
  ).add(
735
737
  this.getSpotMarketLiabilityValue(
736
738
  undefined,
@@ -1413,7 +1415,8 @@ export class User {
1413
1415
  marginCategory?: MarginCategory,
1414
1416
  liquidationBuffer?: BN,
1415
1417
  includeOpenOrders?: boolean,
1416
- strict = false
1418
+ strict = false,
1419
+ enteringHighLeverage = false
1417
1420
  ): BN {
1418
1421
  const market = this.driftClient.getPerpMarketAccount(
1419
1422
  perpPosition.marketIndex
@@ -1463,7 +1466,7 @@ export class User {
1463
1466
  baseAssetAmount.abs(),
1464
1467
  marginCategory,
1465
1468
  this.getUserAccount().maxMarginRatio,
1466
- this.isHighLeverageMode()
1469
+ this.isHighLeverageMode() || enteringHighLeverage
1467
1470
  )
1468
1471
  );
1469
1472
 
@@ -1550,7 +1553,8 @@ export class User {
1550
1553
  marginCategory?: MarginCategory,
1551
1554
  liquidationBuffer?: BN,
1552
1555
  includeOpenOrders?: boolean,
1553
- strict = false
1556
+ strict = false,
1557
+ enteringHighLeverage = false
1554
1558
  ): BN {
1555
1559
  return this.getActivePerpPositions().reduce(
1556
1560
  (totalPerpValue, perpPosition) => {
@@ -1559,7 +1563,8 @@ export class User {
1559
1563
  marginCategory,
1560
1564
  liquidationBuffer,
1561
1565
  includeOpenOrders,
1562
- strict
1566
+ strict,
1567
+ enteringHighLeverage
1563
1568
  );
1564
1569
  return totalPerpValue.add(baseAssetValue);
1565
1570
  },
@@ -2267,7 +2272,8 @@ export class User {
2267
2272
  estimatedEntryPrice: BN = ZERO,
2268
2273
  marginCategory: MarginCategory = 'Maintenance',
2269
2274
  includeOpenOrders = false,
2270
- offsetCollateral = ZERO
2275
+ offsetCollateral = ZERO,
2276
+ enteringHighLeverage = false
2271
2277
  ): BN {
2272
2278
  const totalCollateral = this.getTotalCollateral(
2273
2279
  marginCategory,
@@ -2278,7 +2284,8 @@ export class User {
2278
2284
  marginCategory,
2279
2285
  undefined,
2280
2286
  false,
2281
- includeOpenOrders
2287
+ includeOpenOrders,
2288
+ enteringHighLeverage
2282
2289
  );
2283
2290
  let freeCollateral = BN.max(
2284
2291
  ZERO,
@@ -2308,7 +2315,8 @@ export class User {
2308
2315
  currentPerpPosition,
2309
2316
  positionBaseSizeChange,
2310
2317
  estimatedEntryPrice,
2311
- includeOpenOrders
2318
+ includeOpenOrders,
2319
+ enteringHighLeverage
2312
2320
  );
2313
2321
 
2314
2322
  freeCollateral = freeCollateral.add(freeCollateralChangeFromNewPosition);
@@ -2319,7 +2327,8 @@ export class User {
2319
2327
  positionBaseSizeChange,
2320
2328
  oraclePrice,
2321
2329
  marginCategory,
2322
- includeOpenOrders
2330
+ includeOpenOrders,
2331
+ enteringHighLeverage
2323
2332
  );
2324
2333
 
2325
2334
  if (!freeCollateralDelta) {
@@ -2388,7 +2397,8 @@ export class User {
2388
2397
  perpPosition: PerpPosition,
2389
2398
  positionBaseSizeChange: BN,
2390
2399
  estimatedEntryPrice: BN,
2391
- includeOpenOrders: boolean
2400
+ includeOpenOrders: boolean,
2401
+ enteringHighLeverage = false
2392
2402
  ): BN {
2393
2403
  let freeCollateralChange = ZERO;
2394
2404
 
@@ -2441,7 +2451,7 @@ export class User {
2441
2451
  baseAssetAmount.abs(),
2442
2452
  'Maintenance',
2443
2453
  this.getUserAccount().maxMarginRatio,
2444
- this.isHighLeverageMode()
2454
+ this.isHighLeverageMode() || enteringHighLeverage
2445
2455
  );
2446
2456
 
2447
2457
  return liabilityValue.mul(new BN(marginRatio)).div(MARGIN_PRECISION);
@@ -2469,7 +2479,8 @@ export class User {
2469
2479
  positionBaseSizeChange: BN,
2470
2480
  oraclePrice: BN,
2471
2481
  marginCategory: MarginCategory = 'Maintenance',
2472
- includeOpenOrders = false
2482
+ includeOpenOrders = false,
2483
+ enteringHighLeverage = false
2473
2484
  ): BN | undefined {
2474
2485
  const baseAssetAmount = includeOpenOrders
2475
2486
  ? calculateWorstCaseBaseAssetAmount(perpPosition, market, oraclePrice)
@@ -2487,8 +2498,9 @@ export class User {
2487
2498
  proposedBaseAssetAmount.abs(),
2488
2499
  marginCategory,
2489
2500
  this.getUserAccount().maxMarginRatio,
2490
- this.isHighLeverageMode()
2501
+ this.isHighLeverageMode() || enteringHighLeverage
2491
2502
  );
2503
+
2492
2504
  const marginRatioQuotePrecision = new BN(marginRatio)
2493
2505
  .mul(QUOTE_PRECISION)
2494
2506
  .div(MARGIN_PRECISION);