@drift-labs/sdk 2.2.0 → 2.2.1

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.2.0",
2
+ "version": "2.2.1",
3
3
  "name": "drift",
4
4
  "instructions": [
5
5
  {
package/lib/math/amm.js CHANGED
@@ -198,16 +198,18 @@ function calculateInventoryScale(baseAssetAmountWithAmm, baseAssetReserve, minBa
198
198
  // inventory skew
199
199
  const [openBids, openAsks] = calculateMarketOpenBidAsk(baseAssetReserve, minBaseAssetReserve, maxBaseAssetReserve);
200
200
  const minSideLiquidity = anchor_1.BN.max(new anchor_1.BN(1), anchor_1.BN.min(openBids.abs(), openAsks.abs()));
201
- const inventoryScaleMax = anchor_1.BN.max(defaultLargeBidAskFactor, new anchor_1.BN(maxSpread / 2)
201
+ const inventoryScaleMaxBN = anchor_1.BN.max(defaultLargeBidAskFactor, new anchor_1.BN(maxSpread / 2)
202
202
  .mul(numericConstants_1.BID_ASK_SPREAD_PRECISION)
203
- .div(new anchor_1.BN(Math.max(directionalSpread, 1)))).toNumber() / numericConstants_1.BID_ASK_SPREAD_PRECISION.toNumber();
204
- const inventoryScale = baseAssetAmountWithAmm
203
+ .div(new anchor_1.BN(Math.max(directionalSpread, 1))));
204
+ const inventoryScaleBN = baseAssetAmountWithAmm
205
205
  .mul(anchor_1.BN.max(baseAssetAmountWithAmm.abs(), numericConstants_1.BASE_PRECISION))
206
206
  .div(numericConstants_1.BASE_PRECISION)
207
207
  .mul(defaultLargeBidAskFactor)
208
208
  .div(minSideLiquidity)
209
- .abs()
210
- .toNumber() / numericConstants_1.BID_ASK_SPREAD_PRECISION.toNumber();
209
+ .abs();
210
+ const inventoryScale = anchor_1.BN.min(inventoryScaleMaxBN, inventoryScaleBN).toNumber() /
211
+ numericConstants_1.BID_ASK_SPREAD_PRECISION.toNumber();
212
+ const inventoryScaleMax = inventoryScaleMaxBN.toNumber() / numericConstants_1.BID_ASK_SPREAD_PRECISION.toNumber();
211
213
  const inventorySpreadScale = Math.min(inventoryScaleMax, 1 + inventoryScale);
212
214
  return inventorySpreadScale;
213
215
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "author": "crispheaney",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.2.0",
2
+ "version": "2.2.1",
3
3
  "name": "drift",
4
4
  "instructions": [
5
5
  {
package/src/math/amm.ts CHANGED
@@ -361,23 +361,26 @@ export function calculateInventoryScale(
361
361
  BN.min(openBids.abs(), openAsks.abs())
362
362
  );
363
363
 
364
- const inventoryScaleMax =
365
- BN.max(
366
- defaultLargeBidAskFactor,
367
- new BN(maxSpread / 2)
368
- .mul(BID_ASK_SPREAD_PRECISION)
369
- .div(new BN(Math.max(directionalSpread, 1)))
370
- ).toNumber() / BID_ASK_SPREAD_PRECISION.toNumber();
364
+ const inventoryScaleMaxBN = BN.max(
365
+ defaultLargeBidAskFactor,
366
+ new BN(maxSpread / 2)
367
+ .mul(BID_ASK_SPREAD_PRECISION)
368
+ .div(new BN(Math.max(directionalSpread, 1)))
369
+ );
370
+
371
+ const inventoryScaleBN = baseAssetAmountWithAmm
372
+ .mul(BN.max(baseAssetAmountWithAmm.abs(), BASE_PRECISION))
373
+ .div(BASE_PRECISION)
374
+ .mul(defaultLargeBidAskFactor)
375
+ .div(minSideLiquidity)
376
+ .abs();
371
377
 
372
378
  const inventoryScale =
373
- baseAssetAmountWithAmm
374
- .mul(BN.max(baseAssetAmountWithAmm.abs(), BASE_PRECISION))
375
- .div(BASE_PRECISION)
376
- .mul(defaultLargeBidAskFactor)
377
- .div(minSideLiquidity)
378
- .abs()
379
- .toNumber() / BID_ASK_SPREAD_PRECISION.toNumber();
379
+ BN.min(inventoryScaleMaxBN, inventoryScaleBN).toNumber() /
380
+ BID_ASK_SPREAD_PRECISION.toNumber();
380
381
 
382
+ const inventoryScaleMax =
383
+ inventoryScaleMaxBN.toNumber() / BID_ASK_SPREAD_PRECISION.toNumber();
381
384
  const inventorySpreadScale = Math.min(inventoryScaleMax, 1 + inventoryScale);
382
385
 
383
386
  return inventorySpreadScale;