aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/controllers/recent-blocks.js
diff options
context:
space:
mode:
authorDan <danjm.com@gmail.com>2018-05-24 02:33:15 +0800
committerDan <danjm.com@gmail.com>2018-05-24 02:33:15 +0800
commit440905125d77d1d5d72d1aceac2940925a8ac38f (patch)
treed5418384983f9de8092d2dfdd1ddddec2ffd555e /app/scripts/controllers/recent-blocks.js
parent3dec7cb52443b24d6a24f75434ee41a54f4cfd0b (diff)
parented01c6c8264a860cdc4248991839954bdf22e2ef (diff)
downloadtangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.gz
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.bz2
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.lz
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.xz
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.zst
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.zip
Merge branch 'develop' into i3725-refactor-send-component-
Diffstat (limited to 'app/scripts/controllers/recent-blocks.js')
-rw-r--r--app/scripts/controllers/recent-blocks.js22
1 files changed, 7 insertions, 15 deletions
diff --git a/app/scripts/controllers/recent-blocks.js b/app/scripts/controllers/recent-blocks.js
index 1377c1ba9..033ef1d7e 100644
--- a/app/scripts/controllers/recent-blocks.js
+++ b/app/scripts/controllers/recent-blocks.js
@@ -119,29 +119,21 @@ class RecentBlocksController {
*/
async backfill() {
this.blockTracker.once('block', async (block) => {
- let blockNum = block.number
- let recentBlocks
- let state = this.store.getState()
- recentBlocks = state.recentBlocks
-
- while (recentBlocks.length < this.historyLength) {
+ const currentBlockNumber = Number.parseInt(block.number, 16)
+ const blocksToFetch = Math.min(currentBlockNumber, this.historyLength)
+ const prevBlockNumber = currentBlockNumber - 1
+ const targetBlockNumbers = Array(blocksToFetch).fill().map((_, index) => prevBlockNumber - index)
+ await Promise.all(targetBlockNumbers.map(async (targetBlockNumber) => {
try {
- let blockNumBn = new BN(blockNum.substr(2), 16)
- const newNum = blockNumBn.subn(1).toString(10)
- const newBlock = await this.getBlockByNumber(newNum)
+ const newBlock = await this.getBlockByNumber(targetBlockNumber)
if (newBlock) {
this.backfillBlock(newBlock)
- blockNum = newBlock.number
}
-
- state = this.store.getState()
- recentBlocks = state.recentBlocks
} catch (e) {
log.error(e)
}
- await this.wait()
- }
+ }))
})
}