aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2017-01-31 04:42:24 +0800
committerkumavis <aaron@kumavis.me>2017-01-31 04:42:24 +0800
commit0a1918f71a0a5768d7501e3ee799a3ed2e6d9f49 (patch)
tree3056594a3003b8e499950de3f719f62d4cf013ec
parentb6909574a7036c396ed85809cbd90aa2171b012f (diff)
downloadtangerine-wallet-browser-0a1918f71a0a5768d7501e3ee799a3ed2e6d9f49.tar
tangerine-wallet-browser-0a1918f71a0a5768d7501e3ee799a3ed2e6d9f49.tar.gz
tangerine-wallet-browser-0a1918f71a0a5768d7501e3ee799a3ed2e6d9f49.tar.bz2
tangerine-wallet-browser-0a1918f71a0a5768d7501e3ee799a3ed2e6d9f49.tar.lz
tangerine-wallet-browser-0a1918f71a0a5768d7501e3ee799a3ed2e6d9f49.tar.xz
tangerine-wallet-browser-0a1918f71a0a5768d7501e3ee799a3ed2e6d9f49.tar.zst
tangerine-wallet-browser-0a1918f71a0a5768d7501e3ee799a3ed2e6d9f49.zip
preferences - introduce preferences controller
-rw-r--r--app/scripts/lib/controllers/preferences.js30
-rw-r--r--app/scripts/metamask-controller.js9
2 files changed, 39 insertions, 0 deletions
diff --git a/app/scripts/lib/controllers/preferences.js b/app/scripts/lib/controllers/preferences.js
new file mode 100644
index 000000000..e338f5b5e
--- /dev/null
+++ b/app/scripts/lib/controllers/preferences.js
@@ -0,0 +1,30 @@
+const ObservableStore = require('obs-store')
+const normalizeAddress = require('../sig-util').normalize
+
+class PreferencesController {
+
+ constructor (opts = {}) {
+ const initState = opts.initState || {}
+ this.store = new ObservableStore(initState)
+ }
+
+ //
+ // PUBLIC METHODS
+ //
+
+ setSelectedAddress(_address) {
+ const address = normalizeAddress(_address)
+ this.store.updateState({ selectedAddress: address })
+ }
+
+ getSelectedAddress(_address) {
+ return this.store.getState().selectedAddress
+ }
+
+ //
+ // PRIVATE METHODS
+ //
+
+}
+
+module.exports = PreferencesController
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index b9a94b0c9..c0673dda4 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -11,6 +11,7 @@ const streamIntoProvider = require('web3-stream-provider/handler')
const MetaMaskProvider = require('web3-provider-engine/zero.js')
const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex
const KeyringController = require('./keyring-controller')
+const PreferencesController = require('./lib/controllers/preferences')
const NoticeController = require('./notice-controller')
const messageManager = require('./lib/message-manager')
const TxManager = require('./transaction-manager')
@@ -40,6 +41,11 @@ module.exports = class MetamaskController extends EventEmitter {
})
this.configManager.updateConversionRate()
+ // preferences controller
+ this.prefencesController = new PreferencesController({
+ initState: initState.PrefencesController,
+ })
+
// rpc provider
this.provider = this.initializeProvider(opts)
this.provider.on('block', this.logBlock.bind(this))
@@ -101,6 +107,9 @@ module.exports = class MetamaskController extends EventEmitter {
this.keyringController.store.subscribe((state) => {
this.store.updateState({ KeyringController: state })
})
+ this.prefencesController.store.subscribe((state) => {
+ this.store.updateState({ PrefencesController: state })
+ })
}
//