Skip to content

Commit f932a4e

Browse files
authored
sdk: round tick/step size for getVammL2Generateor (#1612)
* sdk: round tick/step size for etVammL2Generateor * use standard functions, include in all fcns * fix const declare, rm whitespace * fix posdir sign
1 parent 385a86e commit f932a4e

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed

sdk/src/dlob/orderBookLevels.ts

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
PositionDirection,
1616
QUOTE_PRECISION,
1717
standardizePrice,
18+
standardizeBaseAssetAmount,
1819
SwapDirection,
1920
ZERO,
2021
} from '..';
@@ -194,6 +195,7 @@ export function getVammL2Generator({
194195
);
195196

196197
const minOrderSize = marketAccount.amm.minOrderSize;
198+
const orderTickSize = marketAccount.amm.orderTickSize;
197199
if (openBids.lt(minOrderSize.muln(2))) {
198200
openBids = ZERO;
199201
}
@@ -238,7 +240,10 @@ export function getVammL2Generator({
238240
SwapDirection.REMOVE
239241
);
240242

241-
baseSwapped = bidAmm.baseAssetReserve.sub(afterSwapBaseReserves).abs();
243+
standardizeBaseAssetAmount(
244+
bidAmm.baseAssetReserve.sub(afterSwapBaseReserves).abs(),
245+
marketAccount.amm.orderStepSize
246+
);
242247
if (baseSwapped.eq(ZERO)) {
243248
return;
244249
}
@@ -261,7 +266,10 @@ export function getVammL2Generator({
261266
topOfBookBidSize = topOfBookBidSize.add(baseSwapped);
262267
bidSize = openBids.sub(topOfBookBidSize).div(new BN(numBaseOrders));
263268
} else {
264-
baseSwapped = bidSize;
269+
baseSwapped = standardizeBaseAssetAmount(
270+
bidSize,
271+
marketAccount.amm.orderStepSize
272+
);
265273
[afterSwapQuoteReserves, afterSwapBaseReserves] =
266274
calculateAmmReservesAfterSwap(
267275
bidAmm,
@@ -277,7 +285,11 @@ export function getVammL2Generator({
277285
);
278286
}
279287

280-
const price = quoteSwapped.mul(BASE_PRECISION).div(baseSwapped);
288+
const price = standardizePrice(
289+
quoteSwapped.mul(BASE_PRECISION).div(baseSwapped),
290+
orderTickSize,
291+
PositionDirection.LONG
292+
);
281293

282294
bidAmm.baseAssetReserve = afterSwapBaseReserves;
283295
bidAmm.quoteAssetReserve = afterSwapQuoteReserves;
@@ -321,7 +333,10 @@ export function getVammL2Generator({
321333
SwapDirection.ADD
322334
);
323335

324-
baseSwapped = askAmm.baseAssetReserve.sub(afterSwapBaseReserves).abs();
336+
baseSwapped = standardizeBaseAssetAmount(
337+
askAmm.baseAssetReserve.sub(afterSwapBaseReserves).abs(),
338+
marketAccount.amm.orderStepSize
339+
);
325340
if (baseSwapped.eq(ZERO)) {
326341
return;
327342
}
@@ -347,7 +362,10 @@ export function getVammL2Generator({
347362
.sub(topOfBookAskSize)
348363
.div(new BN(numBaseOrders));
349364
} else {
350-
baseSwapped = askSize;
365+
baseSwapped = standardizeBaseAssetAmount(
366+
askSize,
367+
marketAccount.amm.orderStepSize
368+
);
351369
[afterSwapQuoteReserves, afterSwapBaseReserves] =
352370
calculateAmmReservesAfterSwap(
353371
askAmm,
@@ -363,8 +381,11 @@ export function getVammL2Generator({
363381
);
364382
}
365383

366-
const price = quoteSwapped.mul(BASE_PRECISION).div(baseSwapped);
367-
384+
const price = standardizePrice(
385+
quoteSwapped.mul(BASE_PRECISION).div(baseSwapped),
386+
orderTickSize,
387+
PositionDirection.SHORT
388+
);
368389
askAmm.baseAssetReserve = afterSwapBaseReserves;
369390
askAmm.quoteAssetReserve = afterSwapQuoteReserves;
370391

0 commit comments

Comments
 (0)