From 05b25c6229dba83a246cf8f3b89de55decce4c68 Mon Sep 17 00:00:00 2001 From: "F. Eugene Aumson" Date: Wed, 14 Oct 2020 12:01:10 -0400 Subject: [PATCH] Ran prettier --- .../src/utils/market_operation_utils/index.ts | 23 ++- .../src/utils/quote_requestor.ts | 13 +- .../test/market_operation_utils_test.ts | 157 +++++++++--------- .../test/quote_requestor_test.ts | 1 - 4 files changed, 106 insertions(+), 88 deletions(-) diff --git a/packages/asset-swapper/src/utils/market_operation_utils/index.ts b/packages/asset-swapper/src/utils/market_operation_utils/index.ts index 5d9dfd4b45..962ea180c6 100644 --- a/packages/asset-swapper/src/utils/market_operation_utils/index.ts +++ b/packages/asset-swapper/src/utils/market_operation_utils/index.ts @@ -601,16 +601,27 @@ export class MarketOperationUtils { // If RFQ liquidity is enabled, make a request to check RFQ liquidity const { rfqt } = _opts; if (rfqt && rfqt.quoteRequestor && marketSideLiquidity.quoteSourceFilters.isAllowed(ERC20BridgeSource.Native)) { - // Calculate a suggested price. For now, this is simply the overall price of the aggregation. let comparisonPrice: BigNumber | undefined; if (optimizerResult) { - const totalMakerAmount = BigNumber.sum(...optimizerResult.optimizedOrders.map(order => order.makerAssetAmount)); - const totalTakerAmount = BigNumber.sum(...optimizerResult.optimizedOrders.map(order => order.takerAssetAmount)); + const totalMakerAmount = BigNumber.sum( + ...optimizerResult.optimizedOrders.map(order => order.makerAssetAmount), + ); + const totalTakerAmount = BigNumber.sum( + ...optimizerResult.optimizedOrders.map(order => order.takerAssetAmount), + ); if (totalMakerAmount.gt(0)) { - const totalMakerAmountUnitAmount = Web3Wrapper.toUnitAmount(totalMakerAmount, marketSideLiquidity.makerTokenDecimals); - const totalTakerAmountUnitAmount = Web3Wrapper.toUnitAmount(totalTakerAmount, marketSideLiquidity.takerTokenDecimals); - comparisonPrice = totalMakerAmountUnitAmount.div(totalTakerAmountUnitAmount).decimalPlaces(COMPARISON_PRICE_DECIMALS); + const totalMakerAmountUnitAmount = Web3Wrapper.toUnitAmount( + totalMakerAmount, + marketSideLiquidity.makerTokenDecimals, + ); + const totalTakerAmountUnitAmount = Web3Wrapper.toUnitAmount( + totalTakerAmount, + marketSideLiquidity.takerTokenDecimals, + ); + comparisonPrice = totalMakerAmountUnitAmount + .div(totalTakerAmountUnitAmount) + .decimalPlaces(COMPARISON_PRICE_DECIMALS); } } diff --git a/packages/asset-swapper/src/utils/quote_requestor.ts b/packages/asset-swapper/src/utils/quote_requestor.ts index 6f1931bb55..8dd01a51fb 100644 --- a/packages/asset-swapper/src/utils/quote_requestor.ts +++ b/packages/asset-swapper/src/utils/quote_requestor.ts @@ -119,9 +119,16 @@ export class QuoteRequestor { assetFillAmount: BigNumber, comparisonPrice?: BigNumber | undefined, ): TakerRequestQueryParams { - - const {buyAmountBaseUnits, sellAmountBaseUnits, ...rest } = inferQueryParams(marketOperation, makerAssetData, takerAssetData, assetFillAmount); - const requestParamsWithBigNumbers: Pick = { + const { buyAmountBaseUnits, sellAmountBaseUnits, ...rest } = inferQueryParams( + marketOperation, + makerAssetData, + takerAssetData, + assetFillAmount, + ); + const requestParamsWithBigNumbers: Pick< + TakerRequestQueryParams, + 'buyTokenAddress' | 'sellTokenAddress' | 'takerAddress' | 'comparisonPrice' + > = { takerAddress, comparisonPrice: comparisonPrice === undefined ? undefined : comparisonPrice.toString(), ...rest, diff --git a/packages/asset-swapper/test/market_operation_utils_test.ts b/packages/asset-swapper/test/market_operation_utils_test.ts index 5f8269c303..07a9c96217 100644 --- a/packages/asset-swapper/test/market_operation_utils_test.ts +++ b/packages/asset-swapper/test/market_operation_utils_test.ts @@ -694,47 +694,46 @@ describe('MarketOperationUtils tests', () => { }); it('optimizer will send in a comparison price to RFQ providers', async () => { - // Set up mocked quote requestor, will return an order that is better // than the best of the orders. - const mockedQuoteRequestor = TypeMoq.Mock.ofType( - QuoteRequestor, - TypeMoq.MockBehavior.Loose, - false, - {}, - ); + const mockedQuoteRequestor = TypeMoq.Mock.ofType(QuoteRequestor, TypeMoq.MockBehavior.Loose, false, {}); let requestedComparisonPrice: BigNumber | undefined; - mockedQuoteRequestor.setup( - mqr => mqr.requestRfqtFirmQuotesAsync( - TypeMoq.It.isAny(), - TypeMoq.It.isAny(), - TypeMoq.It.isAny(), - TypeMoq.It.isAny(), - TypeMoq.It.isAny(), - TypeMoq.It.isAny(), - ), - ).callback(( - _makerAssetData: string, - _takerAssetData: string, - _assetFillAmount: BigNumber, - _marketOperation: MarketOperation, - comparisonPrice: BigNumber | undefined, - _options: RfqtRequestOpts, - ) => { - requestedComparisonPrice = comparisonPrice; - }).returns(async () => { - return [ - { - signedOrder: createOrder({ - makerAssetData: MAKER_ASSET_DATA, - takerAssetData: TAKER_ASSET_DATA, - makerAssetAmount: Web3Wrapper.toBaseUnitAmount(321, 6), - takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 18), - }), + mockedQuoteRequestor + .setup(mqr => + mqr.requestRfqtFirmQuotesAsync( + TypeMoq.It.isAny(), + TypeMoq.It.isAny(), + TypeMoq.It.isAny(), + TypeMoq.It.isAny(), + TypeMoq.It.isAny(), + TypeMoq.It.isAny(), + ), + ) + .callback( + ( + _makerAssetData: string, + _takerAssetData: string, + _assetFillAmount: BigNumber, + _marketOperation: MarketOperation, + comparisonPrice: BigNumber | undefined, + _options: RfqtRequestOpts, + ) => { + requestedComparisonPrice = comparisonPrice; }, - ]; - }); + ) + .returns(async () => { + return [ + { + signedOrder: createOrder({ + makerAssetData: MAKER_ASSET_DATA, + takerAssetData: TAKER_ASSET_DATA, + makerAssetAmount: Web3Wrapper.toBaseUnitAmount(321, 6), + takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 18), + }), + }, + ]; + }); // Set up sampler, will only return 1 on-chain order const mockedMarketOpUtils = TypeMoq.Mock.ofType( @@ -746,49 +745,51 @@ describe('MarketOperationUtils tests', () => { ORDER_DOMAIN, ); mockedMarketOpUtils.callBase = true; - mockedMarketOpUtils.setup( - mou => mou.getMarketSellLiquidityAsync( - TypeMoq.It.isAny(), - TypeMoq.It.isAny(), - TypeMoq.It.isAny(), - ), - ).returns(async () => { - return { - dexQuotes: [], - ethToInputRate: Web3Wrapper.toBaseUnitAmount(1, 18), - ethToOutputRate: Web3Wrapper.toBaseUnitAmount(1, 6), - inputAmount: Web3Wrapper.toBaseUnitAmount(1, 18), - inputToken: MAKER_TOKEN, - outputToken: TAKER_TOKEN, - nativeOrders: [ - createOrder({ - makerAssetData: MAKER_ASSET_DATA, - takerAssetData: TAKER_ASSET_DATA, - makerAssetAmount: Web3Wrapper.toBaseUnitAmount(320, 6), - takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 18), - }), - ], - orderFillableAmounts: [Web3Wrapper.toBaseUnitAmount(1, 18)], - rfqtIndicativeQuotes: [], - side: MarketOperation.Sell, - twoHopQuotes: [], - quoteSourceFilters: new SourceFilters(), - makerTokenDecimals: 6, - takerTokenDecimals: 18, - }; - }); - const result = await mockedMarketOpUtils.object.getMarketSellOrdersAsync(ORDERS, Web3Wrapper.toBaseUnitAmount(1, 18), { - ...DEFAULT_OPTS, - rfqt: { - isIndicative: false, - apiKey: 'foo', - takerAddress: randomAddress(), - intentOnFilling: true, - quoteRequestor: { - requestRfqtFirmQuotesAsync: mockedQuoteRequestor.object.requestRfqtFirmQuotesAsync, - } as any, + mockedMarketOpUtils + .setup(mou => + mou.getMarketSellLiquidityAsync(TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny()), + ) + .returns(async () => { + return { + dexQuotes: [], + ethToInputRate: Web3Wrapper.toBaseUnitAmount(1, 18), + ethToOutputRate: Web3Wrapper.toBaseUnitAmount(1, 6), + inputAmount: Web3Wrapper.toBaseUnitAmount(1, 18), + inputToken: MAKER_TOKEN, + outputToken: TAKER_TOKEN, + nativeOrders: [ + createOrder({ + makerAssetData: MAKER_ASSET_DATA, + takerAssetData: TAKER_ASSET_DATA, + makerAssetAmount: Web3Wrapper.toBaseUnitAmount(320, 6), + takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 18), + }), + ], + orderFillableAmounts: [Web3Wrapper.toBaseUnitAmount(1, 18)], + rfqtIndicativeQuotes: [], + side: MarketOperation.Sell, + twoHopQuotes: [], + quoteSourceFilters: new SourceFilters(), + makerTokenDecimals: 6, + takerTokenDecimals: 18, + }; + }); + const result = await mockedMarketOpUtils.object.getMarketSellOrdersAsync( + ORDERS, + Web3Wrapper.toBaseUnitAmount(1, 18), + { + ...DEFAULT_OPTS, + rfqt: { + isIndicative: false, + apiKey: 'foo', + takerAddress: randomAddress(), + intentOnFilling: true, + quoteRequestor: { + requestRfqtFirmQuotesAsync: mockedQuoteRequestor.object.requestRfqtFirmQuotesAsync, + } as any, + }, }, - }); + ); expect(result.optimizedOrders.length).to.eql(1); // tslint:disable-next-line:no-unnecessary-type-assertion expect(requestedComparisonPrice!.toString()).to.eql('320'); diff --git a/packages/asset-swapper/test/quote_requestor_test.ts b/packages/asset-swapper/test/quote_requestor_test.ts index ad1062799a..a30e2bd658 100644 --- a/packages/asset-swapper/test/quote_requestor_test.ts +++ b/packages/asset-swapper/test/quote_requestor_test.ts @@ -191,7 +191,6 @@ describe('QuoteRequestor', async () => { }); }); describe('requestRfqtIndicativeQuotesAsync for Indicative quotes', async () => { - it('should optionally accept a "comparisonPrice" parameter', async () => { const response = QuoteRequestor.makeQueryParameters( otherToken1,