aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkumavis <kumavis@users.noreply.github.com>2016-10-18 04:33:02 +0800
committerGitHub <noreply@github.com>2016-10-18 04:33:02 +0800
commit0f0951ba549c294222421ef8508294165e9b5fdd (patch)
tree1c14d688553014175c7fb4fe8c5e0f88048f0db5
parent101e839f9a254891d9c32a6b4660252506ead04c (diff)
parent827d7553fc843a75b7a4306c7549505f799609d7 (diff)
downloadtangerine-wallet-browser-0f0951ba549c294222421ef8508294165e9b5fdd.tar
tangerine-wallet-browser-0f0951ba549c294222421ef8508294165e9b5fdd.tar.gz
tangerine-wallet-browser-0f0951ba549c294222421ef8508294165e9b5fdd.tar.bz2
tangerine-wallet-browser-0f0951ba549c294222421ef8508294165e9b5fdd.tar.lz
tangerine-wallet-browser-0f0951ba549c294222421ef8508294165e9b5fdd.tar.xz
tangerine-wallet-browser-0f0951ba549c294222421ef8508294165e9b5fdd.tar.zst
tangerine-wallet-browser-0f0951ba549c294222421ef8508294165e9b5fdd.zip
Merge pull request #744 from MetaMask/i738-IncreaseGas
Increase gas estimate by 100000 wei
-rw-r--r--CHANGELOG.md2
-rw-r--r--app/scripts/lib/idStore.js10
-rw-r--r--test/unit/idStore-test.js18
3 files changed, 29 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6d88cf70d..4f6e82e94 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
## Current Master
+- Increase default max gas to `100000` over the RPC's `estimateGas` response.
+
## 2.13.4 2016-10-17
- Add custom transaction fee field to send form.
diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js
index aa77c3360..9d0ca7f19 100644
--- a/app/scripts/lib/idStore.js
+++ b/app/scripts/lib/idStore.js
@@ -2,6 +2,7 @@ const EventEmitter = require('events').EventEmitter
const inherits = require('util').inherits
const async = require('async')
const ethUtil = require('ethereumjs-util')
+const BN = ethUtil.BN
const EthQuery = require('eth-query')
const KeyStore = require('eth-lightwallet').keystore
const clone = require('clone')
@@ -266,7 +267,7 @@ IdentityStore.prototype.addUnconfirmedTransaction = function (txParams, onTxDone
function estimateGas(cb){
query.estimateGas(txParams, function(err, result){
if (err) return cb(err)
- txData.estimatedGas = result
+ txData.estimatedGas = self.addGasBuffer(result)
cb()
})
}
@@ -281,6 +282,13 @@ IdentityStore.prototype.addUnconfirmedTransaction = function (txParams, onTxDone
}
}
+IdentityStore.prototype.addGasBuffer = function (gasHex) {
+ var gas = new BN(gasHex, 16)
+ var buffer = new BN('100000', 10)
+ var result = gas.add(buffer)
+ return ethUtil.addHexPrefix(result.toString(16))
+}
+
// comes from metamask ui
IdentityStore.prototype.approveTransaction = function (txId, cb) {
const configManager = this.configManager
diff --git a/test/unit/idStore-test.js b/test/unit/idStore-test.js
index 31da2cd3d..0a57d2121 100644
--- a/test/unit/idStore-test.js
+++ b/test/unit/idStore-test.js
@@ -2,6 +2,7 @@ var assert = require('assert')
var IdentityStore = require('../../app/scripts/lib/idStore')
var configManagerGen = require('../lib/mock-config-manager')
const ethUtil = require('ethereumjs-util')
+const BN = ethUtil.BN
const async = require('async')
describe('IdentityStore', function() {
@@ -138,4 +139,21 @@ describe('IdentityStore', function() {
})
})
})
+
+ describe('#addGasBuffer', function() {
+ const idStore = new IdentityStore({
+ configManager: configManagerGen(),
+ ethStore: {
+ addAccount(acct) { accounts.push(ethUtil.addHexPrefix(acct)) },
+ },
+ })
+
+ const gas = '0x01'
+ const bnGas = new BN(gas, 16)
+ const result = idStore.addGasBuffer(gas)
+ const bnResult = new BN(result, 16)
+
+ assert.ok(bnResult.gt(gas), 'added more gas as buffer.')
+ assert.equal(result.indexOf('0x'), 0, 'include hex prefix')
+ })
})