Amount field shows insufficient funds error based on amoutn + gas total.

feature/default_network_editable
Dan 7 years ago committed by Chi Kei Chan
parent f01d119cc1
commit bd11e60b8c
  1. 12
      ui/app/conversion-util.js
  2. 17
      ui/app/send-v2.js

@ -132,12 +132,16 @@ const conversionUtil = (value, {
}); });
const addCurrencies = (a, b, options = {}) => { const addCurrencies = (a, b, options = {}) => {
const { toNumericBase, numberOfDecimals } = options const {
const value = (new BigNumber(a)).add(b); aBase,
bBase,
...conversionOptions,
} = options
const value = (new BigNumber(a, aBase)).add(b, bBase);
return converter({ return converter({
value, value,
toNumericBase, ...conversionOptions,
numberOfDecimals,
}) })
} }

@ -12,7 +12,11 @@ const GasFeeDisplay = require('./components/send/gas-fee-display-v2')
const { showModal } = require('./actions') const { showModal } = require('./actions')
const { multiplyCurrencies, conversionGreaterThan } = require('./conversion-util') const {
multiplyCurrencies,
conversionGreaterThan,
addCurrencies,
} = require('./conversion-util')
const { isValidAddress } = require('./util') const { isValidAddress } = require('./util')
module.exports = SendTransactionScreen module.exports = SendTransactionScreen
@ -225,12 +229,19 @@ SendTransactionScreen.prototype.validateAmount = function (value) {
conversionRate, conversionRate,
primaryCurrency, primaryCurrency,
toCurrency, toCurrency,
selectedToken selectedToken,
gasTotal,
} = this.props } = this.props
const amount = value const amount = value
let amountError = null let amountError = null
const totalAmount = addCurrencies(amount, gasTotal, {
aBase: 16,
bBase: 16,
toNumericBase: 'hex',
})
const sufficientBalance = conversionGreaterThan( const sufficientBalance = conversionGreaterThan(
{ {
value: balance, value: balance,
@ -239,7 +250,7 @@ SendTransactionScreen.prototype.validateAmount = function (value) {
conversionRate, conversionRate,
}, },
{ {
value: amount, value: totalAmount,
fromNumericBase: 'hex', fromNumericBase: 'hex',
conversionRate: amountConversionRate, conversionRate: amountConversionRate,
fromCurrency: selectedToken || primaryCurrency, fromCurrency: selectedToken || primaryCurrency,

Loading…
Cancel
Save