Merge pull request #159 from drift-labs/master

bulk account loader for phoenix
This commit is contained in:
moosecat
2024-05-16 06:42:55 -07:00
committed by GitHub
2 changed files with 29 additions and 10 deletions

View File

@@ -18,6 +18,8 @@ import {
isVariant,
OrderSubscriber,
MarketType,
PhoenixSubscriber,
BulkAccountLoader,
} from '@drift-labs/sdk';
import { logger, setLogLevel } from './utils/logger';
@@ -36,7 +38,6 @@ import {
SubscriberLookup,
addOracletoResponse,
errorHandler,
getPhoenixSubscriber,
getSerumSubscriber,
l2WithBNToStrings,
normalizeBatchQueryParams,
@@ -169,11 +170,20 @@ const initializeAllMarketSubscribers = async (driftClient: DriftClient) => {
const phoenixConfigAccount =
await driftClient.getPhoenixV1FulfillmentConfig(market.phoenixMarket);
if (isVariant(phoenixConfigAccount.status, 'enabled')) {
const phoenixSubscriber = getPhoenixSubscriber(
driftClient,
market,
sdkConfig
const bulkAccountLoader = new BulkAccountLoader(
driftClient.connection,
stateCommitment,
5_000
);
const phoenixSubscriber = new PhoenixSubscriber({
connection: driftClient.connection,
programId: new PublicKey(sdkConfig.PHOENIX),
marketAddress: phoenixConfigAccount.phoenixMarket,
accountSubscription: {
type: 'polling',
accountLoader: bulkAccountLoader,
},
});
await phoenixSubscriber.subscribe();
// Test get L2 to know if we should add
try {

View File

@@ -17,12 +17,12 @@ import {
OracleInfo,
PerpMarketConfig,
SpotMarketConfig,
PhoenixSubscriber,
} from '@drift-labs/sdk';
import { logger, setLogLevel } from '../utils/logger';
import {
SubscriberLookup,
getPhoenixSubscriber,
getSerumSubscriber,
parsePositiveIntArray,
sleep,
@@ -206,11 +206,20 @@ const initializeAllMarketSubscribers = async (driftClient: DriftClient) => {
logger.info(
`Loading phoenix subscriber for spot market ${market.marketIndex}`
);
const phoenixSubscriber = getPhoenixSubscriber(
driftClient,
marketConfig,
sdkConfig
const bulkAccountLoader = new BulkAccountLoader(
driftClient.connection,
stateCommitment,
5_000
);
const phoenixSubscriber = new PhoenixSubscriber({
connection: driftClient.connection,
programId: new PublicKey(sdkConfig.PHOENIX),
marketAddress: phoenixConfigAccount.phoenixMarket,
accountSubscription: {
type: 'polling',
accountLoader: bulkAccountLoader,
},
});
await phoenixSubscriber.subscribe();
// Test get L2 to know if we should add
try {