Merge pull request #112 from drift-labs/master

skip kill process for prelaunch
This commit is contained in:
Nour Alharithi
2024-03-12 16:54:17 -04:00
committed by GitHub
4 changed files with 19 additions and 50 deletions

View File

@@ -6,7 +6,7 @@
"license": "Apache-2.0",
"dependencies": {
"@coral-xyz/anchor": "^0.29.0",
"@drift-labs/sdk": "2.71.0-beta.3",
"@drift-labs/sdk": "2.72.0-beta.1",
"@opentelemetry/api": "^1.1.0",
"@opentelemetry/auto-instrumentations-node": "^0.31.1",
"@opentelemetry/exporter-prometheus": "^0.31.0",

View File

@@ -46,6 +46,8 @@ export class DLOBSubscriberIO extends DLOBSubscriber {
Map<number, { slot: number; ts: number }>
>;
public skipSlotStalenessCheckMarkets = new Set<number>();
constructor(
config: DLOBSubscriptionConfig & {
redisClient: RedisClient;
@@ -73,6 +75,10 @@ export class DLOBSubscriberIO extends DLOBSubscriber {
market.marketIndex
);
const includeVamm = !isVariant(perpMarket.status, 'ammPaused');
const oracleSource = perpMarket.amm.oracleSource;
if (isVariant(oracleSource, 'prelaunch')) {
this.skipSlotStalenessCheckMarkets.add(market.marketIndex);
}
this.marketArgs.push({
marketIndex: market.marketIndex,
@@ -175,9 +181,13 @@ export class DLOBSubscriberIO extends DLOBSubscriber {
);
// Check if slot diffs are too large for oracle
const skipSlotCheck =
marketType === 'perp' &&
this.skipSlotStalenessCheckMarkets.has(marketArgs.marketIndex);
if (
Math.abs(slot - parseInt(l2Formatted['oracleData']['slot'])) >
this.killSwitchSlotDiffThreshold
this.killSwitchSlotDiffThreshold &&
!skipSlotCheck
) {
console.log(`Killing process due to slot diffs for market ${marketName}:
dlobProvider slot: ${slot}
@@ -194,7 +204,8 @@ export class DLOBSubscriberIO extends DLOBSubscriber {
if (
lastMarketSlotAndTime &&
l2Formatted['marketSlot'] === lastMarketSlotAndTime.slot &&
Date.now() - lastMarketSlotAndTime.ts > MAKRET_STALENESS_THRESHOLD
Date.now() - lastMarketSlotAndTime.ts > MAKRET_STALENESS_THRESHOLD &&
!skipSlotCheck
) {
console.log(`Killing process due to same slot for market ${marketName} after > ${MAKRET_STALENESS_THRESHOLD}ms:
dlobProvider slot: ${slot}
@@ -329,48 +340,6 @@ export class DLOBSubscriberIO extends DLOBSubscriber {
marketArgs.marketIndex
);
// Check if slot diffs are too large for oracle
if (
Math.abs(slot - parseInt(l3['oracleData']['slot'])) >
this.killSwitchSlotDiffThreshold
) {
console.log(`Killing process due to slot diffs for market ${marketName}:
dlobProvider slot: ${slot}
oracle slot: ${l3['oracleData']['slot']}
`);
process.exit(1);
}
// Check if times and slots are too different for market
const MAKRET_STALENESS_THRESHOLD =
marketType === 'perp'
? PERP_MAKRET_STALENESS_THRESHOLD
: SPOT_MAKRET_STALENESS_THRESHOLD;
if (
lastMarketSlotAndTime &&
l3['marketSlot'] === lastMarketSlotAndTime.slot &&
Date.now() - lastMarketSlotAndTime.ts > MAKRET_STALENESS_THRESHOLD
) {
console.log(`Killing process due to same slot for market ${marketName} after > ${MAKRET_STALENESS_THRESHOLD}ms:
dlobProvider slot: ${slot}
market slot: ${l3['marketSlot']}
`);
process.exit(1);
} else if (
lastMarketSlotAndTime &&
l3['marketSlot'] !== lastMarketSlotAndTime.slot
) {
console.log(
`Updating market slot for ${marketArgs.marketName} with slot ${l3['marketSlot']}`
);
this.lastMarketSlotMap
.get(marketArgs.marketType)
.set(marketArgs.marketIndex, {
slot: l3['marketSlot'],
ts: Date.now(),
});
}
this.redisClient.client.set(
`last_update_orderbook_l3_${marketType}_${marketArgs.marketIndex}`,
JSON.stringify(l3)

View File

@@ -276,7 +276,7 @@ const main = async (): Promise<void> => {
commitment: stateCommitment,
};
slotSubscriber = new SlotSubscriber(connection, {
resubTimeoutMs: 5000
resubTimeoutMs: 5000,
});
await slotSubscriber.subscribe();
}

View File

@@ -115,10 +115,10 @@
enabled "2.0.x"
kuler "^2.0.0"
"@drift-labs/sdk@2.71.0-beta.3":
version "2.71.0-beta.3"
resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.71.0-beta.3.tgz#bddb4c5a2c3661dd12e533b4450f97d03d698a9a"
integrity sha512-/MDv4678WGrgTKOMZlemvmCnT9Xs7gbQmY2wGQQN2umzXIa/ifCovD5kSNZcARlQuZltnLv8b8Hr98euzMt5aA==
"@drift-labs/sdk@2.72.0-beta.1":
version "2.72.0-beta.1"
resolved "https://registry.yarnpkg.com/@drift-labs/sdk/-/sdk-2.72.0-beta.1.tgz#bee1269f877970f10e53f651d19aced79e75a0bc"
integrity sha512-Fgz2WFoTxFetBNBEdzPSKi6IbGnUD6zo5EqUZqW3rICJcpjvjJazKNe9NnYy6q753wnMiYcCwhn29IxcIhAl0g==
dependencies:
"@coral-xyz/anchor" "0.28.1-beta.2"
"@ellipsis-labs/phoenix-sdk" "^1.4.2"