Skip to content

Commit 08c9c4c

Browse files
committed
fix: add subscribe event to autocc to avoid redundant process;
fix: init checkpoint 1 block shift
1 parent be743a3 commit 08c9c4c

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

packages/orap/signal/event.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,12 @@ export class EventSignal implements Signal {
4949
this.subscribeCallback = async (...args: Array<any>) => {
5050
const _contractEventPayload = args.pop()
5151
await this.callback(...args, _contractEventPayload.log)
52+
await this.crosschecker?.cache!.addLog(_contractEventPayload.log)
5253
}
5354
// to align with subscribe listener, parse event params and add EventLog to the last
5455
this.crosscheckCallback = async (log: Log) => {
5556
const parsedLog = this.contract.interface.decodeEventLog(this.eventFragment, log.data, log.topics)
57+
this.logger.info('crosschecker capture a missing event! processing...', log.transactionHash, log.index)
5658
await this.callback(...parsedLog, log)
5759
}
5860
}

packages/reku/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Options:
2828
- `store`?: the Store used to cache the <txhash, logindex> that already processed.
2929
- `storeKeyPrefix`?: set the prefix to all keys when set key-value to store (cache), e.g. key = prefix+'txHashList', prefix can be "project:app:network:" to form a "project:app:network:txHashList" redis key., defult: ''
3030
- `storeTtl`?: the ttl for <txhash, logindex> record in store, defualt: no limit
31-
- `batchBlocksCount`?: how many blocks to get per `getLogs` check, in readtime mode it waits until the new block num >= `batchBlocksCount`.
31+
- `batchBlocksCount`?: how many blocks to get per `getLogs` check, in readtime mode it waits until the new block num >= `batchBlocksCount`. default: 10
3232
- `delayBlockFromLatest`?: mostly for realtime mode; each time cc wait until `latest height > toBlock + delayBlockFromLatest`, default: 1
3333
- `blockInterval`?: the block interval (in ms) of the given chain, default: 12000 for eth
3434
- `pollingInterval`?: how long does it take between 2 block height check polling checks; mostly for limiting getLogs calling rate in catchup mode, default: 3000 ms

packages/reku/event/crosschecker/autochecker.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export class AutoCrossChecker extends BaseCrossChecker {
5959
const latestblocknum = await retryOnNull(async () => await this.provider.provider?.getBlockNumber())
6060

6161
// resume checkpoint priority: options.fromBlock > cache > latestblocknum + 1
62-
const defaultInitCheckpoint = await this.cache.getCheckpoint() ?? latestblocknum + 1
62+
const defaultInitCheckpoint = await this.cache.getCheckpoint() ?? (latestblocknum + 1)
6363

6464
const {
6565
fromBlock = defaultInitCheckpoint,
@@ -86,7 +86,7 @@ export class AutoCrossChecker extends BaseCrossChecker {
8686

8787
const waitNextCrosscheck = async (): Promise<boolean> => {
8888
const latestblocknum = await retryOnNull(async () => await this.provider.provider?.getBlockNumber())
89-
this.logger.info('[*] ccrOptions: fromBlock', ccrOptions.fromBlock, ', toBlock', ccrOptions.toBlock, ', latestblocknum', latestblocknum)
89+
this.logger.debug('[*] ccrOptions: fromBlock', ccrOptions.fromBlock, ', toBlock', ccrOptions.toBlock, ', latestblocknum', latestblocknum)
9090
if (ccrOptions.toBlock + delayBlockFromLatest > latestblocknum) {
9191
// sleep until the toBlock
9292
this.logger.debug('sleep until the latestblocknum >= toBlock + delayBlockFromLatest, i.e.', (ccrOptions.toBlock + delayBlockFromLatest - latestblocknum) * blockInterval, 'ms')

0 commit comments

Comments
 (0)