aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/nonce-tracker.js
diff options
context:
space:
mode:
authorfrankiebee <frankie.diamond@gmail.com>2017-06-22 08:28:19 +0800
committerfrankiebee <frankie.diamond@gmail.com>2017-06-22 08:28:19 +0800
commitfa8c74fe9b19229580224815cc131611ee29027c (patch)
treec5ff31b961f863d5d0d72ec7f77dd00714743cf4 /app/scripts/lib/nonce-tracker.js
parent0d8c02db35ac56acb2552c30e7a1bb9f1c1193aa (diff)
downloadtangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.tar.gz
tangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.tar.zst
tangerine-wallet-browser-fa8c74fe9b19229580224815cc131611ee29027c.zip
add a test for #getNonceLock
Diffstat (limited to 'app/scripts/lib/nonce-tracker.js')
-rw-r--r--app/scripts/lib/nonce-tracker.js22
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