1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Basic infrasture for RPC list added.

This commit is contained in:
Kevin Serrano 2017-02-21 12:32:13 -08:00
parent 09c7b9d242
commit db48f8984f
No known key found for this signature in database
GPG Key ID: 7CC862A58D2889B4
2 changed files with 24 additions and 3 deletions

View File

@ -4,7 +4,7 @@ const normalizeAddress = require('../sig-util').normalize
class PreferencesController { class PreferencesController {
constructor (opts = {}) { constructor (opts = {}) {
const initState = opts.initState || {} const initState = opts.initState || { frequentRPCList: [] }
this.store = new ObservableStore(initState) this.store = new ObservableStore(initState)
} }
@ -12,7 +12,7 @@ class PreferencesController {
// PUBLIC METHODS // PUBLIC METHODS
// //
setSelectedAddress(_address) { setSelectedAddress (_address) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const address = normalizeAddress(_address) const address = normalizeAddress(_address)
this.store.updateState({ selectedAddress: address }) this.store.updateState({ selectedAddress: address })
@ -20,10 +20,30 @@ class PreferencesController {
}) })
} }
getSelectedAddress(_address) { getSelectedAddress (_address) {
return this.store.getState().selectedAddress return this.store.getState().selectedAddress
} }
addToFrequentRPCList (_url) {
return new Promise((resolve, reject) => {
let rpcList = this.getFrequentRPCList()
let index = rpcList.findIndex((element) => { element === _url })
if (index) {
rpcList.splice(index, 1)
}
if (rpcList.length >= 3) {
rpcList.shift()
}
rpcList.push(_url)
this.store.updateState({ frequentRPCList: rpcList })
resolve()
})
}
getFrequentRPCList () {
return this.store.getState().frequentRPCList
}
// //
// PRIVATE METHODS // PRIVATE METHODS
// //

View File

@ -259,6 +259,7 @@ module.exports = class MetamaskController extends EventEmitter {
// PreferencesController // PreferencesController
setSelectedAddress: nodeify(preferencesController.setSelectedAddress).bind(preferencesController), setSelectedAddress: nodeify(preferencesController.setSelectedAddress).bind(preferencesController),
setFrequentRPCList: nodeify(preferencesController.setFrequentRPCList).bind(preferencesController),
// KeyringController // KeyringController
setLocked: nodeify(keyringController.setLocked).bind(keyringController), setLocked: nodeify(keyringController.setLocked).bind(keyringController),