openbook integration (#208)

This commit is contained in:
frank
2024-08-07 11:47:25 -05:00
committed by GitHub
parent f9fd110ebc
commit bb83b4789b
5 changed files with 94 additions and 3 deletions

View File

@@ -22,7 +22,12 @@ import {
import { RedisClient, RedisClientPrefix } from '@drift/common';
import { logger, setLogLevel } from '../utils/logger';
import { SubscriberLookup, parsePositiveIntArray, sleep } from '../utils/utils';
import {
SubscriberLookup,
getOpenbookSubscriber,
parsePositiveIntArray,
sleep,
} from '../utils/utils';
import {
DLOBSubscriberIO,
wsMarketInfo,
@@ -233,6 +238,34 @@ const initializeAllMarketSubscribers = async (driftClient: DriftClient) => {
}
}
}
if (marketConfig.openbookMarket) {
const openbookMarketAccount =
await driftClient.getOpenbookV2FulfillmentConfig(
marketConfig.openbookMarket
);
if (isVariant(openbookMarketAccount.status, 'enabled')) {
logger.info(
`Loading openbook subscriber for spot market ${market.marketIndex}`
);
const openbookSubscriber = getOpenbookSubscriber(
driftClient,
marketConfig,
sdkConfig
);
await openbookSubscriber.subscribe();
try {
openbookSubscriber.getL2Asks();
openbookSubscriber.getL2Bids();
markets[market.marketIndex].openbook = openbookSubscriber;
} catch (e) {
logger.info(
`Excluding openbook for ${market.marketIndex}, error: ${e}`
);
}
}
}
}
return markets;