aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/selectors.js
diff options
context:
space:
mode:
authorDan J Miller <danjm.com@gmail.com>2017-10-14 04:19:22 +0800
committerDaniel Tsui <szehungdanieltsui@gmail.com>2017-10-14 04:19:22 +0800
commit803eaaf968161f16aaf72d59b979dfbb7fb9b352 (patch)
treeadf8cbf5240e592ae0ede85be1181132612b2d8a /ui/app/selectors.js
parent81f62a7443d47461b5f9b20f442392562458c79a (diff)
downloadtangerine-wallet-browser-803eaaf968161f16aaf72d59b979dfbb7fb9b352.tar.gz
tangerine-wallet-browser-803eaaf968161f16aaf72d59b979dfbb7fb9b352.tar.zst
tangerine-wallet-browser-803eaaf968161f16aaf72d59b979dfbb7fb9b352.zip
[NewUI] SendV2-#8: Send container handles tokens; gas info dynamic from state (#2364)
* Adds memo field to send-v2. * Vertical align transaction with flexbox. * Customize Gas UI * Remove internal state from InputNumber and fix use in gastooltip. * Move customize-gas-modal to its own folder and minor cleanup * Create send container, get account info from state, and make currency display more reusable * Adjusts send-v2 and container for send-token. Dynamically getting suggested gas prices.
Diffstat (limited to 'ui/app/selectors.js')
-rw-r--r--ui/app/selectors.js35
1 files changed, 34 insertions, 1 deletions
diff --git a/ui/app/selectors.js b/ui/app/selectors.js
index fdbc5fcde..951161510 100644
--- a/ui/app/selectors.js
+++ b/ui/app/selectors.js
@@ -5,14 +5,16 @@ const selectors = {
getSelectedIdentity,
getSelectedAccount,
getSelectedToken,
+ getSelectedTokenExchangeRate,
conversionRateSelector,
transactionsSelector,
+ accountsWithSendEtherInfoSelector,
+ getCurrentAccountWithSendEtherInfo,
}
module.exports = selectors
function getSelectedAddress (state) {
- // TODO: accounts is not defined. Is it needed?
const selectedAddress = state.metamask.selectedAddress || Object.keys(state.metamask.accounts)[0]
return selectedAddress
@@ -40,10 +42,41 @@ function getSelectedToken (state) {
return selectedToken || null
}
+function getSelectedTokenExchangeRate (state) {
+ const tokenExchangeRates = state.metamask.tokenExchangeRates
+ const selectedToken = getSelectedToken(state) || {}
+ const { symbol = '' } = selectedToken
+
+ const pair = `${symbol.toLowerCase()}_eth`
+ const { rate: tokenExchangeRate = 0 } = tokenExchangeRates[pair] || {}
+
+ return tokenExchangeRate
+}
+
function conversionRateSelector (state) {
return state.metamask.conversionRate
}
+function accountsWithSendEtherInfoSelector (state) {
+ const {
+ accounts,
+ identities,
+ } = state.metamask
+
+ const accountsWithSendEtherInfo = Object.entries(accounts).map(([key, account]) => {
+ return Object.assign({}, account, identities[key])
+ })
+
+ return accountsWithSendEtherInfo
+}
+
+function getCurrentAccountWithSendEtherInfo (state) {
+ const currentAddress = getSelectedAddress(state)
+ const accounts = accountsWithSendEtherInfoSelector(state)
+
+ return accounts.find(({ address }) => address === currentAddress)
+}
+
function transactionsSelector (state) {
const { network, selectedTokenAddress } = state.metamask
const unapprovedMsgs = valuesFor(state.metamask.unapprovedMsgs)