aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/keyring-controller.js
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-10-29 17:29:25 +0800
committerDan Finlay <dan@danfinlay.com>2016-10-29 17:29:25 +0800
commit18e5173f061c2e21b5acb3e1b329343b5cffc558 (patch)
tree5da23547c31351ee4da5288c7c958804f6cc30e2 /app/scripts/keyring-controller.js
parent331d9c91ee42f766fe56e2ebef1d1ad283d6c438 (diff)
downloadtangerine-wallet-browser-18e5173f061c2e21b5acb3e1b329343b5cffc558.tar.gz
tangerine-wallet-browser-18e5173f061c2e21b5acb3e1b329343b5cffc558.tar.zst
tangerine-wallet-browser-18e5173f061c2e21b5acb3e1b329343b5cffc558.zip
Now migrating old vaults to new DEN format
Diffstat (limited to 'app/scripts/keyring-controller.js')
-rw-r--r--app/scripts/keyring-controller.js33
1 files changed, 28 insertions, 5 deletions
diff --git a/app/scripts/keyring-controller.js b/app/scripts/keyring-controller.js
index 3ac101ad8..b8066e303 100644
--- a/app/scripts/keyring-controller.js
+++ b/app/scripts/keyring-controller.js
@@ -9,6 +9,9 @@ const BN = ethUtil.BN
const Transaction = require('ethereumjs-tx')
const createId = require('web3-provider-engine/util/random-id')
+// TEMPORARY UNTIL FULL DEPRECATION:
+const IdStoreMigrator = require('./lib/idStore-migrator')
+
// Keyrings:
const SimpleKeyring = require('./keyrings/simple')
const HdKeyring = require('./keyrings/hd')
@@ -34,6 +37,11 @@ module.exports = class KeyringController extends EventEmitter {
this._unconfMsgCbs = {}
this.network = null
+
+ // TEMPORARY UNTIL FULL DEPRECATION:
+ this.idStoreMigrator = new IdStoreMigrator({
+ configManager: this.configManager,
+ })
}
getState() {
@@ -63,18 +71,32 @@ module.exports = class KeyringController extends EventEmitter {
createNewVault(password, entropy, cb) {
const salt = this.encryptor.generateSalt()
this.configManager.setSalt(salt)
- this.loadKey(password)
+
+ let serialized
+
+ this.idStoreMigrator.oldSeedForPassword(password)
+ .then((oldSerialized) => {
+ if (oldSerialized) {
+ serialized = oldSerialized
+ }
+ return this.loadKey(password)
+ })
.then((key) => {
- return this.encryptor.encryptWithKey(key, [])
+ const first = serialized ? [serialized] : []
+ return this.encryptor.encryptWithKey(key, first)
})
.then((encryptedString) => {
this.configManager.setVault(encryptedString)
- // TEMPORARY SINGLE-KEYRING CONFIG:
- this.addNewKeyring('HD Key Tree', null, cb)
+ if (!serialized) {
+ // TEMPORARY SINGLE-KEYRING CONFIG:
+ return this.addNewKeyring('HD Key Tree', null, cb)
+ } else {
+ return this.submitPassword(password, cb)
+ }
// NORMAL BEHAVIOR:
- // cb(null, this.getState())
+ // return cb(null, this.getState())
})
.catch((err) => {
cb(err)
@@ -99,6 +121,7 @@ module.exports = class KeyringController extends EventEmitter {
return this.encryptor.keyFromPassword(password + salt)
.then((key) => {
this.key = key
+ this.configManager.setSalt(salt)
return key
})
}