@@ -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