aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan J Miller <danjm.com@gmail.com>2019-03-07 02:14:53 +0800
committerGitHub <noreply@github.com>2019-03-07 02:14:53 +0800
commitb8f143f1c3bcc760787c459e218e6bbb08162058 (patch)
tree5dc85dd0322d07f382ca4e6ff05724a75fbaee58
parentbe2d2bad4b2f2e57a95751bf431199899942489e (diff)
downloadtangerine-wallet-browser-b8f143f1c3bcc760787c459e218e6bbb08162058.tar
tangerine-wallet-browser-b8f143f1c3bcc760787c459e218e6bbb08162058.tar.gz
tangerine-wallet-browser-b8f143f1c3bcc760787c459e218e6bbb08162058.tar.bz2
tangerine-wallet-browser-b8f143f1c3bcc760787c459e218e6bbb08162058.tar.lz
tangerine-wallet-browser-b8f143f1c3bcc760787c459e218e6bbb08162058.tar.xz
tangerine-wallet-browser-b8f143f1c3bcc760787c459e218e6bbb08162058.tar.zst
tangerine-wallet-browser-b8f143f1c3bcc760787c459e218e6bbb08162058.zip
Handle undefined gas limits and prices in transaction-breakdown.component (#6246)
-rw-r--r--ui/app/components/transaction-breakdown/transaction-breakdown.component.js43
-rw-r--r--ui/app/components/transaction-breakdown/transaction-breakdown.container.js16
2 files changed, 38 insertions, 21 deletions
diff --git a/ui/app/components/transaction-breakdown/transaction-breakdown.component.js b/ui/app/components/transaction-breakdown/transaction-breakdown.component.js
index 26f52317d..26dc4c153 100644
--- a/ui/app/components/transaction-breakdown/transaction-breakdown.component.js
+++ b/ui/app/components/transaction-breakdown/transaction-breakdown.component.js
@@ -6,8 +6,6 @@ import CurrencyDisplay from '../currency-display'
import UserPreferencedCurrencyDisplay from '../user-preferenced-currency-display'
import HexToDecimal from '../hex-to-decimal'
import { GWEI, PRIMARY, SECONDARY } from '../../constants/common'
-import { getHexGasTotal } from '../../helpers/confirm-transaction/util'
-import { sumHexes } from '../../helpers/transactions.util'
export default class TransactionBreakdown extends PureComponent {
static contextTypes = {
@@ -19,6 +17,11 @@ export default class TransactionBreakdown extends PureComponent {
className: PropTypes.string,
nativeCurrency: PropTypes.string.isRequired,
showFiat: PropTypes.bool,
+ gas: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
+ gasPrice: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
+ gasUsed: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
+ totalInHex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
}
static defaultProps = {
@@ -28,13 +31,7 @@ export default class TransactionBreakdown extends PureComponent {
render () {
const { t } = this.context
- const { transaction, className, nativeCurrency, showFiat } = this.props
- const { txParams: { gas, gasPrice, value } = {}, txReceipt: { gasUsed } = {} } = transaction
-
- const gasLimit = typeof gasUsed === 'string' ? gasUsed : gas
-
- const hexGasTotal = getHexGasTotal({ gasLimit, gasPrice })
- const totalInHex = sumHexes(hexGasTotal, value)
+ const { gas, gasPrice, value, className, nativeCurrency, showFiat, totalInHex, gasUsed } = this.props
return (
<div className={classnames('transaction-breakdown', className)}>
@@ -52,10 +49,13 @@ export default class TransactionBreakdown extends PureComponent {
title={`${t('gasLimit')} (${t('units')})`}
className="transaction-breakdown__row-title"
>
- <HexToDecimal
- className="transaction-breakdown__value"
- value={gas}
- />
+ {typeof gas !== 'undefined'
+ ? <HexToDecimal
+ className="transaction-breakdown__value"
+ value={gas}
+ />
+ : '?'
+ }
</TransactionBreakdownRow>
{
typeof gasUsed === 'string' && (
@@ -71,13 +71,16 @@ export default class TransactionBreakdown extends PureComponent {
)
}
<TransactionBreakdownRow title={t('gasPrice')}>
- <CurrencyDisplay
- className="transaction-breakdown__value"
- currency={nativeCurrency}
- denomination={GWEI}
- value={gasPrice}
- hideLabel
- />
+ {typeof gasPrice !== 'undefined'
+ ? <CurrencyDisplay
+ className="transaction-breakdown__value"
+ currency={nativeCurrency}
+ denomination={GWEI}
+ value={gasPrice}
+ hideLabel
+ />
+ : '?'
+ }
</TransactionBreakdownRow>
<TransactionBreakdownRow title={t('total')}>
<div>
diff --git a/ui/app/components/transaction-breakdown/transaction-breakdown.container.js b/ui/app/components/transaction-breakdown/transaction-breakdown.container.js
index 919187b6f..3e85b9e23 100644
--- a/ui/app/components/transaction-breakdown/transaction-breakdown.container.js
+++ b/ui/app/components/transaction-breakdown/transaction-breakdown.container.js
@@ -1,14 +1,28 @@
import { connect } from 'react-redux'
import TransactionBreakdown from './transaction-breakdown.component'
import {getIsMainnet, getNativeCurrency, preferencesSelector} from '../../selectors'
+import { getHexGasTotal } from '../../helpers/confirm-transaction/util'
+import { sumHexes } from '../../helpers/transactions.util'
-const mapStateToProps = (state) => {
+const mapStateToProps = (state, ownProps) => {
+ const { transaction } = ownProps
+ const { txParams: { gas, gasPrice, value } = {}, txReceipt: { gasUsed } = {} } = transaction
const { showFiatInTestnets } = preferencesSelector(state)
const isMainnet = getIsMainnet(state)
+ const gasLimit = typeof gasUsed === 'string' ? gasUsed : gas
+
+ const hexGasTotal = gasLimit && gasPrice && getHexGasTotal({ gasLimit, gasPrice }) || '0x0'
+ const totalInHex = sumHexes(hexGasTotal, value)
+
return {
nativeCurrency: getNativeCurrency(state),
showFiat: (isMainnet || !!showFiatInTestnets),
+ totalInHex,
+ gas,
+ gasPrice,
+ value,
+ gasUsed,
}
}