aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--app/scripts/lib/idStore.js18
-rw-r--r--ui/app/components/pending-tx.js9
3 files changed, 26 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d0dbb5706..d7da7df7b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
# Changelog
## Current Master
+- Show a warning when a transaction fails during simulation.
- Fix bug where 20% of gas estimate was not being added properly.
## 2.13.7 2016-11-8
diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js
index 23b14524e..390c8a8ab 100644
--- a/app/scripts/lib/idStore.js
+++ b/app/scripts/lib/idStore.js
@@ -257,10 +257,24 @@ IdentityStore.prototype.addUnconfirmedTransaction = function (txParams, onTxDone
}
function estimateGas(cb){
- query.estimateGas(txParams, function(err, result){
+ var estimationParams = extend(txParams)
+ // 1 billion gas for estimation
+ var gasLimit = '0x3b9aca00'
+ estimationParams.gas = gasLimit
+ query.estimateGas(estimationParams, function(err, result){
if (err) return cb(err)
+ if (result === estimationParams.gas) {
+ txData.simulationFails = true
+ query.getBlockByNumber('latest', true, function(err, block){
+ if (err) return cb(err)
+ txData.estimatedGas = block.gasLimit
+ txData.txParams.gas = block.gasLimit
+ cb()
+ })
+ return
+ }
txData.estimatedGas = self.addGasBuffer(result)
- txData.txParams.gasLimit = txData.estimatedGas
+ txData.txParams.gas = txData.estimatedGas
cb()
})
}
diff --git a/ui/app/components/pending-tx.js b/ui/app/components/pending-tx.js
index 4c27a8092..b619020d1 100644
--- a/ui/app/components/pending-tx.js
+++ b/ui/app/components/pending-tx.js
@@ -30,6 +30,15 @@ PendingTx.prototype.render = function () {
}
`),
+ txData.simulationFails ?
+ h('span.error', {
+ style: {
+ marginLeft: 50,
+ fontSize: '0.9em',
+ },
+ }, 'Transaction Error. Exception thrown in contract code.')
+ : null,
+
state.insufficientBalance ?
h('span.error', {
style: {