asset-swapper: use RFQT-specific response types
@0x/quote-server was recently updated to offer RFQT- and RFQM-specific types, in addition to abstracted types. Since everything here is RFQT specific, usage has been changed to use those specific types. Addresses review comments https://github.com/0xProject/0x-monorepo/pull/2582#discussion_r437623138 and https://github.com/0xProject/0x-monorepo/pull/2582#discussion_r437625305
This commit is contained in:
		@@ -12,7 +12,7 @@ export {
 | 
			
		||||
    SRAPollingOrderProviderOpts,
 | 
			
		||||
    SRAWebsocketOrderProviderOpts,
 | 
			
		||||
} from '@0x/orderbook';
 | 
			
		||||
export { IndicativeQuote } from '@0x/quote-server';
 | 
			
		||||
export { RFQTIndicativeQuote, RFQTFirmQuote } from '@0x/quote-server';
 | 
			
		||||
export { APIOrder, Asset, AssetPairsItem, SignedOrder } from '@0x/types';
 | 
			
		||||
export { BigNumber } from '@0x/utils';
 | 
			
		||||
export {
 | 
			
		||||
 
 | 
			
		||||
@@ -550,13 +550,15 @@ export class SwapQuoter {
 | 
			
		||||
                throw new Error('RFQ-T requests must specify a taker address');
 | 
			
		||||
            }
 | 
			
		||||
            orderBatchPromises.push(
 | 
			
		||||
                this._quoteRequestor.requestRfqtFirmQuotesAsync(
 | 
			
		||||
                this._quoteRequestor
 | 
			
		||||
                    .requestRfqtFirmQuotesAsync(
 | 
			
		||||
                        makerAssetData,
 | 
			
		||||
                        takerAssetData,
 | 
			
		||||
                        assetFillAmount,
 | 
			
		||||
                        marketOperation,
 | 
			
		||||
                        opts.rfqt,
 | 
			
		||||
                ),
 | 
			
		||||
                    )
 | 
			
		||||
                    .then(firmQuotes => firmQuotes.map(quote => quote.signedOrder)),
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
import { schemas, SchemaValidator } from '@0x/json-schemas';
 | 
			
		||||
import { assetDataUtils, orderCalculationUtils, SignedOrder } from '@0x/order-utils';
 | 
			
		||||
import { FirmQuote, IndicativeQuote, TakerRequest } from '@0x/quote-server';
 | 
			
		||||
import { RFQTFirmQuote, RFQTIndicativeQuote, TakerRequest } from '@0x/quote-server';
 | 
			
		||||
import { ERC20AssetData } from '@0x/types';
 | 
			
		||||
import { BigNumber, logUtils } from '@0x/utils';
 | 
			
		||||
import Axios, { AxiosResponse } from 'axios';
 | 
			
		||||
@@ -101,11 +101,11 @@ export class QuoteRequestor {
 | 
			
		||||
        assetFillAmount: BigNumber,
 | 
			
		||||
        marketOperation: MarketOperation,
 | 
			
		||||
        options: RfqtRequestOpts,
 | 
			
		||||
    ): Promise<SignedOrder[]> {
 | 
			
		||||
    ): Promise<RFQTFirmQuote[]> {
 | 
			
		||||
        const _opts: RfqtRequestOpts = { ...constants.DEFAULT_RFQT_REQUEST_OPTS, ...options };
 | 
			
		||||
        assertTakerAddressOrThrow(_opts.takerAddress);
 | 
			
		||||
 | 
			
		||||
        const firmQuotes = await this._getQuotesAsync<FirmQuote>( // not yet BigNumber
 | 
			
		||||
        const firmQuotes = await this._getQuotesAsync<RFQTFirmQuote>( // not yet BigNumber
 | 
			
		||||
            makerAssetData,
 | 
			
		||||
            takerAssetData,
 | 
			
		||||
            assetFillAmount,
 | 
			
		||||
@@ -167,7 +167,7 @@ export class QuoteRequestor {
 | 
			
		||||
            return true;
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        return orders;
 | 
			
		||||
        return orders.map(order => ({ signedOrder: order }));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public async requestRfqtIndicativeQuotesAsync(
 | 
			
		||||
@@ -176,11 +176,11 @@ export class QuoteRequestor {
 | 
			
		||||
        assetFillAmount: BigNumber,
 | 
			
		||||
        marketOperation: MarketOperation,
 | 
			
		||||
        options: RfqtRequestOpts,
 | 
			
		||||
    ): Promise<IndicativeQuote[]> {
 | 
			
		||||
    ): Promise<RFQTIndicativeQuote[]> {
 | 
			
		||||
        const _opts: RfqtRequestOpts = { ...constants.DEFAULT_RFQT_REQUEST_OPTS, ...options };
 | 
			
		||||
        assertTakerAddressOrThrow(_opts.takerAddress);
 | 
			
		||||
 | 
			
		||||
        const responsesWithStringInts = await this._getQuotesAsync<IndicativeQuote>( // not yet BigNumber
 | 
			
		||||
        const responsesWithStringInts = await this._getQuotesAsync<RFQTIndicativeQuote>( // not yet BigNumber
 | 
			
		||||
            makerAssetData,
 | 
			
		||||
            takerAssetData,
 | 
			
		||||
            assetFillAmount,
 | 
			
		||||
@@ -223,7 +223,7 @@ export class QuoteRequestor {
 | 
			
		||||
        return responses;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private _isValidRfqtIndicativeQuoteResponse(response: IndicativeQuote): boolean {
 | 
			
		||||
    private _isValidRfqtIndicativeQuoteResponse(response: RFQTIndicativeQuote): boolean {
 | 
			
		||||
        const hasValidMakerAssetAmount =
 | 
			
		||||
            response.makerAssetAmount !== undefined &&
 | 
			
		||||
            this._schemaValidator.isValid(response.makerAssetAmount, schemas.wholeNumberSchema);
 | 
			
		||||
 
 | 
			
		||||
@@ -188,7 +188,9 @@ describe('QuoteRequestor', async () => {
 | 
			
		||||
                        intentOnFilling: true,
 | 
			
		||||
                    },
 | 
			
		||||
                );
 | 
			
		||||
                expect(resp.sort()).to.eql([successfulOrder1, successfulOrder2].sort());
 | 
			
		||||
                expect(resp.sort()).to.eql(
 | 
			
		||||
                    [{ signedOrder: successfulOrder1 }, { signedOrder: successfulOrder2 }].sort(),
 | 
			
		||||
                );
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user