From 71cde281b90a2f6f9032d88432f7f7a3c4d68d97 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Sun, 9 Aug 2020 16:38:59 +1000 Subject: [PATCH] fix: asset-swapper depth buy scale (#2659) --- packages/asset-swapper/CHANGELOG.json | 4 ++++ packages/asset-swapper/src/swap_quoter.ts | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/asset-swapper/CHANGELOG.json b/packages/asset-swapper/CHANGELOG.json index 0a03df5f06..c6b3f7f75b 100644 --- a/packages/asset-swapper/CHANGELOG.json +++ b/packages/asset-swapper/CHANGELOG.json @@ -37,6 +37,10 @@ { "note": "Fix optimization of buy paths", "pr": 2655 + }, + { + "note": "Fix depth buy scale", + "pr": 2659 } ] }, diff --git a/packages/asset-swapper/src/swap_quoter.ts b/packages/asset-swapper/src/swap_quoter.ts index 8bb7281fd7..08d9ab83f3 100644 --- a/packages/asset-swapper/src/swap_quoter.ts +++ b/packages/asset-swapper/src/swap_quoter.ts @@ -454,7 +454,11 @@ export class SwapQuoter { return [ ...dexQuotes, nativeOrders.map((o, i) => { - const scaleFactor = orderFillableAmounts[i].div(o.takerAssetAmount); + // When sell order fillable amount is taker + // When buy order fillable amount is maker + const scaleFactor = orderFillableAmounts[i].div( + side === MarketOperation.Sell ? o.takerAssetAmount : o.makerAssetAmount, + ); return { input: (side === MarketOperation.Sell ? o.takerAssetAmount : o.makerAssetAmount) .times(scaleFactor)