Merge branch 'master' into jack/redis-migration

This commit is contained in:
Jack Waller
2024-05-23 14:24:14 +10:00
7 changed files with 64 additions and 11 deletions

View File

@@ -33,6 +33,7 @@
"rxjs": "^7.8.1",
"socket.io-redis": "^6.1.1",
"typescript": "4.5.4",
"undici": "^6.16.1",
"winston": "^3.8.1",
"ws": "^8.14.2"
},

View File

@@ -40,7 +40,7 @@ const PERP_MARKETS_TO_SKIP_SLOT_CHECK = {
};
const SPOT_MARKETS_TO_SKIP_SLOT_CHECK = {
'mainnet-beta': [6, 8, 10],
'mainnet-beta': [6, 8, 10, 15],
devnet: [],
};

View File

@@ -18,6 +18,8 @@ import {
isVariant,
OrderSubscriber,
MarketType,
PhoenixSubscriber,
BulkAccountLoader,
} from '@drift-labs/sdk';
import { RedisClient, RedisClientPrefix } from '@drift/common';
@@ -37,7 +39,6 @@ import {
SubscriberLookup,
addOracletoResponse,
errorHandler,
getPhoenixSubscriber,
getSerumSubscriber,
l2WithBNToStrings,
normalizeBatchQueryParams,
@@ -47,6 +48,13 @@ import {
} from './utils/utils';
import FEATURE_FLAGS from './utils/featureFlags';
import { getDLOBProviderFromOrderSubscriber } from './dlobProvider';
import { setGlobalDispatcher, Agent } from 'undici';
setGlobalDispatcher(
new Agent({
connections: 200,
})
);
require('dotenv').config();
@@ -143,11 +151,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,13 +17,13 @@ import {
OracleInfo,
PerpMarketConfig,
SpotMarketConfig,
PhoenixSubscriber,
} from '@drift-labs/sdk';
import { RedisClient, RedisClientPrefix } from '@drift/common';
import { logger, setLogLevel } from '../utils/logger';
import {
SubscriberLookup,
getPhoenixSubscriber,
getSerumSubscriber,
parsePositiveIntArray,
sleep,
@@ -42,6 +42,13 @@ import FEATURE_FLAGS from '../utils/featureFlags';
import { GeyserOrderSubscriber } from '../grpc/OrderSubscriberGRPC';
import express from 'express';
import { handleHealthCheck } from '../core/metrics';
import { setGlobalDispatcher, Agent } from 'undici';
setGlobalDispatcher(
new Agent({
connections: 200,
})
);
require('dotenv').config();
const stateCommitment: Commitment = 'confirmed';
@@ -205,11 +212,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,
2_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

@@ -16,6 +16,13 @@ import { logger, setLogLevel } from '../utils/logger';
import { sleep } from '../utils/utils';
import express from 'express';
// import { handleHealthCheck } from '../core/metrics';
import { setGlobalDispatcher, Agent } from 'undici';
setGlobalDispatcher(
new Agent({
connections: 200,
})
);
require('dotenv').config();
const stateCommitment: Commitment = 'confirmed';

View File

@@ -25,6 +25,13 @@ import { RedisClient, RedisClientPrefix } from '@drift/common';
import { logger, setLogLevel } from '../utils/logger';
import { sleep } from '../utils/utils';
import { fromEvent, filter, map } from 'rxjs';
import { setGlobalDispatcher, Agent } from 'undici';
setGlobalDispatcher(
new Agent({
connections: 200,
})
);
require('dotenv').config();
const driftEnv = (process.env.ENV || 'devnet') as DriftEnv;

View File

@@ -5769,6 +5769,11 @@ undici-types@~5.26.4:
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
undici@^6.16.1:
version "6.16.1"
resolved "https://registry.yarnpkg.com/undici/-/undici-6.16.1.tgz#ff8f49c56e5a8629f92ad2ce00d4841b9619b19e"
integrity sha512-NeNiTT7ixpeiL1qOIU/xTVpHpVP0svmI6PwoCKaMGaI5AsHOaRdwqU/f7Fi9eyU4u03nd5U/BC8wmRMnS9nqoA==
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"