aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/customize-gas-modal
diff options
context:
space:
mode:
authorDan <danjm.com@gmail.com>2017-11-17 02:14:25 +0800
committerChi Kei Chan <chikeichan@gmail.com>2017-12-07 13:15:39 +0800
commit2e9137dddd4abd07cc45caa670f09bdc9559bbbb (patch)
tree8df2d0042aeefb678445d65b32476405253efa7d /ui/app/components/customize-gas-modal
parent373f8b72d048d84f537d97d87c7f106e0b8db087 (diff)
downloadtangerine-wallet-browser-2e9137dddd4abd07cc45caa670f09bdc9559bbbb.tar
tangerine-wallet-browser-2e9137dddd4abd07cc45caa670f09bdc9559bbbb.tar.gz
tangerine-wallet-browser-2e9137dddd4abd07cc45caa670f09bdc9559bbbb.tar.bz2
tangerine-wallet-browser-2e9137dddd4abd07cc45caa670f09bdc9559bbbb.tar.lz
tangerine-wallet-browser-2e9137dddd4abd07cc45caa670f09bdc9559bbbb.tar.xz
tangerine-wallet-browser-2e9137dddd4abd07cc45caa670f09bdc9559bbbb.tar.zst
tangerine-wallet-browser-2e9137dddd4abd07cc45caa670f09bdc9559bbbb.zip
Update max amount behaviour to meet new specs.
Diffstat (limited to 'ui/app/components/customize-gas-modal')
-rw-r--r--ui/app/components/customize-gas-modal/index.js22
1 files changed, 21 insertions, 1 deletions
diff --git a/ui/app/components/customize-gas-modal/index.js b/ui/app/components/customize-gas-modal/index.js
index 485dacf90..826d2cd4b 100644
--- a/ui/app/components/customize-gas-modal/index.js
+++ b/ui/app/components/customize-gas-modal/index.js
@@ -5,6 +5,8 @@ const connect = require('react-redux').connect
const actions = require('../../actions')
const GasModalCard = require('./gas-modal-card')
+const ethUtil = require('ethereumjs-util')
+
const {
MIN_GAS_PRICE_DEC,
MIN_GAS_LIMIT_DEC,
@@ -19,6 +21,7 @@ const {
conversionUtil,
multiplyCurrencies,
conversionGreaterThan,
+ subtractCurrencies,
} = require('../../conversion-util')
const {
@@ -30,6 +33,7 @@ const {
getSendFrom,
getCurrentAccountWithSendEtherInfo,
getSelectedTokenToFiatRate,
+ getSendMaxModeState,
} = require('../../selectors')
function mapStateToProps (state) {
@@ -42,6 +46,7 @@ function mapStateToProps (state) {
gasLimit: getGasLimit(state),
conversionRate,
amount: getSendAmount(state),
+ maxModeOn: getSendMaxModeState(state),
balance: currentAccount.balance,
primaryCurrency: selectedToken && selectedToken.symbol,
selectedToken,
@@ -55,6 +60,7 @@ function mapDispatchToProps (dispatch) {
updateGasPrice: newGasPrice => dispatch(actions.updateGasPrice(newGasPrice)),
updateGasLimit: newGasLimit => dispatch(actions.updateGasLimit(newGasLimit)),
updateGasTotal: newGasTotal => dispatch(actions.updateGasTotal(newGasTotal)),
+ updateSendAmount: newAmount => dispatch(actions.updateSendAmount(newAmount)),
}
}
@@ -93,8 +99,21 @@ CustomizeGasModal.prototype.save = function (gasPrice, gasLimit, gasTotal) {
updateGasLimit,
hideModal,
updateGasTotal,
+ maxModeOn,
+ selectedToken,
+ balance,
+ updateSendAmount,
} = this.props
+ if (maxModeOn && !selectedToken) {
+ const maxAmount = subtractCurrencies(
+ ethUtil.addHexPrefix(balance),
+ ethUtil.addHexPrefix(gasTotal),
+ { toNumericBase: 'hex' }
+ )
+ updateSendAmount(maxAmount)
+ }
+
updateGasPrice(gasPrice)
updateGasLimit(gasLimit)
updateGasTotal(gasTotal)
@@ -112,12 +131,13 @@ CustomizeGasModal.prototype.validate = function ({ gasTotal, gasLimit }) {
selectedToken,
amountConversionRate,
conversionRate,
+ maxModeOn,
} = this.props
let error = null
const balanceIsSufficient = isBalanceSufficient({
- amount: selectedToken ? '0' : amount,
+ amount: selectedToken || maxModeOn ? '0' : amount,
gasTotal,
balance,
selectedToken,