aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/tx-utils.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2017-08-09 14:34:18 +0800
committerkumavis <aaron@kumavis.me>2017-08-09 14:34:18 +0800
commitb4052cd5e65c1d6ac0c81b051ddf59505a480ec6 (patch)
tree40e2350d95bac1e7cfacabdabe2c401f3b00a915 /app/scripts/lib/tx-utils.js
parent57f6fce6b2524c4b36b591da5e600d0652f4077e (diff)
downloadtangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.tar
tangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.tar.gz
tangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.tar.bz2
tangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.tar.lz
tangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.tar.xz
tangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.tar.zst
tangerine-wallet-browser-b4052cd5e65c1d6ac0c81b051ddf59505a480ec6.zip
tx utils - detect estimateGas err and set simulationFailed
Diffstat (limited to 'app/scripts/lib/tx-utils.js')
-rw-r--r--app/scripts/lib/tx-utils.js14
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) {