fix: added prometheus changes on expiration (#308)
* added prometheus changes on expiration * added unit tests * prettier * addressed comments * remove unused tests * fix lint: * Update quote_requestor_test.ts
This commit is contained in:
parent
ed3524e0d7
commit
da433854ac
@ -25,6 +25,7 @@ import {
|
||||
} from '../types';
|
||||
|
||||
import { returnQuoteFromAltMMAsync } from './alt_mm_implementation_utils';
|
||||
import { ONE_SECOND_MS } from './market_operation_utils/constants';
|
||||
import { RfqMakerBlacklist } from './rfq_maker_blacklist';
|
||||
|
||||
const MAKER_TIMEOUT_STREAK_LENGTH = 10;
|
||||
@ -177,6 +178,12 @@ export class QuoteRequestor {
|
||||
}
|
||||
}
|
||||
|
||||
public static getDurationUntilExpirationMs(expirationTimeSeconds: BigNumber): BigNumber {
|
||||
const expirationTimeMs = expirationTimeSeconds.times(constants.ONE_SECOND_MS);
|
||||
const currentTimeMs = new BigNumber(Date.now());
|
||||
return BigNumber.max(expirationTimeMs.minus(currentTimeMs), 0);
|
||||
}
|
||||
|
||||
private static _makerSupportsPair(
|
||||
typedMakerUrl: TypedMakerUrl,
|
||||
makerToken: string,
|
||||
@ -361,12 +368,6 @@ export class QuoteRequestor {
|
||||
return true;
|
||||
}
|
||||
|
||||
private _isExpirationTooSoon(expirationTimeSeconds: BigNumber): boolean {
|
||||
const expirationTimeMs = expirationTimeSeconds.times(constants.ONE_SECOND_MS);
|
||||
const currentTimeMs = new BigNumber(Date.now());
|
||||
return expirationTimeMs.isLessThan(currentTimeMs.plus(this._expiryBufferMs));
|
||||
}
|
||||
|
||||
private async _getQuotesAsync<ResponseT>(
|
||||
makerToken: string,
|
||||
takerToken: string,
|
||||
@ -587,12 +588,15 @@ export class QuoteRequestor {
|
||||
return false;
|
||||
}
|
||||
const isLastLook = Boolean(options.isLastLook);
|
||||
if (this._isExpirationTooSoon(new BigNumber(order.expiry))) {
|
||||
const msRemainingUntilExpiration = QuoteRequestor.getDurationUntilExpirationMs(new BigNumber(order.expiry));
|
||||
const isExpirationTooSoon = msRemainingUntilExpiration.lt(this._expiryBufferMs);
|
||||
if (isExpirationTooSoon) {
|
||||
this._warningLogger(order, 'Expiry too soon in RFQ-T firm quote, filtering out');
|
||||
this._metrics?.incrementExpirationToSoonCounter(isLastLook, order.maker);
|
||||
return false;
|
||||
} else {
|
||||
this._metrics?.measureExpirationForValidOrder(isLastLook, order.maker, order.expiry);
|
||||
const secondsRemaining = msRemainingUntilExpiration.div(ONE_SECOND_MS);
|
||||
this._metrics?.measureExpirationForValidOrder(isLastLook, order.maker, secondsRemaining);
|
||||
|
||||
const takerAmount = new BigNumber(order.takerAmount);
|
||||
const fillRatio = takerAmount.div(assetFillAmount);
|
||||
@ -673,7 +677,9 @@ export class QuoteRequestor {
|
||||
this._warningLogger(order, 'Unexpected token or taker address in RFQ order, filtering out');
|
||||
return false;
|
||||
}
|
||||
if (this._isExpirationTooSoon(new BigNumber(order.expiry))) {
|
||||
const msRemainingUntilExpiration = QuoteRequestor.getDurationUntilExpirationMs(new BigNumber(order.expiry));
|
||||
const isExpirationTooSoon = msRemainingUntilExpiration.lt(this._expiryBufferMs);
|
||||
if (isExpirationTooSoon) {
|
||||
this._warningLogger(order, 'Expiry too soon in RFQ indicative quote, filtering out');
|
||||
return false;
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user