Merge pull request #4391 from MetaMask/newui-imported-accounts-select-fix

metamask-controller - update preferences controller addresses after import account
feature/default_network_editable
kumavis 7 years ago committed by GitHub
commit 76c5851df1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 20
      app/scripts/metamask-controller.js

@ -350,7 +350,7 @@ module.exports = class MetamaskController extends EventEmitter {
verifySeedPhrase: nodeify(this.verifySeedPhrase, this), verifySeedPhrase: nodeify(this.verifySeedPhrase, this),
clearSeedWordCache: this.clearSeedWordCache.bind(this), clearSeedWordCache: this.clearSeedWordCache.bind(this),
resetAccount: nodeify(this.resetAccount, this), resetAccount: nodeify(this.resetAccount, this),
importAccountWithStrategy: this.importAccountWithStrategy.bind(this), importAccountWithStrategy: nodeify(this.importAccountWithStrategy, this),
// vault management // vault management
submitPassword: nodeify(keyringController.submitPassword, keyringController), submitPassword: nodeify(keyringController.submitPassword, keyringController),
@ -608,15 +608,15 @@ module.exports = class MetamaskController extends EventEmitter {
* @param {any} args - The data required by that strategy to import an account. * @param {any} args - The data required by that strategy to import an account.
* @param {Function} cb - A callback function called with a state update on success. * @param {Function} cb - A callback function called with a state update on success.
*/ */
importAccountWithStrategy (strategy, args, cb) { async importAccountWithStrategy (strategy, args) {
accountImporter.importAccount(strategy, args) const privateKey = await accountImporter.importAccount(strategy, args)
.then((privateKey) => { const keyring = await this.keyringController.addNewKeyring('Simple Key Pair', [ privateKey ])
return this.keyringController.addNewKeyring('Simple Key Pair', [ privateKey ]) const accounts = await keyring.getAccounts()
}) // update accounts in preferences controller
.then(keyring => keyring.getAccounts()) const allAccounts = await this.keyringController.getAccounts()
.then((accounts) => this.preferencesController.setSelectedAddress(accounts[0])) this.preferencesController.setAddresses(allAccounts)
.then(() => { cb(null, this.keyringController.fullUpdate()) }) // set new account as selected
.catch((reason) => { cb(reason) }) await this.preferencesController.setSelectedAddress(accounts[0])
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------

Loading…
Cancel
Save