diff options
author | Dan Miller <danjm.com@gmail.com> | 2019-06-28 11:53:12 +0800 |
---|---|---|
committer | Mark Stacey <markjstacey@gmail.com> | 2019-06-28 12:51:33 +0800 |
commit | 789fc8b8ad3136688036f77a3925541b605f8fc3 (patch) | |
tree | 9dbc5fa4cddb2c93065d00ccaab66cbbcce57377 /ui/app/store/actions.js | |
parent | 0e108db3cc96a86040256e189aed9202834c3c47 (diff) | |
download | tangerine-wallet-browser-789fc8b8ad3136688036f77a3925541b605f8fc3.tar.gz tangerine-wallet-browser-789fc8b8ad3136688036f77a3925541b605f8fc3.tar.zst tangerine-wallet-browser-789fc8b8ad3136688036f77a3925541b605f8fc3.zip |
Fixes display of confirm screen token decimals by not relying on confirmTransaction state.
Diffstat (limited to 'ui/app/store/actions.js')
-rw-r--r-- | ui/app/store/actions.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/ui/app/store/actions.js b/ui/app/store/actions.js index aff2636ba..d3cc7efca 100644 --- a/ui/app/store/actions.js +++ b/ui/app/store/actions.js @@ -9,6 +9,7 @@ const { const ethUtil = require('ethereumjs-util') const { fetchLocale } = require('../helpers/utils/i18n-helper') const { getMethodDataAsync } = require('../helpers/utils/transactions.util') +const { fetchSymbolAndDecimals } = require('../helpers/utils/token-util') const log = require('loglevel') const { ENVIRONMENT_TYPE_NOTIFICATION } = require('../../../app/scripts/lib/enums') const { hasUnconfirmedTransactions } = require('../helpers/utils/confirm-tx.util') @@ -367,6 +368,12 @@ var actions = { loadingMethoDataFinished, LOADING_METHOD_DATA_STARTED: 'LOADING_METHOD_DATA_STARTED', LOADING_METHOD_DATA_FINISHED: 'LOADING_METHOD_DATA_FINISHED', + + getTokenParams, + loadingTokenParamsStarted, + LOADING_TOKEN_PARAMS_STARTED: 'LOADING_TOKEN_PARAMS_STARTED', + loadingTokenParamsFinished, + LOADING_TOKEN_PARAMS_FINISHED: 'LOADING_TOKEN_PARAMS_FINISHED', } module.exports = actions @@ -2816,3 +2823,39 @@ function getContractMethodData (data = '') { }) } } + +function loadingTokenParamsStarted () { + return { + type: actions.LOADING_TOKEN_PARAMS_STARTED, + } +} + +function loadingTokenParamsFinished () { + return { + type: actions.LOADING_TOKEN_PARAMS_FINISHED, + } +} + +function getTokenParams (tokenAddress) { + return (dispatch, getState) => { + const existingTokens = getState().metamask.tokens + const existingToken = existingTokens.find(({ address }) => tokenAddress === address) + + if (existingToken) { + return Promise.resolve({ + symbol: existingToken.symbol, + decimals: existingToken.decimals, + }) + } + + dispatch(actions.loadingTokenParamsStarted()) + log.debug(`loadingTokenParams`) + + + return fetchSymbolAndDecimals(tokenAddress, existingTokens) + .then(({ symbol, decimals }) => { + dispatch(actions.addToken(tokenAddress, symbol, decimals)) + dispatch(actions.loadingTokenParamsFinished()) + }) + } +} |