feat: handle case where TOB is empty for bids or asks for TOB checker

This commit is contained in:
Lukas deConantsesznak
2025-08-03 10:40:50 -06:00
parent cb29896ce5
commit c52c963404

View File

@@ -720,14 +720,13 @@ const main = async () => {
const bestBidOrder = l3OrderBook.bids[0];
const bestAskOrder = l3OrderBook.asks[0];
if (bestBidOrder && bestAskOrder) {
// Create order ID strings using maker (user account) and orderId
const currentBidOrderId = `${bestBidOrder.maker.toBase58()}-${
bestBidOrder.orderId
}`;
const currentAskOrderId = `${bestAskOrder.maker.toBase58()}-${
bestAskOrder.orderId
}`;
// Track each side independently, even if one side is empty
const currentBidOrderId = bestBidOrder
? `${bestBidOrder.maker.toBase58()}-${bestBidOrder.orderId}`
: '';
const currentAskOrderId = bestAskOrder
? `${bestAskOrder.maker.toBase58()}-${bestAskOrder.orderId}`
: '';
const currentTobOrderIds = {
bidOrderId: currentBidOrderId,
@@ -736,7 +735,7 @@ const main = async () => {
const lastTobOrderId = lastTobOrderIds.get(marketIndex);
const lastUpdate = lastTobUpdateTimes.get(marketIndex);
// Check if TOB orders have changed (not just prices)
// Check if TOB orders have changed on either side
const tobChanged =
!lastTobOrderId ||
lastTobOrderId.bidOrderId !== currentTobOrderIds.bidOrderId ||
@@ -747,7 +746,9 @@ const main = async () => {
lastTobOrderIds.set(marketIndex, currentTobOrderIds);
lastTobUpdateTimes.set(marketIndex, currentTime);
logger.debug(
`TOB orders updated for market ${marketIndex}: bidOrderId=${currentTobOrderIds.bidOrderId}, askOrderId=${currentTobOrderIds.askOrderId}`
`TOB orders updated for market ${marketIndex}: bidOrderId=${
currentTobOrderIds.bidOrderId || 'none'
}, askOrderId=${currentTobOrderIds.askOrderId || 'none'}`
);
} else if (
lastUpdate &&
@@ -805,7 +806,6 @@ const main = async () => {
);
}
}
}
} catch (error) {
logger.error(`Error checking TOB for market ${marketIndex}:`, error);
}