From d14aebf724a932b01e90e6b4b67b7c723b577856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20P=C3=A9rez?= Date: Mon, 2 May 2022 15:45:15 -0500 Subject: [PATCH] Fix the filter for considered sources on indicative sells for Quote Report (#466) --- packages/asset-swapper/CHANGELOG.json | 9 +++++++++ .../src/utils/quote_report_generator.ts | 14 +++----------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/packages/asset-swapper/CHANGELOG.json b/packages/asset-swapper/CHANGELOG.json index 71cec11ff1..5b3e8b6e5a 100644 --- a/packages/asset-swapper/CHANGELOG.json +++ b/packages/asset-swapper/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "16.57.2", + "changes": [ + { + "note": "Fix missing AMM quotes on indicative Quote Reports", + "pr": 466 + } + ] + }, { "version": "16.57.1", "changes": [ diff --git a/packages/asset-swapper/src/utils/quote_report_generator.ts b/packages/asset-swapper/src/utils/quote_report_generator.ts index 10236b797f..dbef056b6d 100644 --- a/packages/asset-swapper/src/utils/quote_report_generator.ts +++ b/packages/asset-swapper/src/utils/quote_report_generator.ts @@ -207,7 +207,7 @@ export function generateExtendedQuoteReportSources( ..._.flatten( quotes.dexQuotes.map(dex => dex - .filter(quote => isDexSampleForTotalAmount(quote, marketOperation, amount)) + .filter(quote => isDexSampleForTotalAmount(quote, amount)) .map(quote => dexSampleToReportSource(quote, marketOperation)), ), ), @@ -306,16 +306,8 @@ export function dexSampleToReportSource(ds: DexSample, marketOperation: MarketOp * Checks if a DEX sample is the one that represents the whole amount requested by taker * NOTE: this is used for the QuoteReport to filter samples */ -function isDexSampleForTotalAmount(ds: DexSample, marketOperation: MarketOperation, amount: BigNumber): boolean { - // input and output map to different values - // based on the market operation - if (marketOperation === MarketOperation.Buy) { - return ds.input === amount; - } else if (marketOperation === MarketOperation.Sell) { - return ds.output === amount; - } else { - throw new Error(`Unexpected marketOperation ${marketOperation}`); - } +function isDexSampleForTotalAmount(ds: DexSample, amount: BigNumber): boolean { + return ds.input.eq(amount); } /**