diff options
author | Dan Finlay <dan@danfinlay.com> | 2016-09-12 23:50:42 +0800 |
---|---|---|
committer | Dan Finlay <dan@danfinlay.com> | 2016-09-12 23:50:42 +0800 |
commit | 5c1d8e299e68be6a74935f4eff56f68a9ccf5b72 (patch) | |
tree | 566dbe5d28526c73e754322b45e5394ab48fb8f6 | |
parent | f51a13abaf8808968db279c060ec360c174253c7 (diff) | |
download | tangerine-wallet-browser-5c1d8e299e68be6a74935f4eff56f68a9ccf5b72.tar tangerine-wallet-browser-5c1d8e299e68be6a74935f4eff56f68a9ccf5b72.tar.gz tangerine-wallet-browser-5c1d8e299e68be6a74935f4eff56f68a9ccf5b72.tar.bz2 tangerine-wallet-browser-5c1d8e299e68be6a74935f4eff56f68a9ccf5b72.tar.lz tangerine-wallet-browser-5c1d8e299e68be6a74935f4eff56f68a9ccf5b72.tar.xz tangerine-wallet-browser-5c1d8e299e68be6a74935f4eff56f68a9ccf5b72.tar.zst tangerine-wallet-browser-5c1d8e299e68be6a74935f4eff56f68a9ccf5b72.zip |
Select first address when restoring vault
Fixes #642
-rw-r--r-- | app/scripts/lib/idStore.js | 12 | ||||
-rw-r--r-- | test/unit/idStore-test.js | 18 |
2 files changed, 28 insertions, 2 deletions
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() + }) + }) + }) }) }) |