Skip to content

Commit f5acf08

Browse files
committed
Added checks to make sure RPC is good
1 parent b6266e4 commit f5acf08

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

src/worker/queues/processEventLogsQueue.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,14 @@ export const enqueueProcessEventLogs = async (
3737

3838
// Enqueue one job immediately and any delayed jobs.
3939
await _queue.add(jobName, serialized);
40-
for (const retryDelay of retryDelays) {
40+
for (let i = 0; i < retryDelays.length; i++) {
41+
const delay = parseInt(retryDelays[i]) * 1000;
42+
const attempts = i === retryDelays.length - 1 ? 10 : 0;
43+
4144
await _queue.add(jobName, serialized, {
42-
delay: parseInt(retryDelay) * 1000,
45+
delay,
46+
attempts,
47+
backoff: { type: "exponential", delay: 30_000 },
4348
});
4449
}
4550
};

src/worker/queues/processTransactionReceiptsQueue.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,14 @@ export const enqueueProcessTransactionReceipts = async (
3838

3939
// Enqueue one job immediately and any delayed jobs.
4040
await _queue.add(jobName, serialized);
41-
for (const retryDelay of retryDelays) {
41+
for (let i = 0; i < retryDelays.length; i++) {
42+
const delay = parseInt(retryDelays[i]) * 1000;
43+
const attempts = i === retryDelays.length - 1 ? 10 : 0;
44+
4245
await _queue.add(jobName, serialized, {
43-
delay: parseInt(retryDelay) * 1000,
46+
delay,
47+
attempts,
48+
backoff: { type: "exponential", delay: 30_000 },
4449
});
4550
}
4651
};

src/worker/tasks/chainIndexer.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ export const createChainIndexerTask = async (args: {
4242
return;
4343
}
4444

45+
// Ensuring that the block data exists.
46+
// Sometimes the RPC providers nodes are aware of the latest block
47+
// but the block data is not available yet.
48+
const block = await provider.getBlockWithTransactions(toBlock);
49+
50+
if (!block) {
51+
throw new Error(`Failed to get block: ${toBlock}`);
52+
}
53+
4554
// Get contract addresses to filter event logs and transaction receipts by.
4655
const contractSubscriptions = await getContractSubscriptionsByChainId(
4756
chainId,

0 commit comments

Comments
 (0)