Promote max maker response time to a global option

This commit is contained in:
F. Eugene Aumson
2020-04-09 16:18:09 -04:00
parent 5f4778c852
commit 8cdc05f582
4 changed files with 16 additions and 2 deletions

View File

@@ -5,6 +5,7 @@ import {
ForwarderExtensionContractOpts,
OrderPrunerOpts,
OrderPrunerPermittedFeeTypes,
RfqtFirmQuoteRequestOpts,
SwapQuoteExecutionOpts,
SwapQuoteGetOutputOpts,
SwapQuoteRequestOpts,
@@ -65,6 +66,10 @@ const DEFAULT_SWAP_QUOTE_REQUEST_OPTS: SwapQuoteRequestOpts = {
...DEFAULT_GET_MARKET_ORDERS_OPTS,
};
const DEFAULT_RFQT_FIRM_QUOTE_REQUEST_OPTS: RfqtFirmQuoteRequestOpts = {
makerEndpointMaxResponseTimeMs: 1000,
};
export const constants = {
ETH_GAS_STATION_API_BASE_URL,
PROTOCOL_FEE_MULTIPLIER,
@@ -81,6 +86,7 @@ export const constants = {
DEFAULT_FORWARDER_SWAP_QUOTE_EXECUTE_OPTS,
DEFAULT_SWAP_QUOTE_REQUEST_OPTS,
DEFAULT_PER_PAGE,
DEFAULT_RFQT_FIRM_QUOTE_REQUEST_OPTS,
NULL_ERC20_ASSET_DATA,
PROTOCOL_FEE_UTILS_POLLING_INTERVAL_IN_MS,
MARKET_UTILS_AMOUNT_BUFFER_PERCENTAGE,

View File

@@ -44,6 +44,7 @@ export {
MarketBuySwapQuote,
MarketOperation,
MarketSellSwapQuote,
RfqtFirmQuoteRequestOpts,
SwapQuote,
SwapQuoteConsumerBase,
SwapQuoteConsumerOpts,

View File

@@ -273,3 +273,7 @@ export enum OrderPrunerPermittedFeeTypes {
MakerDenominatedTakerFee = 'MAKER_DENOMINATED_TAKER_FEE',
TakerDenominatedTakerFee = 'TAKER_DENOMINATED_TAKER_FEE',
}
export interface RfqtFirmQuoteRequestOpts {
makerEndpointMaxResponseTimeMs?: number;
}

View File

@@ -2,8 +2,10 @@ import { assetDataUtils, SignedOrder } from '@0x/order-utils';
import { ERC20AssetData } from '@0x/types';
import { BigNumber, logUtils } from '@0x/utils';
import Axios, { AxiosResponse } from 'axios';
import * as _ from 'lodash';
import { MarketOperation } from '../types';
import { constants } from '../constants';
import { MarketOperation, RfqtFirmQuoteRequestOpts } from '../types';
/**
* Request quotes from RFQ-T providers
@@ -22,8 +24,9 @@ export class QuoteRequestor {
marketOperation: MarketOperation,
takerApiKey: string,
takerAddress: string,
options?: Partial<RfqtFirmQuoteRequestOpts>,
): Promise<SignedOrder[]> {
const makerEndpointMaxResponseTimeMs = 1000;
const { makerEndpointMaxResponseTimeMs } = _.merge({}, constants.DEFAULT_RFQT_FIRM_QUOTE_REQUEST_OPTS, options);
const getTokenAddressOrThrow = (assetData: string): string => {
const decodedAssetData = assetDataUtils.decodeAssetDataOrThrow(assetData);