1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

controllers - transactions - pending-tx-tracker - _getBlock - poll until block is truthy

This commit is contained in:
kumavis 2018-05-25 13:30:26 -07:00
parent 61ef4f1f29
commit 9f8d5f0547

View File

@ -1,6 +1,7 @@
const EventEmitter = require('events')
const log = require('loglevel')
const EthQuery = require('ethjs-query')
const timeout = (duration) => new Promise(resolve => setTimeout(resolve, duration))
/**
Event emitter utility class for tracking the transactions as they<br>
@ -212,7 +213,15 @@ class PendingTransactionTracker extends EventEmitter {
}
async _getBlock (blockNumber) {
return await this.query.getBlockByNumber(blockNumber, false)
let block
while (!block) {
// block requests will sometimes return null due do the infura api
// being backed by multiple out-of-sync clients
block = await this.query.getBlockByNumber(blockNumber, false)
// if block is null, wait 1 sec then try again
if (!block) await timeout(1000)
}
return block
}
/**