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 6caec8e8e1
commit 1c165dd11a

View File

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