diff --git a/app/scripts/controllers/cached-balances.js b/app/scripts/controllers/cached-balances.js index d978c8927..3cee10df0 100644 --- a/app/scripts/controllers/cached-balances.js +++ b/app/scripts/controllers/cached-balances.js @@ -65,6 +65,14 @@ export default class CachedBalancesController { return balancesToCache } + /** + * Removes cachedBalances + */ + + clearCachedBalances () { + this.store.updateState({ cachedBalances: {} }) + } + /** * Sets up listeners and subscriptions which should trigger an update of cached balances. These updates will * happen when the current account changes. Which happens on block updates, as well as on network and account diff --git a/app/scripts/lib/account-tracker.js b/app/scripts/lib/account-tracker.js index dd8a2a479..974920ee4 100644 --- a/app/scripts/lib/account-tracker.js +++ b/app/scripts/lib/account-tracker.js @@ -151,6 +151,14 @@ export default class AccountTracker { this.store.updateState({ accounts }) } + /** + * Removes all addresses and associated balances + */ + + clearAccounts () { + this.store.updateState({ accounts: {} }) + } + /** * Given a block, updates this AccountTracker's currentBlockGasLimit, and then updates each local account's balance * via EthQuery diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index c64e92ff2..396873d36 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -631,6 +631,12 @@ export default class MetamaskController extends EventEmitter { // clear permissions this.permissionsController.clearPermissions() + // clear accounts in accountTracker + this.accountTracker.clearAccounts() + + // clear cachedBalances + this.cachedBalancesController.clearCachedBalances() + // clear unapproved transactions this.txController.txStateManager.clearUnapprovedTxs()