From b5d03cd52418cfd09ce51a23c01e78262d3ffc9b Mon Sep 17 00:00:00 2001
From: Dan Finlay <dan@danfinlay.com>
Date: Mon, 27 Feb 2017 10:39:48 -0800
Subject: add controllers to root scripts folder

---
 app/scripts/controllers/preferences.js | 64 ++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 app/scripts/controllers/preferences.js

(limited to 'app/scripts/controllers/preferences.js')

diff --git a/app/scripts/controllers/preferences.js b/app/scripts/controllers/preferences.js
new file mode 100644
index 000000000..9343fe67b
--- /dev/null
+++ b/app/scripts/controllers/preferences.js
@@ -0,0 +1,64 @@
+const ObservableStore = require('obs-store')
+const normalizeAddress = require('eth-sig-util').normalize
+const extend = require('xtend')
+
+
+class PreferencesController {
+
+  constructor (opts = {}) {
+    const initState = extend({ frequentRpcList: [] }, opts.initState)
+    this.store = new ObservableStore(initState)
+  }
+
+  //
+  // PUBLIC METHODS
+  //
+
+  setSelectedAddress (_address) {
+    return new Promise((resolve, reject) => {
+      const address = normalizeAddress(_address)
+      this.store.updateState({ selectedAddress: address })
+      resolve()
+    })
+  }
+
+  getSelectedAddress (_address) {
+    return this.store.getState().selectedAddress
+  }
+
+  updateFrequentRpcList (_url) {
+    return this.addToFrequentRpcList(_url)
+      .then((rpcList) => {
+        this.store.updateState({ frequentRpcList: rpcList })
+        return rpcList
+      })
+  }
+
+  addToFrequentRpcList (_url) {
+    let rpcList = this.getFrequentRpcList()
+    let index = rpcList.findIndex((element) => { return element === _url })
+    if (index !== -1) {
+      rpcList.splice(index, 1)
+    }
+    if (_url !== 'http://localhost:8545') {
+      rpcList.push(_url)
+    }
+    if (rpcList.length > 2) {
+      rpcList.shift()
+    }
+    return Promise.resolve(rpcList)
+  }
+
+  getFrequentRpcList () {
+    return this.store.getState().frequentRpcList
+  }
+
+  //
+  // PRIVATE METHODS
+  //
+
+
+
+}
+
+module.exports = PreferencesController
-- 
cgit