diff options
author | Dan J Miller <danjm.com@gmail.com> | 2017-10-14 04:19:22 +0800 |
---|---|---|
committer | Daniel Tsui <szehungdanieltsui@gmail.com> | 2017-10-14 04:19:22 +0800 |
commit | 803eaaf968161f16aaf72d59b979dfbb7fb9b352 (patch) | |
tree | adf8cbf5240e592ae0ede85be1181132612b2d8a /ui/app/selectors.js | |
parent | 81f62a7443d47461b5f9b20f442392562458c79a (diff) | |
download | tangerine-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.js | 35 |
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) |