aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-11-08 07:38:25 +0800
committerDan Finlay <dan@danfinlay.com>2016-11-08 07:38:25 +0800
commit161ff62fdcf6f76f7243a1e865dd0cccbc89121f (patch)
tree68a593b7cf57f2d42a859b09439362b5b4697355
parent93c0a6826aa70fa14874579b1009bee7248a7c51 (diff)
parent62a15fc59e4e79a162867ae95e619d1ad22911ec (diff)
downloadtangerine-wallet-browser-161ff62fdcf6f76f7243a1e865dd0cccbc89121f.tar.gz
tangerine-wallet-browser-161ff62fdcf6f76f7243a1e865dd0cccbc89121f.tar.zst
tangerine-wallet-browser-161ff62fdcf6f76f7243a1e865dd0cccbc89121f.zip
Merge branch 'master' into i328-MultiVault
-rw-r--r--CHANGELOG.md3
-rw-r--r--app/scripts/lib/idStore.js10
-rw-r--r--test/unit/idStore-test.js50
-rw-r--r--ui/app/info.js2
4 files changed, 48 insertions, 17 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9c6a06788..e75502159 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,9 @@
## Current Master
+- Fix gas estimation bug.
+- Fix github link on info page to point at current repository.
+
## 2.13.6 2016-10-26
- Add a check for improper Transaction data.
diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js
index c566907b9..ef2416cdf 100644
--- a/app/scripts/lib/idStore.js
+++ b/app/scripts/lib/idStore.js
@@ -285,11 +285,11 @@ IdentityStore.prototype.checkForDelegateCall = function (codeHex) {
}
}
-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))
+const gasBuffer = new BN('100000', 10)
+IdentityStore.prototype.addGasBuffer = function (gas) {
+ const bnGas = new BN(ethUtil.stripHexPrefix(gas), 16)
+ const correct = bnGas.add(gasBuffer)
+ return ethUtil.addHexPrefix(correct.toString(16))
}
// comes from metamask ui
diff --git a/test/unit/idStore-test.js b/test/unit/idStore-test.js
index da465f511..46b3d4809 100644
--- a/test/unit/idStore-test.js
+++ b/test/unit/idStore-test.js
@@ -142,20 +142,47 @@ describe('IdentityStore', function() {
})
describe('#addGasBuffer', function() {
- const idStore = new IdentityStore({
- configManager: configManagerGen(),
- ethStore: {
- addAccount(acct) { accounts.push(ethUtil.addHexPrefix(acct)) },
- },
+ it('formats the result correctly', 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')
})
- const gas = '0x01'
- const bnGas = new BN(gas, 16)
- const result = idStore.addGasBuffer(gas)
- const bnResult = new BN(result, 16)
+ it('buffers reasonably', function() {
+ const idStore = new IdentityStore({
+ configManager: configManagerGen(),
+ ethStore: {
+ addAccount(acct) { accounts.push(ethUtil.addHexPrefix(acct)) },
+ },
+ })
- assert.ok(bnResult.gt(gas), 'added more gas as buffer.')
- assert.equal(result.indexOf('0x'), 0, 'include hex prefix')
+ const gas = '0x04ee59' // Actual estimated gas example
+ const tooBigOutput = '0x80674f9' // Actual bad output
+ const bnGas = new BN(ethUtil.stripHexPrefix(gas), 16)
+ const correctBuffer = new BN('100000', 10)
+ const correct = bnGas.add(correctBuffer)
+
+ const tooBig = new BN(tooBigOutput, 16)
+ const result = idStore.addGasBuffer(gas)
+ const bnResult = new BN(ethUtil.stripHexPrefix(result), 16)
+
+ assert.equal(result.indexOf('0x'), 0, 'included hex prefix')
+ assert(bnResult.gt(bnGas), 'Estimate increased in value.')
+ assert.equal(bnResult.sub(bnGas).toString(10), '100000', 'added 100k gas')
+ assert.equal(result, '0x' + correct.toString(16), 'Added the right amount')
+ assert.notEqual(result, tooBigOutput, 'not that bad estimate')
+ })
})
describe('#checkForDelegateCall', function() {
@@ -169,4 +196,5 @@ describe('IdentityStore', function() {
var result = idStore.checkForDelegateCall(delegateCallCode)
assert.equal(result, true, 'no delegate call in provided code')
})
+
})
diff --git a/ui/app/info.js b/ui/app/info.js
index 9eb2c2e98..cc753b2ea 100644
--- a/ui/app/info.js
+++ b/ui/app/info.js
@@ -145,7 +145,7 @@ InfoScreen.prototype.render = function () {
h('div.fa.fa-github', [
h('a.info', {
- href: 'https://github.com/metamask/talk/issues',
+ href: 'https://github.com/MetaMask/metamask-plugin/issues',
target: '_blank',
onClick (event) { this.navigateTo(event.target.href) },
}, 'Start a thread on GitHub'),