aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2017-01-29 05:12:12 +0800
committerkumavis <aaron@kumavis.me>2017-01-29 05:12:12 +0800
commite9cdbf4f89085cc6c31991416eaac7ca91f9c1d4 (patch)
tree170305624e085f7774c35c537627ca708b258d40 /app
parent1fd17467442fb60f308b116fea53f87a4cc16dca (diff)
downloadtangerine-wallet-browser-e9cdbf4f89085cc6c31991416eaac7ca91f9c1d4.tar
tangerine-wallet-browser-e9cdbf4f89085cc6c31991416eaac7ca91f9c1d4.tar.gz
tangerine-wallet-browser-e9cdbf4f89085cc6c31991416eaac7ca91f9c1d4.tar.bz2
tangerine-wallet-browser-e9cdbf4f89085cc6c31991416eaac7ca91f9c1d4.tar.lz
tangerine-wallet-browser-e9cdbf4f89085cc6c31991416eaac7ca91f9c1d4.tar.xz
tangerine-wallet-browser-e9cdbf4f89085cc6c31991416eaac7ca91f9c1d4.tar.zst
tangerine-wallet-browser-e9cdbf4f89085cc6c31991416eaac7ca91f9c1d4.zip
keyring - add and initialize obs-store
Diffstat (limited to 'app')
-rw-r--r--app/scripts/keyring-controller.js38
-rw-r--r--app/scripts/metamask-controller.js4
2 files changed, 36 insertions, 6 deletions
diff --git a/app/scripts/keyring-controller.js b/app/scripts/keyring-controller.js
index e1e1342aa..460c71e27 100644
--- a/app/scripts/keyring-controller.js
+++ b/app/scripts/keyring-controller.js
@@ -1,12 +1,14 @@
const ethUtil = require('ethereumjs-util')
+const BN = ethUtil.BN
const bip39 = require('bip39')
const EventEmitter = require('events').EventEmitter
+const ObservableStore = require('obs-store')
const filter = require('promise-filter')
const encryptor = require('browser-passworder')
-
+const createId = require('./lib/random-id')
const normalize = require('./lib/sig-util').normalize
const messageManager = require('./lib/message-manager')
-const BN = ethUtil.BN
+function noop () {}
// Keyrings:
const SimpleKeyring = require('./keyrings/simple')
@@ -16,9 +18,8 @@ const keyringTypes = [
HdKeyring,
]
-const createId = require('./lib/random-id')
-module.exports = class KeyringController extends EventEmitter {
+class KeyringController extends EventEmitter {
// PUBLIC METHODS
//
@@ -29,6 +30,8 @@ module.exports = class KeyringController extends EventEmitter {
constructor (opts) {
super()
+ const initState = opts.initState || {}
+ this.store = new ObservableStore(initState)
this.configManager = opts.configManager
this.ethStore = opts.ethStore
this.encryptor = encryptor
@@ -643,5 +646,30 @@ module.exports = class KeyringController extends EventEmitter {
}
+//
+// Static Class Methods
+//
+
+KeyringController.selectFromState = (state) => {
+ const config = state.config
+ return {
+ vault: state.vault,
+ selectedAccount: config.selectedAccount,
+ walletNicknames: state.walletNicknames,
+ }
+}
+
+KeyringController.flattenToOldState = (state) => {
+ const data = {
+ vault: state.vault,
+ walletNicknames: state.walletNicknames,
+ config: {
+ selectedAccount: state.selectedAccount,
+ },
+ }
+ return data
+}
+
+
+module.exports = KeyringController
-function noop () {}
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index bef791ec9..f3da6f53e 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -29,9 +29,10 @@ module.exports = class MetamaskController extends EventEmitter {
super()
this.opts = opts
this.state = { network: 'loading' }
+ let initState = opts.initState || {}
// observable state store
- this.store = new ObservableStore(opts.initState)
+ this.store = new ObservableStore(initState)
// config manager
this.configManager = new ConfigManager({
@@ -50,6 +51,7 @@ module.exports = class MetamaskController extends EventEmitter {
// key mgmt
this.keyringController = new KeyringController({
+ initState: initState.KeyringController,
ethStore: this.ethStore,
configManager: this.configManager,
getNetwork: this.getStateNetwork.bind(this),