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)