Merge pull request #459 from drift-labs/jack/ignore-list
chore: test out a dlob ignore list
This commit is contained in:
35
src/dlob-subscriber/OrderSubscriberFiltered.ts
Normal file
35
src/dlob-subscriber/OrderSubscriberFiltered.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import {
|
||||
OrderSubscriber,
|
||||
OrderSubscriberConfig,
|
||||
UserAccount,
|
||||
} from '@drift-labs/sdk';
|
||||
|
||||
export class OrderSubscriberFiltered extends OrderSubscriber {
|
||||
public ignoreList: string[];
|
||||
|
||||
constructor(
|
||||
config: OrderSubscriberConfig & {
|
||||
ignoreList?: string[];
|
||||
}
|
||||
) {
|
||||
super(config);
|
||||
this.ignoreList = config.ignoreList ?? [];
|
||||
}
|
||||
|
||||
override async tryUpdateUserAccount(
|
||||
key: string,
|
||||
dataType: 'raw' | 'decoded' | 'buffer',
|
||||
data: string[] | UserAccount | Buffer,
|
||||
slot: number
|
||||
) {
|
||||
if (!this.mostRecentSlot || slot > this.mostRecentSlot) {
|
||||
this.mostRecentSlot = slot;
|
||||
}
|
||||
|
||||
if (this.ignoreList.includes(key)) {
|
||||
return;
|
||||
}
|
||||
|
||||
super.tryUpdateUserAccount(key, dataType, data, slot);
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,7 @@ import express, { Response, Request } from 'express';
|
||||
import { handleHealthCheck } from '../core/middleware';
|
||||
import { setGlobalDispatcher, Agent } from 'undici';
|
||||
import { Metrics } from '../core/metricsV2';
|
||||
import { OrderSubscriberFiltered } from '../dlob-subscriber/OrderSubscriberFiltered';
|
||||
|
||||
setGlobalDispatcher(
|
||||
new Agent({
|
||||
@@ -474,9 +475,10 @@ const main = async () => {
|
||||
};
|
||||
}
|
||||
|
||||
const orderSubscriber = new OrderSubscriber({
|
||||
const orderSubscriber = new OrderSubscriberFiltered({
|
||||
driftClient,
|
||||
subscriptionConfig,
|
||||
ignoreList: ['5N1AcdftujhXWZdBaqfciaKtXn6uVBKjmgwf6aQxR1vW']
|
||||
});
|
||||
|
||||
dlobProvider = getDLOBProviderFromOrderSubscriber(orderSubscriber);
|
||||
|
||||
Reference in New Issue
Block a user