aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/metamask-controller.js
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2017-10-19 06:08:34 +0800
committerDan Finlay <dan@danfinlay.com>2017-10-19 06:08:34 +0800
commit75177ce34cac589be26fb8089aac04feccdbae81 (patch)
treeb4a8071a787634b8c4fee179e22d0ae2131a9c97 /app/scripts/metamask-controller.js
parent9cc1e8a6d867b7f0663c55b017b471132f6a719e (diff)
downloadtangerine-wallet-browser-75177ce34cac589be26fb8089aac04feccdbae81.tar
tangerine-wallet-browser-75177ce34cac589be26fb8089aac04feccdbae81.tar.gz
tangerine-wallet-browser-75177ce34cac589be26fb8089aac04feccdbae81.tar.bz2
tangerine-wallet-browser-75177ce34cac589be26fb8089aac04feccdbae81.tar.lz
tangerine-wallet-browser-75177ce34cac589be26fb8089aac04feccdbae81.tar.xz
tangerine-wallet-browser-75177ce34cac589be26fb8089aac04feccdbae81.tar.zst
tangerine-wallet-browser-75177ce34cac589be26fb8089aac04feccdbae81.zip
Make account tracking more reactive
We were doing a lot of conditional observation & updating. Pulled out a bunch of that for generic observer/syncers.
Diffstat (limited to 'app/scripts/metamask-controller.js')
-rw-r--r--app/scripts/metamask-controller.js22
1 files changed, 1 insertions, 21 deletions
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index b312106dd..eae4478b5 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -123,13 +123,7 @@ module.exports = class MetamaskController extends EventEmitter {
const address = addresses[0]
this.preferencesController.setSelectedAddress(address)
}
- })
- this.keyringController.on('newAccount', (address) => {
- this.preferencesController.setSelectedAddress(address)
- this.accountTracker.addAccount(address)
- })
- this.keyringController.on('removedAccount', (address) => {
- this.accountTracker.removeAccount(address)
+ this.accountTracker.syncWithAddresses(addresses)
})
// address book controller
@@ -459,31 +453,17 @@ module.exports = class MetamaskController extends EventEmitter {
//
async createNewVaultAndKeychain (password, cb) {
- this.forgetOldAccounts()
const vault = await this.keyringController.createNewVaultAndKeychain(password)
this.selectFirstIdentity(vault)
return vault
}
async createNewVaultAndRestore (password, seed, cb) {
- this.forgetOldAccounts()
const vault = await this.keyringController.createNewVaultAndRestore(password, seed)
this.selectFirstIdentity(vault)
return vault
}
- forgetOldAccounts () {
- const { accountTracker, balancesController } = this
- let oldAccounts = []
- try {
- oldAccounts = Object.keys(accountTracker.store.getState().accounts)
- } catch (e) {
- log.warn('Could not load old accounts to forget', e)
- }
- oldAccounts.forEach(addr => accountTracker.removeAccount(addr))
- balancesController.forgetAllBalances()
- }
-
selectFirstIdentity (vault) {
const { identities } = vault
const address = Object.keys(identities)[0]