diff --git a/index.html b/index.html
index 6d0960d26a..8fb97ee614 100644
--- a/index.html
+++ b/index.html
@@ -73,7 +73,7 @@
+
diff --git a/src/app/renderer.js b/src/app/renderer.js
index c85ac2fb09..cc44945434 100644
--- a/src/app/renderer.js
+++ b/src/app/renderer.js
@@ -67,6 +67,7 @@ function Renderer (editor, executionContext, updateFiles) {
var comp = $('#value').val().split(' ');
return executionContext.web3().toWei(comp[0], comp.slice(1).join(' '));
},
+ getGasLimit: function () { return $('#gasLimit').val(); },
removable_instances: true,
renderOutputModifier: function (contractName, $contractOutput) {
var contract = data.contracts[contractName];
diff --git a/src/universal-dapp.js b/src/universal-dapp.js
index fdd61c7f0b..fa41461177 100644
--- a/src/universal-dapp.js
+++ b/src/universal-dapp.js
@@ -618,7 +618,14 @@ UniversalDApp.prototype.runTx = function (data, args, cb) {
data = '0x' + data;
}
- var gas = self.options.getGas ? self.options.getGas : 3000000;
+ var gasLimit = 3000000;
+ if (self.options.getGasLimit) {
+ try {
+ gasLimit = self.options.getGasLimit();
+ } catch (e) {
+ return cb(e);
+ }
+ }
var value = 0;
if (self.options.getValue) {
@@ -645,7 +652,7 @@ UniversalDApp.prototype.runTx = function (data, args, cb) {
return cb(err, resp);
}
- if (resp > gas) {
+ if (resp > gasLimit) {
return cb('Gas required exceeds limit: ' + resp);
}
@@ -667,7 +674,7 @@ UniversalDApp.prototype.runTx = function (data, args, cb) {
tx = new EthJSTX({
nonce: new Buffer([account.nonce++]), // @todo count beyond 255
gasPrice: 1,
- gasLimit: gas,
+ gasLimit: gasLimit,
to: to,
value: new BN(value, 10),
data: new Buffer(data.slice(2), 'hex')