@drift-labs/sdk 0.2.0-master.35 → 0.2.0-master.36

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.
@@ -134,8 +134,14 @@ function calculateBaseAssetAmountForAmmToFulfill(order, market, oraclePriceData,
134
134
  order.triggered === false) {
135
135
  return numericConstants_1.ZERO;
136
136
  }
137
- const limitPrice = getLimitPrice(order, oraclePriceData, slot);
138
- const baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(order, market, limitPrice, oraclePriceData);
137
+ const limitPrice = getOptionalLimitPrice(order, oraclePriceData, slot);
138
+ let baseAssetAmount;
139
+ if (limitPrice !== undefined) {
140
+ baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(order, market, limitPrice, oraclePriceData);
141
+ }
142
+ else {
143
+ baseAssetAmount = order.baseAssetAmount.sub(order.baseAssetAmountFilled);
144
+ }
139
145
  const maxBaseAssetAmount = (0, amm_1.calculateMaxBaseAssetAmountFillable)(market.amm, order.direction);
140
146
  return anchor_1.BN.min(maxBaseAssetAmount, baseAssetAmount);
141
147
  }
@@ -148,8 +154,9 @@ function calculateBaseAssetAmountToFillUpToLimitPrice(order, market, limitPrice,
148
154
  if (!sameDirection) {
149
155
  return numericConstants_1.ZERO;
150
156
  }
151
- return baseAssetAmount.gt(order.baseAssetAmount)
152
- ? order.baseAssetAmount
157
+ const baseAssetAmountUnfilled = order.baseAssetAmount.sub(order.baseAssetAmountFilled);
158
+ return baseAssetAmount.gt(baseAssetAmountUnfilled)
159
+ ? baseAssetAmountUnfilled
153
160
  : baseAssetAmount;
154
161
  }
155
162
  exports.calculateBaseAssetAmountToFillUpToLimitPrice = calculateBaseAssetAmountToFillUpToLimitPrice;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "0.2.0-master.35",
3
+ "version": "0.2.0-master.36",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "author": "crispheaney",
@@ -209,13 +209,18 @@ export function calculateBaseAssetAmountForAmmToFulfill(
209
209
  return ZERO;
210
210
  }
211
211
 
212
- const limitPrice = getLimitPrice(order, oraclePriceData, slot);
213
- const baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(
214
- order,
215
- market,
216
- limitPrice,
217
- oraclePriceData
218
- );
212
+ const limitPrice = getOptionalLimitPrice(order, oraclePriceData, slot);
213
+ let baseAssetAmount;
214
+ if (limitPrice !== undefined) {
215
+ baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(
216
+ order,
217
+ market,
218
+ limitPrice,
219
+ oraclePriceData
220
+ );
221
+ } else {
222
+ baseAssetAmount = order.baseAssetAmount.sub(order.baseAssetAmountFilled);
223
+ }
219
224
 
220
225
  const maxBaseAssetAmount = calculateMaxBaseAssetAmountFillable(
221
226
  market.amm,
@@ -249,8 +254,11 @@ export function calculateBaseAssetAmountToFillUpToLimitPrice(
249
254
  return ZERO;
250
255
  }
251
256
 
252
- return baseAssetAmount.gt(order.baseAssetAmount)
253
- ? order.baseAssetAmount
257
+ const baseAssetAmountUnfilled = order.baseAssetAmount.sub(
258
+ order.baseAssetAmountFilled
259
+ );
260
+ return baseAssetAmount.gt(baseAssetAmountUnfilled)
261
+ ? baseAssetAmountUnfilled
254
262
  : baseAssetAmount;
255
263
  }
256
264