asset-s: RFQT info logger; log maker response time

This commit is contained in:
F. Eugene Aumson
2020-04-28 13:28:22 -04:00
parent 4bcc4b3cf8
commit 4cb08a61d5
3 changed files with 7 additions and 0 deletions

View File

@@ -173,6 +173,7 @@ export class SwapQuoter {
this._quoteRequestor = new QuoteRequestor(
options.rfqt ? options.rfqt.makerEndpoints || [] : [],
options.rfqt ? options.rfqt.warningLogger : undefined,
options.rfqt ? options.rfqt.infoLogger : undefined,
);
const sampler = new DexOrderSampler(
new IERC20BridgeSamplerContract(this._contractAddresses.erc20BridgeSampler, this.provider, {

View File

@@ -226,6 +226,7 @@ export interface SwapQuoterOpts extends OrderPrunerOpts {
takerApiKeyWhitelist: string[];
makerEndpoints: string[];
warningLogger?: (s: string) => void;
infoLogger?: (s: string) => void;
};
}

View File

@@ -87,6 +87,7 @@ export class QuoteRequestor {
constructor(
private readonly _rfqtMakerEndpoints: string[],
private readonly _warningLogger: (s: string) => void = s => logUtils.warn(s),
private readonly _infoLogger: (s: string) => void = () => { return; },
) {}
public async requestRfqtFirmQuotesAsync(
@@ -101,6 +102,7 @@ export class QuoteRequestor {
// create an array of promises for quote responses, using "undefined"
// as a placeholder for failed requests.
const timeBeforeAwait = Date.now();
const responsesIfDefined: Array<undefined | AxiosResponse<SignedOrder>> = await Promise.all(
this._rfqtMakerEndpoints.map(async rfqtMakerEndpoint => {
try {
@@ -123,6 +125,7 @@ export class QuoteRequestor {
}
}),
);
this._infoLogger(JSON.stringify({ aggregatedRfqtLatencyMs: Date.now() - timeBeforeAwait }));
const responses = responsesIfDefined.filter(
(respIfDefd): respIfDefd is AxiosResponse<SignedOrder> => respIfDefd !== undefined,
@@ -177,6 +180,7 @@ export class QuoteRequestor {
const _opts = _.merge({}, constants.DEFAULT_RFQT_REQUEST_OPTS, options);
assertTakerAddressOrThrow(_opts.takerAddress);
const timeBeforeAwait = Date.now();
const axiosResponsesIfDefined: Array<
undefined | AxiosResponse<RfqtIndicativeQuoteResponse>
> = await Promise.all(
@@ -201,6 +205,7 @@ export class QuoteRequestor {
}
}),
);
this._infoLogger(JSON.stringify({ aggregatedRfqtLatencyMs: Date.now() - timeBeforeAwait }));
const axiosResponses = axiosResponsesIfDefined.filter(
(respIfDefd): respIfDefd is AxiosResponse<RfqtIndicativeQuoteResponse> => respIfDefd !== undefined,