From 6de450488b8303e01d4be60c571e99f995711e51 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 27 Apr 2018 20:45:36 -0230 Subject: Wraps calls to symbol() and decimals() in try catch --- ui/app/components/pending-tx/index.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'ui/app/components/pending-tx/index.js') diff --git a/ui/app/components/pending-tx/index.js b/ui/app/components/pending-tx/index.js index 6ee83ba7e..392650e01 100644 --- a/ui/app/components/pending-tx/index.js +++ b/ui/app/components/pending-tx/index.js @@ -8,7 +8,7 @@ const abiDecoder = require('abi-decoder') abiDecoder.addABI(abi) const inherits = require('util').inherits const actions = require('../../actions') -const util = require('../../util') +const { getSymbolAndDecimals } = require('../../token-util') const ConfirmSendEther = require('./confirm-send-ether') const ConfirmSendToken = require('./confirm-send-token') const ConfirmDeployContract = require('./confirm-deploy-contract') @@ -26,6 +26,7 @@ function mapStateToProps (state) { const { conversionRate, identities, + tokens: existingTokens, } = state.metamask const accounts = state.metamask.accounts const selectedAddress = state.metamask.selectedAddress || Object.keys(accounts)[0] @@ -33,6 +34,7 @@ function mapStateToProps (state) { conversionRate, identities, selectedAddress, + existingTokens, } } @@ -66,6 +68,7 @@ PendingTx.prototype.componentDidUpdate = function (prevProps, prevState) { } PendingTx.prototype.setTokenData = async function () { + const { existingTokens } = this.props const txMeta = this.gatherTxMeta() const txParams = txMeta.txParams || {} @@ -89,19 +92,14 @@ PendingTx.prototype.setTokenData = async function () { } if (isTokenTransaction) { - const token = util.getContractAtAddress(txParams.to) - const results = await Promise.all([ - token.symbol(), - token.decimals(), - ]) - const [ symbol, decimals ] = results - - if (symbol[0] && decimals[0]) { + const { symbol, decimals } = await getSymbolAndDecimals(txParams.to, existingTokens) + + if (symbol && decimals) { this.setState({ transactionType: TX_TYPES.SEND_TOKEN, tokenAddress: txParams.to, - tokenSymbol: symbol[0], - tokenDecimals: decimals[0], + tokenSymbol: symbol, + tokenDecimals: decimals, isFetching: false, }) } else { -- cgit From b71dbf52d190a597ad3e06e4717cc641e1abe57a Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 27 Apr 2018 21:33:56 -0230 Subject: Convert decimals to string in getSymbolAndDecimals; return null for symbol or decimals. --- ui/app/components/pending-tx/index.js | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) (limited to 'ui/app/components/pending-tx/index.js') diff --git a/ui/app/components/pending-tx/index.js b/ui/app/components/pending-tx/index.js index 392650e01..fb409cb92 100644 --- a/ui/app/components/pending-tx/index.js +++ b/ui/app/components/pending-tx/index.js @@ -94,23 +94,13 @@ PendingTx.prototype.setTokenData = async function () { if (isTokenTransaction) { const { symbol, decimals } = await getSymbolAndDecimals(txParams.to, existingTokens) - if (symbol && decimals) { - this.setState({ - transactionType: TX_TYPES.SEND_TOKEN, - tokenAddress: txParams.to, - tokenSymbol: symbol, - tokenDecimals: decimals, - isFetching: false, - }) - } else { - this.setState({ - transactionType: TX_TYPES.SEND_TOKEN, - tokenAddress: txParams.to, - tokenSymbol: null, - tokenDecimals: null, - isFetching: false, - }) - } + this.setState({ + transactionType: TX_TYPES.SEND_TOKEN, + tokenAddress: txParams.to, + tokenSymbol: symbol, + tokenDecimals: decimals, + isFetching: false, + }) } else { this.setState({ transactionType: TX_TYPES.SEND_ETHER, -- cgit