aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/scripts/lib/config-manager.js11
-rw-r--r--app/scripts/lib/idStore.js17
-rw-r--r--ui/app/actions.js18
-rw-r--r--ui/app/components/account-panel.js6
-rw-r--r--ui/app/reducers/app.js4
5 files changed, 32 insertions, 24 deletions
diff --git a/app/scripts/lib/config-manager.js b/app/scripts/lib/config-manager.js
index c79dc7a8f..102327c2d 100644
--- a/app/scripts/lib/config-manager.js
+++ b/app/scripts/lib/config-manager.js
@@ -102,6 +102,17 @@ ConfigManager.prototype.setWallet = function(wallet) {
this.setData(data)
}
+ConfigManager.prototype.getSelectedAccount = function() {
+ var config = this.getConfig()
+ return config.selectedAccount
+}
+
+ConfigManager.prototype.setSelectedAccount = function(address) {
+ var config = this.getConfig()
+ config.selectedAccount = address
+ this.setConfig(config)
+}
+
ConfigManager.prototype.getWallet = function() {
return this.migrator.getData().wallet
}
diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js
index 525fdae30..92d0f9668 100644
--- a/app/scripts/lib/idStore.js
+++ b/app/scripts/lib/idStore.js
@@ -9,7 +9,7 @@ const extend = require('xtend')
const createId = require('web3-provider-engine/util/random-id')
const autoFaucet = require('./auto-faucet')
const configManager = require('./config-manager-singleton')
-const DEFAULT_RPC = 'https://rawtestrpc.metamask.io/'
+const DEFAULT_RPC = 'https://testrpc.metamask.io/'
module.exports = IdentityStore
@@ -72,8 +72,7 @@ IdentityStore.prototype.setStore = function(store){
IdentityStore.prototype.clearSeedWordCache = function(cb) {
configManager.setShowSeedWords(false)
- var accounts = this._loadIdentities()
- cb(null, accounts)
+ cb(null, configManager.getSelectedAccount())
}
IdentityStore.prototype.getState = function(){
@@ -85,6 +84,7 @@ IdentityStore.prototype.getState = function(){
seedWords: seedWords,
unconfTxs: configManager.unconfirmedTxs(),
transactions: configManager.getTxList(),
+ selectedAddress: configManager.getSelectedAccount(),
}))
}
@@ -97,7 +97,7 @@ IdentityStore.prototype.getSeedIfUnlocked = function() {
}
IdentityStore.prototype.getSelectedAddress = function(){
- return this._currentState.selectedAddress
+ return configManager.getSelectedAccount()
}
IdentityStore.prototype.setSelectedAddress = function(address){
@@ -106,7 +106,7 @@ IdentityStore.prototype.setSelectedAddress = function(address){
address = addresses[0]
}
- this._currentState.selectedAddress = address
+ configManager.setSelectedAccount(address)
this._didUpdate()
}
@@ -120,8 +120,8 @@ IdentityStore.prototype.submitPassword = function(password, cb){
this._tryPassword(password, (err) => {
if (err) return cb(err)
// load identities before returning...
- var accounts = this._loadIdentities()
- cb(null, accounts)
+ this._loadIdentities()
+ cb(null, configManager.getSelectedAccount())
})
}
@@ -213,7 +213,6 @@ IdentityStore.prototype._loadIdentities = function(){
if (!this._isUnlocked()) throw new Error('not unlocked')
var addresses = this._getAddresses()
- var accountArray = []
addresses.forEach((address, i) => {
// // add to ethStore
this._ethStore.addAccount(address)
@@ -225,10 +224,8 @@ IdentityStore.prototype._loadIdentities = function(){
mayBeFauceting: this._mayBeFauceting(i),
}
this._currentState.identities[address] = identity
- accountArray.push(identity)
})
this._didUpdate()
- return accountArray
}
// mayBeFauceting
diff --git a/ui/app/actions.js b/ui/app/actions.js
index e2d81883f..a2106ea85 100644
--- a/ui/app/actions.js
+++ b/ui/app/actions.js
@@ -105,13 +105,13 @@ function goHome() {
function tryUnlockMetamask(password) {
return (dispatch) => {
dispatch(this.unlockInProgress())
- _accountManager.submitPassword(password, (err, accounts) => {
+ _accountManager.submitPassword(password, (err, selectedAccount) => {
dispatch(this.hideLoadingIndication())
if (err) {
dispatch(this.unlockFailed())
} else {
dispatch(this.unlockMetamask())
- dispatch(this.showAccountDetail(accounts[0].address))
+ dispatch(this.showAccountDetail(selectedAccount))
}
})
}
@@ -130,7 +130,7 @@ function recoverFromSeed(password, seed) {
return (dispatch) => {
// dispatch(this.createNewVaultInProgress())
dispatch(this.showLoadingIndication())
- _accountManager.recoverFromSeed(password, seed, (err, accounts) => {
+ _accountManager.recoverFromSeed(password, seed, (err, selectedAccount) => {
if (err) {
dispatch(this.hideLoadingIndication())
var message = err.message
@@ -138,7 +138,7 @@ function recoverFromSeed(password, seed) {
}
dispatch(this.unlockMetamask())
- dispatch(this.showAccountDetail(accounts[0].address))
+ dispatch(this.showAccountDetail(selectedAccount))
dispatch(this.hideLoadingIndication())
})
}
@@ -281,9 +281,13 @@ function lockMetamask() {
}
function showAccountDetail(address) {
- return {
- type: this.SHOW_ACCOUNT_DETAIL,
- value: address,
+ return (dispatch) => {
+ _accountManager.setSelectedAddress(address)
+
+ dispatch({
+ type: this.SHOW_ACCOUNT_DETAIL,
+ value: address,
+ })
}
}
diff --git a/ui/app/components/account-panel.js b/ui/app/components/account-panel.js
index 9de29cd91..9fda2ebfc 100644
--- a/ui/app/components/account-panel.js
+++ b/ui/app/components/account-panel.js
@@ -25,7 +25,7 @@ AccountPanel.prototype.render = function() {
style: {
flex: '1 0 auto',
},
- onClick: state.onShowDetail && state.onShowDetail.bind(null, identity.address),
+ onClick: (event) => state.onShowDetail(identity.address, event),
}, [
// account identicon
@@ -53,9 +53,7 @@ AccountPanel.prototype.render = function() {
// navigate to account detail
!state.onShowDetail ? null :
- h('.arrow-right.cursor-pointer', {
- onClick: state.onShowDetail && state.onShowDetail.bind(null, identity.address),
- }, [
+ h('.arrow-right.cursor-pointer', [
h('i.fa.fa-chevron-right.fa-lg'),
]),
])
diff --git a/ui/app/reducers/app.js b/ui/app/reducers/app.js
index 131b434e9..f522e6042 100644
--- a/ui/app/reducers/app.js
+++ b/ui/app/reducers/app.js
@@ -7,12 +7,10 @@ module.exports = reduceApp
function reduceApp(state, action) {
// clone and defaults
- var accounts = valuesFor(state.metamask.accounts)
- var account = accounts.length ? valuesFor(state.metamask.accounts)[0].address : null
var defaultView = {
name: 'accountDetail',
detailView: null,
- context: account,
+ context: state.metamask.selectedAccount,
}
// confirm seed words