@drift-labs/sdk-browser 2.132.0-beta.3 → 2.132.0-beta.5

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.132.0-beta.3
1
+ 2.132.0-beta.5
@@ -28,11 +28,11 @@ export declare function calculateNewMarketAfterTrade(baseAssetAmount: BN, direct
28
28
  export declare function calculateOracleReserveSpread(market: PerpMarketAccount, oraclePriceData: OraclePriceData): BN;
29
29
  export declare function calculateOracleSpread(price: BN, oraclePriceData: OraclePriceData): BN;
30
30
  export declare function calculateMarketMarginRatio(market: PerpMarketAccount, size: BN, marginCategory: MarginCategory, customMarginRatio?: number, userHighLeverageMode?: boolean): number;
31
- export declare function calculateUnrealizedAssetWeight(market: PerpMarketAccount, quoteSpotMarket: SpotMarketAccount, unrealizedPnl: BN, marginCategory: MarginCategory, oraclePriceData: OraclePriceData): BN;
31
+ export declare function calculateUnrealizedAssetWeight(market: PerpMarketAccount, quoteSpotMarket: SpotMarketAccount, unrealizedPnl: BN, marginCategory: MarginCategory, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
32
32
  export declare function calculateMarketAvailablePNL(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount): BN;
33
33
  export declare function calculateMarketMaxAvailableInsurance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount): BN;
34
- export declare function calculateNetUserPnl(perpMarket: PerpMarketAccount, oraclePriceData: OraclePriceData): BN;
35
- export declare function calculateNetUserPnlImbalance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount, oraclePriceData: OraclePriceData, applyFeePoolDiscount?: boolean): BN;
34
+ export declare function calculateNetUserPnl(perpMarket: PerpMarketAccount, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
35
+ export declare function calculateNetUserPnlImbalance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount, oraclePriceData: Pick<OraclePriceData, 'price'>, applyFeePoolDiscount?: boolean): BN;
36
36
  export declare function calculateAvailablePerpLiquidity(market: PerpMarketAccount, oraclePriceData: OraclePriceData, dlob: DLOB, slot: number): {
37
37
  bids: BN;
38
38
  asks: BN;
@@ -20,8 +20,8 @@ export declare function calculateBaseAssetValue(market: PerpMarketAccount, userP
20
20
  * @param oraclePriceData
21
21
  * @returns BaseAssetAmount : Precision QUOTE_PRECISION
22
22
  */
23
- export declare function calculatePositionPNL(market: PerpMarketAccount, perpPosition: PerpPosition, withFunding: boolean, oraclePriceData: OraclePriceData): BN;
24
- export declare function calculateClaimablePnl(market: PerpMarketAccount, spotMarket: SpotMarketAccount, perpPosition: PerpPosition, oraclePriceData: OraclePriceData): BN;
23
+ export declare function calculatePositionPNL(market: PerpMarketAccount, perpPosition: PerpPosition, withFunding: boolean, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
24
+ export declare function calculateClaimablePnl(market: PerpMarketAccount, spotMarket: SpotMarketAccount, perpPosition: PerpPosition, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
25
25
  /**
26
26
  * Returns total fees and funding pnl for a position
27
27
  *
@@ -371,10 +371,10 @@ function calculateWithdrawLimit(spotMarket, now) {
371
371
  const lesserDepositAmount = anchor_1.BN.min(marketDepositTokenAmount, depositTokenTwapLive);
372
372
  let maxBorrowTokensTwap;
373
373
  if (spotMarket.poolId == 0) {
374
- maxBorrowTokensTwap = anchor_1.BN.max(spotMarket.withdrawGuardThreshold, anchor_1.BN.min(anchor_1.BN.max(marketDepositTokenAmount.div(new anchor_1.BN(3)), borrowTokenTwapLive.add(lesserDepositAmount.div(new anchor_1.BN(7)))), lesserDepositAmount.sub(lesserDepositAmount.div(new anchor_1.BN(8))))); // main pool between ~15-80% utilization with 10% friction on twap
374
+ maxBorrowTokensTwap = anchor_1.BN.max(spotMarket.withdrawGuardThreshold, anchor_1.BN.min(anchor_1.BN.max(marketDepositTokenAmount.div(new anchor_1.BN(3)), borrowTokenTwapLive.add(lesserDepositAmount.div(new anchor_1.BN(7)))), lesserDepositAmount.sub(lesserDepositAmount.div(new anchor_1.BN(8))))); // main pool between ~30-92.5% utilization with friction on twap in 20% increments
375
375
  }
376
376
  else {
377
- maxBorrowTokensTwap = anchor_1.BN.max(spotMarket.withdrawGuardThreshold, anchor_1.BN.min(anchor_1.BN.max(marketDepositTokenAmount.div(new anchor_1.BN(2)), borrowTokenTwapLive.add(lesserDepositAmount.div(new anchor_1.BN(3)))), lesserDepositAmount.sub(lesserDepositAmount.div(new anchor_1.BN(10))))); // isolated pool between ~50-90% utilization with 33% friction on twap
377
+ maxBorrowTokensTwap = anchor_1.BN.max(spotMarket.withdrawGuardThreshold, anchor_1.BN.min(anchor_1.BN.max(marketDepositTokenAmount.div(new anchor_1.BN(2)), borrowTokenTwapLive.add(lesserDepositAmount.div(new anchor_1.BN(3)))), lesserDepositAmount.sub(lesserDepositAmount.div(new anchor_1.BN(20))))); // isolated pools between 50-95% utilization with friction on twap in 33% increments
378
378
  }
379
379
  const minDepositTokensTwap = depositTokenTwapLive.sub(anchor_1.BN.max(depositTokenTwapLive.div(new anchor_1.BN(4)), anchor_1.BN.min(spotMarket.withdrawGuardThreshold, depositTokenTwapLive)));
380
380
  const { minDepositTokensForUtilization, maxBorrowTokensForUtilization } = calculateTokenUtilizationLimits(marketDepositTokenAmount, marketBorrowTokenAmount, spotMarket);
@@ -28,11 +28,11 @@ export declare function calculateNewMarketAfterTrade(baseAssetAmount: BN, direct
28
28
  export declare function calculateOracleReserveSpread(market: PerpMarketAccount, oraclePriceData: OraclePriceData): BN;
29
29
  export declare function calculateOracleSpread(price: BN, oraclePriceData: OraclePriceData): BN;
30
30
  export declare function calculateMarketMarginRatio(market: PerpMarketAccount, size: BN, marginCategory: MarginCategory, customMarginRatio?: number, userHighLeverageMode?: boolean): number;
31
- export declare function calculateUnrealizedAssetWeight(market: PerpMarketAccount, quoteSpotMarket: SpotMarketAccount, unrealizedPnl: BN, marginCategory: MarginCategory, oraclePriceData: OraclePriceData): BN;
31
+ export declare function calculateUnrealizedAssetWeight(market: PerpMarketAccount, quoteSpotMarket: SpotMarketAccount, unrealizedPnl: BN, marginCategory: MarginCategory, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
32
32
  export declare function calculateMarketAvailablePNL(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount): BN;
33
33
  export declare function calculateMarketMaxAvailableInsurance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount): BN;
34
- export declare function calculateNetUserPnl(perpMarket: PerpMarketAccount, oraclePriceData: OraclePriceData): BN;
35
- export declare function calculateNetUserPnlImbalance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount, oraclePriceData: OraclePriceData, applyFeePoolDiscount?: boolean): BN;
34
+ export declare function calculateNetUserPnl(perpMarket: PerpMarketAccount, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
35
+ export declare function calculateNetUserPnlImbalance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount, oraclePriceData: Pick<OraclePriceData, 'price'>, applyFeePoolDiscount?: boolean): BN;
36
36
  export declare function calculateAvailablePerpLiquidity(market: PerpMarketAccount, oraclePriceData: OraclePriceData, dlob: DLOB, slot: number): {
37
37
  bids: BN;
38
38
  asks: BN;
@@ -1 +1 @@
1
- {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../src/math/market.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EAIjB,MAAM,UAAU,CAAC;AAalB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAYnD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,GAC9B,EAAE,CAOJ;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,GAC9B,EAAE,CASJ;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,GAC9B,EAAE,CASJ;AAED,wBAAgB,4BAA4B,CAC3C,eAAe,EAAE,EAAE,EACnB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,iBAAiB,GACvB,iBAAiB,CAgBnB;AAED,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,GAC9B,EAAE,CAGJ;AAED,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,EAAE,EACT,eAAe,EAAE,eAAe,GAC9B,EAAE,CAEJ;AAED,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,EAAE,EACR,cAAc,EAAE,cAAc,EAC9B,iBAAiB,SAAI,EACrB,oBAAoB,UAAQ,GAC1B,MAAM,CA2CR;AAED,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,iBAAiB,EAClC,aAAa,EAAE,EAAE,EACjB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,GAC9B,EAAE,CA+BJ;AAED,wBAAgB,2BAA2B,CAC1C,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,iBAAiB,GAC3B,EAAE,CAMJ;AAED,wBAAgB,oCAAoC,CACnD,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,iBAAiB,GAC3B,EAAE,CAcJ;AAED,wBAAgB,mBAAmB,CAClC,UAAU,EAAE,iBAAiB,EAC7B,eAAe,EAAE,eAAe,GAC9B,EAAE,CAcJ;AAED,wBAAgB,4BAA4B,CAC3C,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,iBAAiB,EAC7B,eAAe,EAAE,eAAe,EAChC,oBAAoB,UAAO,GACzB,EAAE,CAoBJ;AAED,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,GACV;IAAE,IAAI,EAAE,EAAE,CAAC;IAAC,IAAI,EAAE,EAAE,CAAA;CAAE,CAoCxB;AAED,wBAAgB,oCAAoC,CACnD,MAAM,EAAE,iBAAiB,EACzB,oBAAoB,EAAE,OAAO,GAC3B,MAAM,CAWR;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,EAAE,EACf,GAAG,EAAE,EAAE,EACP,cAAc,EAAE,OAAO,GACrB,EAAE,CA2BJ"}
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../src/math/market.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EAIjB,MAAM,UAAU,CAAC;AAalB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAYnD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,GAC9B,EAAE,CAOJ;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,GAC9B,EAAE,CASJ;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,GAC9B,EAAE,CASJ;AAED,wBAAgB,4BAA4B,CAC3C,eAAe,EAAE,EAAE,EACnB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,iBAAiB,GACvB,iBAAiB,CAgBnB;AAED,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,GAC9B,EAAE,CAGJ;AAED,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,EAAE,EACT,eAAe,EAAE,eAAe,GAC9B,EAAE,CAEJ;AAED,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,EAAE,EACR,cAAc,EAAE,cAAc,EAC9B,iBAAiB,SAAI,EACrB,oBAAoB,UAAQ,GAC1B,MAAM,CA2CR;AAED,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,iBAAiB,EAClC,aAAa,EAAE,EAAE,EACjB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAC7C,EAAE,CA+BJ;AAED,wBAAgB,2BAA2B,CAC1C,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,iBAAiB,GAC3B,EAAE,CAMJ;AAED,wBAAgB,oCAAoC,CACnD,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,iBAAiB,GAC3B,EAAE,CAcJ;AAED,wBAAgB,mBAAmB,CAClC,UAAU,EAAE,iBAAiB,EAC7B,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAC7C,EAAE,CAcJ;AAED,wBAAgB,4BAA4B,CAC3C,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,iBAAiB,EAC7B,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,EAC/C,oBAAoB,UAAO,GACzB,EAAE,CAoBJ;AAED,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,iBAAiB,EACzB,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,GACV;IAAE,IAAI,EAAE,EAAE,CAAC;IAAC,IAAI,EAAE,EAAE,CAAA;CAAE,CAoCxB;AAED,wBAAgB,oCAAoC,CACnD,MAAM,EAAE,iBAAiB,EACzB,oBAAoB,EAAE,OAAO,GAC3B,MAAM,CAWR;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,EAAE,EACf,GAAG,EAAE,EAAE,EACP,cAAc,EAAE,OAAO,GACrB,EAAE,CA2BJ"}
@@ -20,8 +20,8 @@ export declare function calculateBaseAssetValue(market: PerpMarketAccount, userP
20
20
  * @param oraclePriceData
21
21
  * @returns BaseAssetAmount : Precision QUOTE_PRECISION
22
22
  */
23
- export declare function calculatePositionPNL(market: PerpMarketAccount, perpPosition: PerpPosition, withFunding: boolean, oraclePriceData: OraclePriceData): BN;
24
- export declare function calculateClaimablePnl(market: PerpMarketAccount, spotMarket: SpotMarketAccount, perpPosition: PerpPosition, oraclePriceData: OraclePriceData): BN;
23
+ export declare function calculatePositionPNL(market: PerpMarketAccount, perpPosition: PerpPosition, withFunding: boolean, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
24
+ export declare function calculateClaimablePnl(market: PerpMarketAccount, spotMarket: SpotMarketAccount, perpPosition: PerpPosition, oraclePriceData: Pick<OraclePriceData, 'price'>): BN;
25
25
  /**
26
26
  * Returns total fees and funding pnl for a position
27
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAUvC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,MAAM,UAAU,CAAC;AAUlB;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,SAAS,UAAO,EAChB,UAAU,UAAQ,GAChB,EAAE,CAkDJ;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,EAC1B,WAAW,SAAQ,EACnB,eAAe,EAAE,eAAe,GAC9B,EAAE,CAyBJ;AAED,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,GAC9B,EAAE,CAyBJ;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,UAAO,GACrB,EAAE,CAeJ;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,GACxB,EAAE,CAoBJ;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,GACxB,EAAE,CAEJ;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAOnE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAUtE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAUlE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,YAAY,EAAE,YAAY,EAC1B,iBAAiB,UAAQ,GACvB,EAAE,CAWJ;AAED,wBAAgB,oBAAoB,CACnC,YAAY,EAAE,YAAY,GACxB,iBAAiB,CAInB;AAED,wBAAgB,wBAAwB,CACvC,YAAY,EAAE,YAAY,GACxB,iBAAiB,CAInB;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEnE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAM7D"}
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAUvC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,MAAM,UAAU,CAAC;AAUlB;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,SAAS,UAAO,EAChB,UAAU,UAAQ,GAChB,EAAE,CAkDJ;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,EAC1B,WAAW,SAAQ,EACnB,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAC7C,EAAE,CAyBJ;AAED,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAC7C,EAAE,CAyBJ;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,UAAO,GACrB,EAAE,CAeJ;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,GACxB,EAAE,CAoBJ;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,YAAY,GACxB,EAAE,CAEJ;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAOnE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAUtE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,EAAE,CAUlE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,YAAY,EAAE,YAAY,EAC1B,iBAAiB,UAAQ,GACvB,EAAE,CAWJ;AAED,wBAAgB,oBAAoB,CACnC,YAAY,EAAE,YAAY,GACxB,iBAAiB,CAInB;AAED,wBAAgB,wBAAwB,CACvC,YAAY,EAAE,YAAY,GACxB,iBAAiB,CAInB;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEnE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAM7D"}
@@ -371,10 +371,10 @@ function calculateWithdrawLimit(spotMarket, now) {
371
371
  const lesserDepositAmount = anchor_1.BN.min(marketDepositTokenAmount, depositTokenTwapLive);
372
372
  let maxBorrowTokensTwap;
373
373
  if (spotMarket.poolId == 0) {
374
- maxBorrowTokensTwap = anchor_1.BN.max(spotMarket.withdrawGuardThreshold, anchor_1.BN.min(anchor_1.BN.max(marketDepositTokenAmount.div(new anchor_1.BN(3)), borrowTokenTwapLive.add(lesserDepositAmount.div(new anchor_1.BN(7)))), lesserDepositAmount.sub(lesserDepositAmount.div(new anchor_1.BN(8))))); // main pool between ~15-80% utilization with 10% friction on twap
374
+ maxBorrowTokensTwap = anchor_1.BN.max(spotMarket.withdrawGuardThreshold, anchor_1.BN.min(anchor_1.BN.max(marketDepositTokenAmount.div(new anchor_1.BN(3)), borrowTokenTwapLive.add(lesserDepositAmount.div(new anchor_1.BN(7)))), lesserDepositAmount.sub(lesserDepositAmount.div(new anchor_1.BN(8))))); // main pool between ~30-92.5% utilization with friction on twap in 20% increments
375
375
  }
376
376
  else {
377
- maxBorrowTokensTwap = anchor_1.BN.max(spotMarket.withdrawGuardThreshold, anchor_1.BN.min(anchor_1.BN.max(marketDepositTokenAmount.div(new anchor_1.BN(2)), borrowTokenTwapLive.add(lesserDepositAmount.div(new anchor_1.BN(3)))), lesserDepositAmount.sub(lesserDepositAmount.div(new anchor_1.BN(10))))); // isolated pool between ~50-90% utilization with 33% friction on twap
377
+ maxBorrowTokensTwap = anchor_1.BN.max(spotMarket.withdrawGuardThreshold, anchor_1.BN.min(anchor_1.BN.max(marketDepositTokenAmount.div(new anchor_1.BN(2)), borrowTokenTwapLive.add(lesserDepositAmount.div(new anchor_1.BN(3)))), lesserDepositAmount.sub(lesserDepositAmount.div(new anchor_1.BN(20))))); // isolated pools between 50-95% utilization with friction on twap in 33% increments
378
378
  }
379
379
  const minDepositTokensTwap = depositTokenTwapLive.sub(anchor_1.BN.max(depositTokenTwapLive.div(new anchor_1.BN(4)), anchor_1.BN.min(spotMarket.withdrawGuardThreshold, depositTokenTwapLive)));
380
380
  const { minDepositTokensForUtilization, maxBorrowTokensForUtilization } = calculateTokenUtilizationLimits(marketDepositTokenAmount, marketBorrowTokenAmount, spotMarket);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk-browser",
3
- "version": "2.132.0-beta.3",
3
+ "version": "2.132.0-beta.5",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "browser": "./lib/browser/index.js",
@@ -186,7 +186,7 @@ export function calculateUnrealizedAssetWeight(
186
186
  quoteSpotMarket: SpotMarketAccount,
187
187
  unrealizedPnl: BN,
188
188
  marginCategory: MarginCategory,
189
- oraclePriceData: OraclePriceData
189
+ oraclePriceData: Pick<OraclePriceData, 'price'>
190
190
  ): BN {
191
191
  let assetWeight: BN;
192
192
  switch (marginCategory) {
@@ -252,7 +252,7 @@ export function calculateMarketMaxAvailableInsurance(
252
252
 
253
253
  export function calculateNetUserPnl(
254
254
  perpMarket: PerpMarketAccount,
255
- oraclePriceData: OraclePriceData
255
+ oraclePriceData: Pick<OraclePriceData, 'price'>
256
256
  ): BN {
257
257
  const netUserPositionValue = perpMarket.amm.baseAssetAmountWithAmm
258
258
  .add(perpMarket.amm.baseAssetAmountWithUnsettledLp)
@@ -272,7 +272,7 @@ export function calculateNetUserPnl(
272
272
  export function calculateNetUserPnlImbalance(
273
273
  perpMarket: PerpMarketAccount,
274
274
  spotMarket: SpotMarketAccount,
275
- oraclePriceData: OraclePriceData,
275
+ oraclePriceData: Pick<OraclePriceData, 'price'>,
276
276
  applyFeePoolDiscount = true
277
277
  ): BN {
278
278
  const netUserPnl = calculateNetUserPnl(perpMarket, oraclePriceData);
@@ -103,7 +103,7 @@ export function calculatePositionPNL(
103
103
  market: PerpMarketAccount,
104
104
  perpPosition: PerpPosition,
105
105
  withFunding = false,
106
- oraclePriceData: OraclePriceData
106
+ oraclePriceData: Pick<OraclePriceData, 'price'>
107
107
  ): BN {
108
108
  if (perpPosition.baseAssetAmount.eq(ZERO)) {
109
109
  return perpPosition.quoteAssetAmount;
@@ -135,7 +135,7 @@ export function calculateClaimablePnl(
135
135
  market: PerpMarketAccount,
136
136
  spotMarket: SpotMarketAccount,
137
137
  perpPosition: PerpPosition,
138
- oraclePriceData: OraclePriceData
138
+ oraclePriceData: Pick<OraclePriceData, 'price'>
139
139
  ): BN {
140
140
  const unrealizedPnl = calculatePositionPNL(
141
141
  market,
@@ -593,7 +593,7 @@ export function calculateWithdrawLimit(
593
593
  ),
594
594
  lesserDepositAmount.sub(lesserDepositAmount.div(new BN(8)))
595
595
  )
596
- ); // main pool between ~15-80% utilization with 10% friction on twap
596
+ ); // main pool between ~30-92.5% utilization with friction on twap in 20% increments
597
597
  } else {
598
598
  maxBorrowTokensTwap = BN.max(
599
599
  spotMarket.withdrawGuardThreshold,
@@ -602,9 +602,9 @@ export function calculateWithdrawLimit(
602
602
  marketDepositTokenAmount.div(new BN(2)),
603
603
  borrowTokenTwapLive.add(lesserDepositAmount.div(new BN(3)))
604
604
  ),
605
- lesserDepositAmount.sub(lesserDepositAmount.div(new BN(10)))
605
+ lesserDepositAmount.sub(lesserDepositAmount.div(new BN(20)))
606
606
  )
607
- ); // isolated pool between ~50-90% utilization with 33% friction on twap
607
+ ); // isolated pools between 50-95% utilization with friction on twap in 33% increments
608
608
  }
609
609
 
610
610
  const minDepositTokensTwap = depositTokenTwapLive.sub(