1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 19:26:13 +02:00

nonce-tracker - validate nonce calc components

This commit is contained in:
kumavis 2017-07-18 12:48:16 -07:00
parent 1e71850582
commit 4f9fc8014a

View File

@ -1,4 +1,5 @@
const EthQuery = require('eth-query')
const assert = require('assert')
class NonceTracker {
@ -21,10 +22,15 @@ class NonceTracker {
// and pending count are from the same block
const currentBlock = await this._getCurrentBlock()
const pendingTransactions = this.getPendingTransactions(address)
const baseCount = await this._getTxCount(address, currentBlock)
const nextNonce = parseInt(baseCount) + pendingTransactions.length
const pendingCount = pendingTransactions.length
assert(Number.isInteger(pendingCount), 'nonce-tracker - pendingCount is an integer')
const baseCountHex = await this._getTxCount(address, currentBlock)
const baseCount = parseInt(baseCountHex, 16)
assert(Number.isInteger(baseCount), 'nonce-tracker - baseCount is an integer')
const nextNonce = baseCount + pendingCount
assert(Number.isInteger(nextNonce), 'nonce-tracker - nextNonce is an integer')
// return next nonce and release cb
return { nextNonce: nextNonce.toString(16), releaseLock }
return { nextNonce: '0x' + nextNonce.toString(16), releaseLock }
}
async _getCurrentBlock () {