Merge pull request #65 from drift-labs/dlob-diff-check
strip slot from dlob diff check
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
import { RedisClient } from '../utils/redisClient';
|
||||
import {
|
||||
SubscriberLookup,
|
||||
addMarketSlotToResponse,
|
||||
addOracletoResponse,
|
||||
l2WithBNToStrings,
|
||||
} from '../utils/utils';
|
||||
@@ -96,6 +97,10 @@ export class DLOBSubscriberIO extends DLOBSubscriber {
|
||||
const grouping = l2Args.grouping;
|
||||
const { marketName, ...l2FuncArgs } = l2Args;
|
||||
const l2 = this.getL2(l2FuncArgs);
|
||||
const slot = l2.slot;
|
||||
if (slot) {
|
||||
delete l2.slot;
|
||||
}
|
||||
const marketType = isVariant(l2Args.marketType, 'perp') ? 'perp' : 'spot';
|
||||
let l2Formatted: any;
|
||||
if (grouping) {
|
||||
@@ -119,13 +124,20 @@ export class DLOBSubscriberIO extends DLOBSubscriber {
|
||||
l2Formatted['marketName'] = marketName?.toUpperCase();
|
||||
l2Formatted['marketType'] = marketType?.toLowerCase();
|
||||
l2Formatted['marketIndex'] = l2Args.marketIndex;
|
||||
l2Formatted['slot'] = slot;
|
||||
addOracletoResponse(
|
||||
l2Formatted,
|
||||
this.driftClient,
|
||||
l2Args.marketType,
|
||||
l2Args.marketIndex
|
||||
);
|
||||
|
||||
addMarketSlotToResponse(
|
||||
l2Formatted,
|
||||
this.driftClient,
|
||||
l2Args.marketType,
|
||||
l2Args.marketIndex
|
||||
);
|
||||
|
||||
const l2Formatted_depth100 = Object.assign({}, l2Formatted, {
|
||||
bids: l2Formatted.bids.slice(0, 100),
|
||||
asks: l2Formatted.asks.slice(0, 100),
|
||||
|
||||
@@ -132,6 +132,21 @@ export const addOracletoResponse = (
|
||||
}
|
||||
};
|
||||
|
||||
export const addMarketSlotToResponse = (
|
||||
response: L2OrderBook | L3OrderBook,
|
||||
driftClient: DriftClient,
|
||||
marketType: MarketType,
|
||||
marketIndex: number
|
||||
): void => {
|
||||
let marketSlot: number;
|
||||
if (isVariant(marketType, 'perp')) {
|
||||
marketSlot = driftClient.accountSubscriber.getMarketAccountAndSlot(marketIndex).slot;
|
||||
} else {
|
||||
marketSlot = driftClient.accountSubscriber.getSpotMarketAccountAndSlot(marketIndex).slot;
|
||||
}
|
||||
response['marketSlot'] = marketSlot;
|
||||
};
|
||||
|
||||
/**
|
||||
* Takes in a req.query like: `{
|
||||
* marketName: 'SOL-PERP,BTC-PERP,ETH-PERP',
|
||||
|
||||
Reference in New Issue
Block a user