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 {
constructor (opts = {}) {
const initState = opts.initState || {}
const initState = opts.initState || { frequentRPCList: [] }
this.store = new ObservableStore(initState)
}
@ -12,7 +12,7 @@ class PreferencesController {
// PUBLIC METHODS
//
setSelectedAddress(_address) {
setSelectedAddress (_address) {
return new Promise((resolve, reject) => {
const address = normalizeAddress(_address)
this.store.updateState({ selectedAddress: address })
@ -20,10 +20,30 @@ class PreferencesController {
})
}
getSelectedAddress(_address) {
getSelectedAddress (_address) {
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
//

View File

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