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';
|
} from '../types';
|
||||||
|
|
||||||
import { returnQuoteFromAltMMAsync } from './alt_mm_implementation_utils';
|
import { returnQuoteFromAltMMAsync } from './alt_mm_implementation_utils';
|
||||||
|
import { ONE_SECOND_MS } from './market_operation_utils/constants';
|
||||||
import { RfqMakerBlacklist } from './rfq_maker_blacklist';
|
import { RfqMakerBlacklist } from './rfq_maker_blacklist';
|
||||||
|
|
||||||
const MAKER_TIMEOUT_STREAK_LENGTH = 10;
|
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(
|
private static _makerSupportsPair(
|
||||||
typedMakerUrl: TypedMakerUrl,
|
typedMakerUrl: TypedMakerUrl,
|
||||||
makerToken: string,
|
makerToken: string,
|
||||||
@ -361,12 +368,6 @@ export class QuoteRequestor {
|
|||||||
return true;
|
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>(
|
private async _getQuotesAsync<ResponseT>(
|
||||||
makerToken: string,
|
makerToken: string,
|
||||||
takerToken: string,
|
takerToken: string,
|
||||||
@ -587,12 +588,15 @@ export class QuoteRequestor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const isLastLook = Boolean(options.isLastLook);
|
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._warningLogger(order, 'Expiry too soon in RFQ-T firm quote, filtering out');
|
||||||
this._metrics?.incrementExpirationToSoonCounter(isLastLook, order.maker);
|
this._metrics?.incrementExpirationToSoonCounter(isLastLook, order.maker);
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} 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 takerAmount = new BigNumber(order.takerAmount);
|
||||||
const fillRatio = takerAmount.div(assetFillAmount);
|
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');
|
this._warningLogger(order, 'Unexpected token or taker address in RFQ order, filtering out');
|
||||||
return false;
|
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');
|
this._warningLogger(order, 'Expiry too soon in RFQ indicative quote, filtering out');
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user