aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfrankiebee <frankie.diamond@gmail.com>2017-09-27 07:52:08 +0800
committerfrankiebee <frankie.diamond@gmail.com>2017-09-27 07:54:04 +0800
commit9fd545811226c16e11e4f2dc100a348e07f094bf (patch)
tree6953acde88e0c7ba8f39382c7a9947a0393ffe81
parent8ab23c713db1f5d45abb0ba433450591b8759809 (diff)
downloadtangerine-wallet-browser-9fd545811226c16e11e4f2dc100a348e07f094bf.tar
tangerine-wallet-browser-9fd545811226c16e11e4f2dc100a348e07f094bf.tar.gz
tangerine-wallet-browser-9fd545811226c16e11e4f2dc100a348e07f094bf.tar.bz2
tangerine-wallet-browser-9fd545811226c16e11e4f2dc100a348e07f094bf.tar.lz
tangerine-wallet-browser-9fd545811226c16e11e4f2dc100a348e07f094bf.tar.xz
tangerine-wallet-browser-9fd545811226c16e11e4f2dc100a348e07f094bf.tar.zst
tangerine-wallet-browser-9fd545811226c16e11e4f2dc100a348e07f094bf.zip
transactions: lint fixes and reveal status-update event for balance controller
-rw-r--r--app/scripts/background.js2
-rw-r--r--app/scripts/controllers/balance.js15
-rw-r--r--app/scripts/controllers/transactions.js5
-rw-r--r--app/scripts/lib/tx-state-manager.js12
-rw-r--r--app/scripts/metamask-controller.js2
-rw-r--r--test/unit/tx-controller-test.js2
6 files changed, 24 insertions, 14 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js
index 1b96d68b5..195881e15 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -114,7 +114,7 @@ function setupController (initState) {
//
updateBadge()
- controller.txController.on('updateBadge', updateBadge)
+ controller.txController.on('update:badge', updateBadge)
controller.messageManager.on('updateBadge', updateBadge)
controller.personalMessageManager.on('updateBadge', updateBadge)
diff --git a/app/scripts/controllers/balance.js b/app/scripts/controllers/balance.js
index 964dff0df..4fa4c78fe 100644
--- a/app/scripts/controllers/balance.js
+++ b/app/scripts/controllers/balance.js
@@ -33,9 +33,18 @@ class BalanceController {
_registerUpdates () {
const update = this.updateBalance.bind(this)
- this.txController.on('submitted', update)
- this.txController.on('confirmed', update)
- this.txController.on('failed', update)
+
+ this.txController.on('tx:status-update', (txId, status) => {
+ switch (status) {
+ case 'submitted':
+ case 'confirmed':
+ case 'failed':
+ update()
+ return
+ default:
+ return
+ }
+ })
this.accountTracker.store.subscribe(update)
this.blockTracker.on('block', update)
}
diff --git a/app/scripts/controllers/transactions.js b/app/scripts/controllers/transactions.js
index de5fa5b20..1b647a4ed 100644
--- a/app/scripts/controllers/transactions.js
+++ b/app/scripts/controllers/transactions.js
@@ -43,7 +43,8 @@ module.exports = class TransactionController extends EventEmitter {
txHistoryLimit: opts.txHistoryLimit,
getNetwork: this.getNetwork.bind(this),
})
-
+ this.store = this.txStateManager.store
+ this.txStateManager.on('tx:status-update', this.emit.bind(this, 'tx:status-update'))
this.nonceTracker = new NonceTracker({
provider: this.provider,
getPendingTransactions: this.txStateManager.getPendingTransactions.bind(this.txStateManager),
@@ -69,7 +70,7 @@ module.exports = class TransactionController extends EventEmitter {
getPendingTransactions: this.txStateManager.getPendingTransactions.bind(this.txStateManager),
})
- this.txStateManager.store.subscribe(() => this.emit('updateBadge'))
+ this.txStateManager.store.subscribe(() => this.emit('update:badge'))
this.pendingTxTracker.on('txWarning', this.txStateManager.updateTx.bind(this.txStateManager))
this.pendingTxTracker.on('txFailed', this.txStateManager.setTxStatusFailed.bind(this.txStateManager))
diff --git a/app/scripts/lib/tx-state-manager.js b/app/scripts/lib/tx-state-manager.js
index d7b76fe22..abb9d7910 100644
--- a/app/scripts/lib/tx-state-manager.js
+++ b/app/scripts/lib/tx-state-manager.js
@@ -5,7 +5,7 @@ const ethUtil = require('ethereumjs-util')
const txStateHistoryHelper = require('./tx-state-history-helper')
module.exports = class TransactionStateManger extends EventEmitter {
- constructor ({initState, txHistoryLimit, getNetwork}) {
+ constructor ({ initState, txHistoryLimit, getNetwork }) {
super()
this.store = new ObservableStore(
@@ -15,7 +15,8 @@ module.exports = class TransactionStateManger extends EventEmitter {
this.txHistoryLimit = txHistoryLimit
this.getNetwork = getNetwork
}
- // Returns the number of txs for the current network.
+
+ // Returns the number of txs for the current network.
getTxCount () {
return this.getTxList().length
}
@@ -31,7 +32,6 @@ module.exports = class TransactionStateManger extends EventEmitter {
}
// Returns the tx list
-
getUnapprovedTxList () {
const txList = this.getTxsByMetaData('status', 'unapproved')
return txList.reduce((result, tx) => {
@@ -69,7 +69,7 @@ module.exports = class TransactionStateManger extends EventEmitter {
// or rejected tx's.
// not tx's that are pending or unapproved
if (txCount > txHistoryLimit - 1) {
- const index = transactions.findIndex((metaTx) => ((metaTx.status === 'confirmed' || metaTx.status === 'rejected')))
+ const index = transactions.findIndex((metaTx) => metaTx.status === 'confirmed' || metaTx.status === 'rejected')
transactions.splice(index, 1)
}
transactions.push(txMeta)
@@ -229,12 +229,12 @@ module.exports = class TransactionStateManger extends EventEmitter {
const txMeta = this.getTx(txId)
txMeta.status = status
this.emit(`${txMeta.id}:${status}`, txId)
- this.emit(`${status}`, txId)
+ this.emit(`tx:status-update`, txId, status)
if (status === 'submitted' || status === 'rejected') {
this.emit(`${txMeta.id}:finished`, txMeta)
}
this.updateTx(txMeta)
- this.emit('updateBadge')
+ this.emit('update:badge')
}
// Saves the new/updated txList.
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index 96b34507f..0f850b7f5 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -157,7 +157,7 @@ module.exports = class MetamaskController extends EventEmitter {
this.publicConfigStore = this.initPublicConfigStore()
// manual disk state subscriptions
- this.txController.txStateManager.store.subscribe((state) => {
+ this.txController.store.subscribe((state) => {
this.store.updateState({ TransactionController: state })
})
this.keyringController.store.subscribe((state) => {
diff --git a/test/unit/tx-controller-test.js b/test/unit/tx-controller-test.js
index 8d45fb9b5..c1612a30c 100644
--- a/test/unit/tx-controller-test.js
+++ b/test/unit/tx-controller-test.js
@@ -210,7 +210,7 @@ describe('Transaction Controller', function () {
txParams: {}
}
- const eventNames = ['updateBadge', '1:unapproved']
+ const eventNames = ['update:badge', '1:unapproved']
const listeners = []
eventNames.forEach((eventName) => {
listeners.push(new Promise((resolve) => {