diff options
author | kumavis <kumavis@users.noreply.github.com> | 2016-10-18 04:33:02 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-18 04:33:02 +0800 |
commit | 0f0951ba549c294222421ef8508294165e9b5fdd (patch) | |
tree | 1c14d688553014175c7fb4fe8c5e0f88048f0db5 | |
parent | 101e839f9a254891d9c32a6b4660252506ead04c (diff) | |
parent | 827d7553fc843a75b7a4306c7549505f799609d7 (diff) | |
download | tangerine-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.md | 2 | ||||
-rw-r--r-- | app/scripts/lib/idStore.js | 10 | ||||
-rw-r--r-- | test/unit/idStore-test.js | 18 |
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') + }) }) |