From b4052cd5e65c1d6ac0c81b051ddf59505a480ec6 Mon Sep 17 00:00:00 2001 From: kumavis Date: Tue, 8 Aug 2017 23:34:18 -0700 Subject: [PATCH] tx utils - detect estimateGas err and set simulationFailed --- app/scripts/lib/tx-utils.js | 14 +++++++++++--- 1 file 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) {