From 694786477bcffbd77c0ab72e82b781cde323d160 Mon Sep 17 00:00:00 2001 From: James Chen Date: Mon, 18 Nov 2019 00:03:40 +0800 Subject: [PATCH] fix: Genesis block should be scanned when next scan range starts from block #1 --- packages/neuron-wallet/src/services/sync/queue.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/neuron-wallet/src/services/sync/queue.ts b/packages/neuron-wallet/src/services/sync/queue.ts index 671354a46e..d99d8c2d6e 100644 --- a/packages/neuron-wallet/src/services/sync/queue.ts +++ b/packages/neuron-wallet/src/services/sync/queue.ts @@ -57,7 +57,12 @@ export default class Queue { this.inProcess = true if (this.lockHashes.length !== 0) { - const current: bigint = await this.currentBlockNumber.getCurrent() + let current: bigint = await this.currentBlockNumber.getCurrent() + if (current === BigInt(0)) { + // If it scans from genesis block but current block number was already set to 0, + // set it to -1 to make sure `startNumber` would be set to 0. + current = BigInt(-1) + } const startNumber: bigint = current + BigInt(1) const endNumber: bigint = current + BigInt(this.fetchSize) const realEndNumber: bigint = endNumber < this.endBlockNumber ? endNumber : this.endBlockNumber