diff options
author | kumavis <aaron@kumavis.me> | 2017-08-09 14:34:18 +0800 |
---|---|---|
committer | kumavis <aaron@kumavis.me> | 2017-08-09 14:34:18 +0800 |
commit | b4052cd5e65c1d6ac0c81b051ddf59505a480ec6 (patch) | |
tree | 40e2350d95bac1e7cfacabdabe2c401f3b00a915 /app | |
parent | 57f6fce6b2524c4b36b591da5e600d0652f4077e (diff) | |
download | tangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.tar.gz tangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.tar.zst tangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.zip |
tx utils - detect estimateGas err and set simulationFailed
Diffstat (limited to 'app')
-rw-r--r-- | app/scripts/lib/tx-utils.js | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/app/scripts/lib/tx-utils.js b/app/scripts/lib/tx-utils.js index b64ea6712..5af078dc4 100644 --- a/app/scripts/lib/tx-utils.js +++ b/app/scripts/lib/tx-utils.js @@ -20,7 +20,15 @@ module.exports = class txProvideUtil { async analyzeGasUsage (txMeta) { const block = await this.query.getBlockByNumber('latest', true) - const estimatedGasHex = await this.estimateTxGas(txMeta, block.gasLimit) + let estimatedGasHex + try { + estimatedGasHex = await this.estimateTxGas(txMeta, block.gasLimit) + } catch (err) { + if (err.message.includes('Transaction execution error.')) { + txMeta.simulationFails = true + return txMeta + } + } this.setTxGas(txMeta, block.gasLimit, estimatedGasHex) return txMeta } @@ -35,8 +43,8 @@ module.exports = class txProvideUtil { const saferGasLimitBN = BnMultiplyByFraction(blockGasLimitBN, 19, 20) txParams.gas = bnToHex(saferGasLimitBN) } - // run tx, see if it will OOG - return this.query.estimateGas(txParams) + // run tx + return await this.query.estimateGas(txParams) } setTxGas (txMeta, blockGasLimitHex, estimatedGasHex) { |