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:
parent
61ef4f1f29
commit
9f8d5f0547
@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user