Skip to content

Commit dad3bfc

Browse files
committed
Fix null blocks from RPC
1 parent b6dc740 commit dad3bfc

File tree

2 files changed

+23
-13
lines changed

2 files changed

+23
-13
lines changed

docker-compose-dev.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -352,9 +352,9 @@ services:
352352
SCHEMA: 'events_linea'
353353
FEAT_ZEROEX_EXCHANGE_PROXY: "false"
354354
SETTLER_DEPLOYMENT_BLOCK: 6917652
355-
MAX_BLOCKS_TO_SEARCH: 800
356-
MAX_BLOCKS_TO_PULL: 100
357-
MAX_BLOCKS_REORG: 500
355+
MAX_BLOCKS_TO_SEARCH: 125
356+
MAX_BLOCKS_TO_PULL: 25
357+
MAX_BLOCKS_REORG: 125
358358
SECONDS_BETWEEN_RUNS: 1
359359
RESCRAPE_BLOCKS: 10
360360
FEAT_WRAP_UNWRAP_NATIVE_EVENT: "true"
@@ -363,6 +363,7 @@ services:
363363
FEAT_ERC20_TRANSFER_ALL: "true"
364364
FEAT_SETTLER_ERC721_TRANSFER_EVENT: "true"
365365
TOKENS_FROM_TRANSFERS_START_BLOCK: "1"
366+
FEAT_SOCKET_BRIDGE_EVENT: "true"
366367
SOCKET_BRIDGE_CONTRACT_ADDRESS: "0x3a23f943181408eac424116af7b7790c94cb97a5"
367368
SOCKET_BRIDGE_EVENT_START_BLOCK: "6917652"
368369
networks:

src/data_sources/events/web3.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -253,17 +253,26 @@ export class Web3Source {
253253
}
254254

255255
public async getBlockInfoAsync(blockNumber: number): Promise<BlockWithoutTransactionData> {
256-
try {
257-
logger.debug(`Fetching block ${blockNumber}`);
258-
259-
const block = (await this._web3Wrapper.getBlockIfExistsAsync(blockNumber)) as BlockWithoutTransactionData;
260-
261-
if (block == null) {
262-
throw new Error(`Block ${blockNumber} returned null`);
256+
while (true) {
257+
try {
258+
logger.debug(`Fetching block ${blockNumber}`);
259+
260+
const block = (await this._web3Wrapper.getBlockIfExistsAsync(blockNumber)) as BlockWithoutTransactionData;
261+
262+
if (block == null) {
263+
logger.warn(`Block ${blockNumber} returned null, likely because the RPC node is not fully synced. Retrying...`);
264+
await new Promise((resolve) => setTimeout(resolve, 1000));
265+
continue;
266+
}
267+
return block;
268+
} catch (err) {
269+
if (err instanceof Error) {
270+
logger.error(`Error while fetching block ${blockNumber}: ${err.message}. Retrying...`);
271+
} else {
272+
logger.error(`Unknown error while fetching block ${blockNumber}. Retrying...`);
273+
}
274+
await new Promise((resolve) => setTimeout(resolve, 1000));
263275
}
264-
return block;
265-
} catch (err) {
266-
throw new Error(`Encountered error while fetching block ${blockNumber}: ${err}`);
267276
}
268277
}
269278

0 commit comments

Comments
 (0)