From 541b69dda9a5ddbb0ea4e4c0df805e886f53645c Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 26 Sep 2017 21:51:45 -0230 Subject: [PATCH] Gets gas and price estimates when send components mount. --- ui/app/actions.js | 4 ++-- ui/app/components/send-token/index.js | 32 ++++++++++---------------- ui/app/send.js | 33 +++++++++++---------------- 3 files changed, 27 insertions(+), 42 deletions(-) diff --git a/ui/app/actions.js b/ui/app/actions.js index a0dbbbf11..63d22238b 100644 --- a/ui/app/actions.js +++ b/ui/app/actions.js @@ -452,10 +452,10 @@ function signTx (txData) { } } -function estimateGas ({ to, amount }) { +function estimateGas () { return (dispatch) => { return new Promise((resolve, reject) => { - global.ethQuery.estimateGas({ to, amount }, (err, data) => { + global.ethQuery.estimateGas({}, (err, data) => { if (err) { dispatch(actions.displayWarning(err.message)) return reject(err) diff --git a/ui/app/components/send-token/index.js b/ui/app/components/send-token/index.js index 379f63883..02423a348 100644 --- a/ui/app/components/send-token/index.js +++ b/ui/app/components/send-token/index.js @@ -57,9 +57,8 @@ function mapDispatchToProps (dispatch) { dispatch(actions.signTokenTx(tokenAddress, toAddress, amount, txData)) ), updateTokenExchangeRate: token => dispatch(actions.updateTokenExchangeRate(token)), - estimateGas: ({ to, amount }) => dispatch(actions.estimateGas({ to, amount })), + estimateGas: () => dispatch(actions.estimateGas()), getGasPrice: () => dispatch(actions.getGasPrice()), - } } @@ -82,27 +81,22 @@ SendTokenScreen.prototype.componentWillMount = function () { const { updateTokenExchangeRate, selectedToken: { symbol }, + getGasPrice, + estimateGas, } = this.props updateTokenExchangeRate(symbol) -} -SendTokenScreen.prototype.estimateGasAndPrice = function () { - const { selectedToken } = this.props - const { errors, amount, to } = this.state - - if (!errors.to && !errors.amount && amount > 0) { - Promise.all([ - this.props.getGasPrice(), - this.props.estimateGas({ to, amount: this.getAmountToSend(amount, selectedToken) }), - ]) - .then(([blockGasPrice, estimatedGas]) => { - this.setState({ - blockGasPrice, - estimatedGas, - }) + Promise.all([ + getGasPrice(), + estimateGas(), + ]) + .then(([blockGasPrice, estimatedGas]) => { + this.setState({ + blockGasPrice, + estimatedGas, }) - } + }) } SendTokenScreen.prototype.validate = function () { @@ -238,7 +232,6 @@ SendTokenScreen.prototype.renderToAddressInput = function () { }), onBlur: () => { this.setErrorsFor('to') - this.estimateGasAndPrice() }, onFocus: event => { if (to) event.target.select() @@ -300,7 +293,6 @@ SendTokenScreen.prototype.renderAmountInput = function () { }), onBlur: () => { this.setErrorsFor('amount') - this.estimateGasAndPrice() }, onFocus: () => this.clearErrorsFor('amount'), }), diff --git a/ui/app/send.js b/ui/app/send.js index 8791e9124..dc7e7c8ec 100644 --- a/ui/app/send.js +++ b/ui/app/send.js @@ -93,7 +93,6 @@ function SendTransactionScreen () { this.getAmountToSend = this.getAmountToSend.bind(this) this.setErrorsFor = this.setErrorsFor.bind(this) this.clearErrorsFor = this.clearErrorsFor.bind(this) - this.estimateGasAndPrice = this.estimateGasAndPrice.bind(this) this.renderFromInput = this.renderFromInput.bind(this) this.renderToInput = this.renderToInput.bind(this) @@ -103,6 +102,19 @@ function SendTransactionScreen () { this.renderErrorMessage = this.renderErrorMessage.bind(this) } +SendTransactionScreen.prototype.componentWillMount = function () { + Promise.all([ + this.props.dispatch(getGasPrice()), + this.props.dispatch(estimateGas()), + ]) + .then(([blockGasPrice, estimatedGas]) => { + this.setState({ + blockGasPrice, + estimatedGas, + }) + }) +} + SendTransactionScreen.prototype.renderErrorMessage = function(errorType, warning) { const { errors } = this.state const errorMessage = errors[errorType]; @@ -171,7 +183,6 @@ SendTransactionScreen.prototype.renderToInput = function (to, identities, addres }, onBlur: () => { this.setErrorsFor('to') - this.estimateGasAndPrice() }, onFocus: event => { this.clearErrorsFor('to') @@ -230,7 +241,6 @@ SendTransactionScreen.prototype.renderAmountInput = function (activeCurrency) { }, onBlur: () => { this.setErrorsFor('amount') - this.estimateGasAndPrice() }, onFocus: () => this.clearErrorsFor('amount'), }), @@ -383,23 +393,6 @@ SendTransactionScreen.prototype.setActiveCurrency = function (newCurrency) { this.setState({ activeCurrency: newCurrency }) } -SendTransactionScreen.prototype.estimateGasAndPrice = function () { - const { errors, sendAmount, newTx } = this.state - - if (!errors.to && !errors.amount && newTx.amount > 0) { - Promise.all([ - this.props.dispatch(getGasPrice()), - this.props.dispatch(estimateGas({ to: newTx.to, amount: sendAmount })), - ]) - .then(([blockGasPrice, estimatedGas]) => { - this.setState({ - blockGasPrice, - estimatedGas, - }) - }) - } -} - SendTransactionScreen.prototype.back = function () { var address = this.props.address this.props.dispatch(backToAccountDetail(address))