diff options
author | Kevin Serrano <kevin.serrano@consensys.net> | 2017-10-27 07:22:08 +0800 |
---|---|---|
committer | Kevin Serrano <kevin.serrano@consensys.net> | 2017-10-27 07:22:08 +0800 |
commit | 1e9c0a9db2d58e61361bff7430d3a74006ef131c (patch) | |
tree | 1d1f09bfe2e1985c42d5a117e8e63d19c71a360b /app/scripts/controllers/computed-balances.js | |
parent | a387def701303e56f721fdc7c716e72641bfaf8f (diff) | |
parent | 19afb638194a11367250153a710d77011665132a (diff) | |
download | tangerine-wallet-browser-1e9c0a9db2d58e61361bff7430d3a74006ef131c.tar tangerine-wallet-browser-1e9c0a9db2d58e61361bff7430d3a74006ef131c.tar.gz tangerine-wallet-browser-1e9c0a9db2d58e61361bff7430d3a74006ef131c.tar.bz2 tangerine-wallet-browser-1e9c0a9db2d58e61361bff7430d3a74006ef131c.tar.lz tangerine-wallet-browser-1e9c0a9db2d58e61361bff7430d3a74006ef131c.tar.xz tangerine-wallet-browser-1e9c0a9db2d58e61361bff7430d3a74006ef131c.tar.zst tangerine-wallet-browser-1e9c0a9db2d58e61361bff7430d3a74006ef131c.zip |
Resolve merge conflicts
Diffstat (limited to 'app/scripts/controllers/computed-balances.js')
-rw-r--r-- | app/scripts/controllers/computed-balances.js | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/app/scripts/controllers/computed-balances.js b/app/scripts/controllers/computed-balances.js index 2479e1b3a..907b087cf 100644 --- a/app/scripts/controllers/computed-balances.js +++ b/app/scripts/controllers/computed-balances.js @@ -20,23 +20,34 @@ class ComputedbalancesController { } updateAllBalances () { - for (let address in this.accountTracker.store.getState().accounts) { + Object.keys(this.balances).forEach((balance) => { + const address = balance.address this.balances[address].updateBalance() - } + }) } _initBalanceUpdating () { const store = this.accountTracker.store.getState() - this.addAnyAccountsFromStore(store) - this.accountTracker.store.subscribe(this.addAnyAccountsFromStore.bind(this)) + this.syncAllAccountsFromStore(store) + this.accountTracker.store.subscribe(this.syncAllAccountsFromStore.bind(this)) } - addAnyAccountsFromStore(store) { - const balances = store.accounts + syncAllAccountsFromStore (store) { + const upstream = Object.keys(store.accounts) + const balances = Object.keys(this.balances) + .map(address => this.balances[address]) - for (let address in balances) { + // Follow new addresses + for (const address in balances) { this.trackAddressIfNotAlready(address) } + + // Unfollow old ones + balances.forEach(({ address }) => { + if (!upstream.includes(address)) { + delete this.balances[address] + } + }) } trackAddressIfNotAlready (address) { @@ -47,14 +58,14 @@ class ComputedbalancesController { } trackAddress (address) { - let updater = new BalanceController({ + const updater = new BalanceController({ address, accountTracker: this.accountTracker, txController: this.txController, blockTracker: this.blockTracker, }) updater.store.subscribe((accountBalance) => { - let newState = this.store.getState() + const newState = this.store.getState() newState.computedBalances[address] = accountBalance this.store.updateState(newState) }) |