From 363c2a0939aba5fa73e08ff8e6d65581031242d5 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Mon, 12 Sep 2016 11:07:25 -0700 Subject: Fix account unlocking SubmitPassword was not creating a new id-management This is because I broke up the old "createIdmgmt" method to not perform as much conditional logic. Now the pieces are reusable and do what they should do. --- app/scripts/lib/id-management.js | 8 ++++++++ app/scripts/lib/idStore.js | 23 +++++++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) (limited to 'app/scripts/lib') diff --git a/app/scripts/lib/id-management.js b/app/scripts/lib/id-management.js index 9b8ceb415..e250943a0 100644 --- a/app/scripts/lib/id-management.js +++ b/app/scripts/lib/id-management.js @@ -1,3 +1,11 @@ +/* ID Management + * + * This module exists to hold the decrypted credentials for the current session. + * It therefore exposes sign methods, because it is able to perform these + * with noa dditional authentication, because its very instantiation + * means the vault is unlocked. + */ + const ethUtil = require('ethereumjs-util') const Transaction = require('ethereumjs-tx') diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js index 8b7e3ad3b..1126b83e7 100644 --- a/app/scripts/lib/idStore.js +++ b/app/scripts/lib/idStore.js @@ -51,7 +51,7 @@ IdentityStore.prototype.createNewVault = function (password, entropy, cb) { this.configManager.setData({}) } - this._createIdmgmt(password, null, entropy, (err) => { + this._createVault(password, null, entropy, (err) => { if (err) return cb(err) this._autoFaucet() @@ -72,7 +72,7 @@ IdentityStore.prototype.recoverSeed = function (cb) { } IdentityStore.prototype.recoverFromSeed = function (password, seed, cb) { - this._createIdmgmt(password, seed, null, (err) => { + this._createVault(password, seed, null, (err) => { if (err) return cb(err) this._loadIdentities() @@ -449,11 +449,12 @@ IdentityStore.prototype.tryPassword = function (password, cb) { const isCorrect = keyStore.isDerivedKeyCorrect(pwDerivedKey) if (!isCorrect) return cb(new Error('Lightwallet - password incorrect')) + this._createIdMgmt(derivedKey) cb() }) } -IdentityStore.prototype._createIdmgmt = function (password, seedPhrase, entropy, cb) { +IdentityStore.prototype._createVault = function (password, seedPhrase, entropy, cb) { const opts = { password, hdPathString: this.hdPathString, @@ -476,13 +477,7 @@ IdentityStore.prototype._createIdmgmt = function (password, seedPhrase, entropy, keyStore.addHdDerivationPath(this.hdPathString, derivedKey, {curve: 'secp256k1', purpose: 'sign'}) this._createFirstWallet(derivedKey) - - this._idmgmt = new IdManagement({ - keyStore: keyStore, - derivedKey: derivedKey, - configManager: this.configManager, - }) - + this._createIdMgmt(derivedKey) this.setSelectedAddressSync() cb() @@ -490,6 +485,14 @@ IdentityStore.prototype._createIdmgmt = function (password, seedPhrase, entropy, }) } +IdentityStore.prototype._createIdMgmt = function (derivedKey) { + this._idmgmt = new IdManagement({ + keyStore: this.keyStore, + derivedKey: derivedKey, + configManager: this.configManager, + }) +} + IdentityStore.prototype.purgeCache = function () { this._getAddresses().forEach((address) => { this._ethStore.del(address) -- cgit