add tx origin blacklist to RFQ options (#169)
* add tx origin blacklist to RFQ options * Fix typo * use set instead of array * make sure tx origin is lower case * changed default blacklist value from array to set
This commit is contained in:
parent
3cc639c8d0
commit
dabe6fd793
@ -52,6 +52,7 @@ const DEFAULT_SWAP_QUOTER_OPTS: SwapQuoterOpts = {
|
||||
rfqt: {
|
||||
takerApiKeyWhitelist: [],
|
||||
makerAssetOfferings: {},
|
||||
txOriginBlacklist: new Set(),
|
||||
},
|
||||
tokenAdjacencyGraph: DEFAULT_TOKEN_ADJACENCY_GRAPH,
|
||||
};
|
||||
|
@ -410,6 +410,14 @@ export class SwapQuoter {
|
||||
return whitelistedApiKeys.includes(apiKey);
|
||||
}
|
||||
|
||||
private _isTxOriginBlacklisted(txOrigin: string | undefined): boolean {
|
||||
if (!txOrigin) {
|
||||
return false;
|
||||
}
|
||||
const blacklistedTxOrigins = this._rfqtOptions ? this._rfqtOptions.txOriginBlacklist : new Set();
|
||||
return blacklistedTxOrigins.has(txOrigin.toLowerCase());
|
||||
}
|
||||
|
||||
private _validateRfqtOpts(
|
||||
sourceFilters: SourceFilters,
|
||||
rfqt: RfqtRequestOpts | undefined,
|
||||
@ -438,6 +446,19 @@ export class SwapQuoter {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
// If the requested tx origin is blacklisted, raise a warning and disable RFQ
|
||||
if (this._isTxOriginBlacklisted(txOrigin)) {
|
||||
if (this._rfqtOptions && this._rfqtOptions.warningLogger) {
|
||||
this._rfqtOptions.warningLogger(
|
||||
{
|
||||
txOrigin,
|
||||
},
|
||||
'Attempt at using a tx Origin that is blacklisted. Disabling RFQ for the request lifetime.',
|
||||
);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
// Otherwise check other RFQ options
|
||||
if (
|
||||
intentOnFilling && // The requestor is asking for a firm quote
|
||||
|
@ -286,6 +286,7 @@ export interface RfqtFirmQuoteValidator {
|
||||
export interface SwapQuoterRfqtOpts {
|
||||
takerApiKeyWhitelist: string[];
|
||||
makerAssetOfferings: RfqtMakerAssetOfferings;
|
||||
txOriginBlacklist: Set<string>;
|
||||
altRfqCreds?: {
|
||||
altRfqApiKey: string;
|
||||
altRfqProfile: string;
|
||||
|
Loading…
x
Reference in New Issue
Block a user