diff options
author | frankiebee <frankie.diamond@gmail.com> | 2017-06-22 08:28:19 +0800 |
---|---|---|
committer | frankiebee <frankie.diamond@gmail.com> | 2017-06-22 08:28:19 +0800 |
commit | fa8c74fe9b19229580224815cc131611ee29027c (patch) | |
tree | c5ff31b961f863d5d0d72ec7f77dd00714743cf4 /app/scripts | |
parent | 0d8c02db35ac56acb2552c30e7a1bb9f1c1193aa (diff) | |
download | tangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.tar tangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.tar.gz tangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.tar.bz2 tangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.tar.lz tangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.tar.xz tangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.tar.zst tangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.zip |
add a test for #getNonceLock
Diffstat (limited to 'app/scripts')
-rw-r--r-- | app/scripts/lib/nonce-tracker.js | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/app/scripts/lib/nonce-tracker.js b/app/scripts/lib/nonce-tracker.js index 6e9d094bc..ff2317a91 100644 --- a/app/scripts/lib/nonce-tracker.js +++ b/app/scripts/lib/nonce-tracker.js @@ -1,4 +1,4 @@ -const EthQuery = require('ethjs-query') +const EthQuery = require('eth-query') class NonceTracker { @@ -20,10 +20,10 @@ class NonceTracker { const currentBlock = await this._getCurrentBlock() const blockNumber = currentBlock.number const pendingTransactions = this.getPendingTransactions(address) - const baseCount = await this.ethQuery.getTransactionCount(address, blockNumber) - const nextNonce = baseCount + pendingTransactions + const baseCount = await this._getTxCount(address, blockNumber) + const nextNonce = parseInt(baseCount) + pendingTransactions.length + 1 // return next nonce and release cb - return { nextNonce, releaseLock } + return { nextNonce: nextNonce.toString(16), releaseLock } } async _getCurrentBlock() { @@ -37,13 +37,23 @@ class NonceTracker { _takeLock(lockId) { let releaseLock = null // create and store lock - const lock = new Promise((reject, resolve) => { releaseLock = resolve }) + const lock = new Promise((resolve, reject) => { releaseLock = resolve }) this.lockMap[lockId] = lock // setup lock teardown - lock.then(() => delete this.lockMap[lockId]) + lock.then(() => { + delete this.lockMap[lockId] + }) return releaseLock } + _getTxCount (address, blockNumber) { + return new Promise((resolve, reject) => { + this.ethQuery.getTransactionCount(address, blockNumber, (err, result) => { + err ? reject(err) : resolve(result) + }) + }) + } + } module.exports = NonceTracker |