nifty-wallet/ui/app/selectors.js

56 lines
1.6 KiB
JavaScript
Raw Normal View History

const valuesFor = require('./util').valuesFor
const selectors = {
getSelectedAddress,
getSelectedIdentity,
getSelectedAccount,
2017-09-06 03:17:49 -07:00
getSelectedToken,
conversionRateSelector,
transactionsSelector,
}
module.exports = selectors
2017-08-29 07:50:48 -07:00
function getSelectedAddress (state) {
// TODO: accounts is not defined. Is it needed?
const selectedAddress = state.metamask.selectedAddress || Object.keys(accounts)[0]
return selectedAddress
}
2017-08-29 07:50:48 -07:00
function getSelectedIdentity (state) {
const selectedAddress = getSelectedAddress(state)
const identities = state.metamask.identities
return identities[selectedAddress]
}
2017-08-29 07:50:48 -07:00
function getSelectedAccount (state) {
const accounts = state.metamask.accounts
const selectedAddress = getSelectedAddress(state)
return accounts[selectedAddress]
}
2017-09-06 03:17:49 -07:00
function getSelectedToken (state) {
const tokens = state.metamask.tokens || []
const selectedTokenAddress = state.metamask.selectedTokenAddress
const selectedToken = tokens.filter(({ address }) => address === selectedTokenAddress)[0]
return selectedToken || null
}
2017-08-29 07:50:48 -07:00
function conversionRateSelector (state) {
return state.metamask.conversionRate
}
2017-08-29 07:50:48 -07:00
function transactionsSelector (state) {
const { network } = state.metamask
const unapprovedMsgs = valuesFor(state.metamask.unapprovedMsgs)
const shapeShiftTxList = (network === '1') ? state.metamask.shapeShiftTxList : undefined
const transactions = state.metamask.selectedAddressTxList || []
const txsToRender = !shapeShiftTxList ? transactions.concat(unapprovedMsgs) : transactions.concat(unapprovedMsgs, shapeShiftTxList)
return txsToRender.sort((a, b) => b.time - a.time)
2017-08-29 07:50:48 -07:00
}