diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js index 337bf7254..8b7e3ad3b 100644 --- a/app/scripts/lib/idStore.js +++ b/app/scripts/lib/idStore.js @@ -59,6 +59,7 @@ IdentityStore.prototype.createNewVault = function (password, entropy, cb) { this.configManager.setShowSeedWords(true) var seedWords = this._idmgmt.getSeed() + cb(null, seedWords) }) } @@ -124,7 +125,7 @@ IdentityStore.prototype.getSelectedAddress = function () { return configManager.getSelectedAccount() } -IdentityStore.prototype.setSelectedAddress = function (address, cb) { +IdentityStore.prototype.setSelectedAddressSync = function (address) { const configManager = this.configManager if (!address) { var addresses = this._getAddresses() @@ -132,7 +133,12 @@ IdentityStore.prototype.setSelectedAddress = function (address, cb) { } configManager.setSelectedAccount(address) - if (cb) return cb(null, address) + return address +} + +IdentityStore.prototype.setSelectedAddress = function (address, cb) { + const resultAddress = this.setSelectedAddressSync(address) + if (cb) return cb(null, resultAddress) } IdentityStore.prototype.revealAccount = function (cb) { @@ -477,6 +483,8 @@ IdentityStore.prototype._createIdmgmt = function (password, seedPhrase, entropy, configManager: this.configManager, }) + this.setSelectedAddressSync() + cb() }) }) diff --git a/test/unit/idStore-test.js b/test/unit/idStore-test.js index a763eb0e7..1ed1bf9a7 100644 --- a/test/unit/idStore-test.js +++ b/test/unit/idStore-test.js @@ -128,5 +128,23 @@ describe('IdentityStore', function() { done() }) }) + + it('should allow restoring and unlocking again', function (done) { + const assertion = assertions[0] + idStore.recoverFromSeed(password, assertion.seed, (err) => { + assert.ifError(err) + + var received = accounts[0].toLowerCase() + var expected = assertion.account.toLowerCase() + assert.equal(received, expected) + + + idStore.submitPassword(password, function(err, account) { + assert.ifError(err) + assert.equal(account, expected) + done() + }) + }) + }) }) })