feat: handle case where TOB is empty for bids or asks for TOB checker
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user