From e1b78da3e6b45037f8b9dacc4385c02c6c892f7c Mon Sep 17 00:00:00 2001 From: Frankie Date: Thu, 6 Oct 2016 13:03:01 -0700 Subject: Add custom gas field to send page --- app/scripts/lib/id-management.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'app/scripts') diff --git a/app/scripts/lib/id-management.js b/app/scripts/lib/id-management.js index e250943a0..299998cee 100644 --- a/app/scripts/lib/id-management.js +++ b/app/scripts/lib/id-management.js @@ -7,6 +7,7 @@ */ const ethUtil = require('ethereumjs-util') +const BN = ethUtil.BN const Transaction = require('ethereumjs-tx') module.exports = IdManagement @@ -24,7 +25,13 @@ function IdManagement (opts) { } this.signTx = function (txParams) { + // calculate gas with custom gas multiplier + var gasMultiplier = txParams.gasMultiplier || 1 + delete txParams.gasMultiplier + var gasPrice = parseFloat(new BN(ethUtil.stripHexPrefix(txParams.gasPrice), 16).toString()) * gasMultiplier + txParams.gasPrice = ethUtil.intToHex(parseInt(gasPrice)) // normalize values + txParams.to = ethUtil.addHexPrefix(txParams.to) txParams.from = ethUtil.addHexPrefix(txParams.from) txParams.value = ethUtil.addHexPrefix(txParams.value) -- cgit From c400f7c0f6bff13400eedcd80fdc83e572eb42a8 Mon Sep 17 00:00:00 2001 From: Frankie Date: Wed, 12 Oct 2016 19:35:09 -0700 Subject: Fix gasPrice range --- app/scripts/lib/config-manager.js | 12 ++++++++++++ app/scripts/lib/id-management.js | 8 ++++---- app/scripts/lib/idStore.js | 4 ++++ app/scripts/metamask-controller.js | 5 +++++ 4 files changed, 25 insertions(+), 4 deletions(-) (limited to 'app/scripts') diff --git a/app/scripts/lib/config-manager.js b/app/scripts/lib/config-manager.js index ecc9bc5f7..cced32670 100644 --- a/app/scripts/lib/config-manager.js +++ b/app/scripts/lib/config-manager.js @@ -384,3 +384,15 @@ ConfigManager.prototype.createShapeShiftTx = function (depositAddress, depositTy } this.setData(data) } + +ConfigManager.prototype.getGasMultiplier = function () { + var data = this.getData() + return ('gasMultiplier' in data) && data.gasMultiplier +} + +ConfigManager.prototype.setGasMultiplier = function (gasMultiplier) { + var data = this.getData() + + data.gasMultiplier = gasMultiplier + this.setData(data) +} diff --git a/app/scripts/lib/id-management.js b/app/scripts/lib/id-management.js index 2a985265c..002f03047 100644 --- a/app/scripts/lib/id-management.js +++ b/app/scripts/lib/id-management.js @@ -26,10 +26,10 @@ function IdManagement (opts) { this.signTx = function (txParams) { // calculate gas with custom gas multiplier - var gasMultiplier = txParams.gasMultiplier || 1 - delete txParams.gasMultiplier - var gasPrice = parseFloat(new BN(ethUtil.stripHexPrefix(txParams.gasPrice), 16).toString()) * gasMultiplier - txParams.gasPrice = ethUtil.intToHex(parseInt(gasPrice)) + var gasMultiplier = this.configManager.getGasMultiplier() || 1 + var gasPrice = new BN(ethUtil.stripHexPrefix(txParams.gasPrice), 16) + gasPrice = gasPrice.mul(new BN(gasMultiplier * 100)).div(new BN(100, 10)) + txParams.gasPrice = ethUtil.intToHex(gasPrice.toNumber()) // normalize values txParams.to = ethUtil.addHexPrefix(txParams.to) diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js index 6837a1e8d..aa77c3360 100644 --- a/app/scripts/lib/idStore.js +++ b/app/scripts/lib/idStore.js @@ -112,6 +112,8 @@ IdentityStore.prototype.getState = function () { currentFiat: configManager.getCurrentFiat(), conversionRate: configManager.getConversionRate(), conversionDate: configManager.getConversionDate(), + gasMultiplier: configManager.getGasMultiplier(), + })) } @@ -211,6 +213,7 @@ IdentityStore.prototype.exportAccount = function (address, cb) { // comes from dapp via zero-client hooked-wallet provider IdentityStore.prototype.addUnconfirmedTransaction = function (txParams, onTxDoneCb, cb) { const configManager = this.configManager + var self = this // create txData obj with parameters and meta data var time = (new Date()).getTime() @@ -222,6 +225,7 @@ IdentityStore.prototype.addUnconfirmedTransaction = function (txParams, onTxDone txParams: txParams, time: time, status: 'unconfirmed', + gasMultiplier: configManager.getGasMultiplier() || 1, } console.log('addUnconfirmedTransaction:', txData) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 550531d6e..c0168903d 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -55,6 +55,7 @@ module.exports = class MetamaskController { agreeToEthWarning: this.agreeToEthWarning.bind(this), setTOSHash: this.setTOSHash.bind(this), checkTOSChange: this.checkTOSChange.bind(this), + setGasMultiplier: this.setGasMultiplier.bind(this), // forward directly to idStore createNewVault: idStore.createNewVault.bind(idStore), @@ -377,4 +378,8 @@ module.exports = class MetamaskController { createShapeShiftTx (depositAddress, depositType) { this.configManager.createShapeShiftTx(depositAddress, depositType) } + + setGasMultiplier (gasMultiplier) { + this.configManager.setGasMultiplier(gasMultiplier) + } } -- cgit From 67eba9f542588f13d37aa5e10c659c93d6e58dc1 Mon Sep 17 00:00:00 2001 From: Frankie Date: Thu, 13 Oct 2016 16:04:23 -0700 Subject: Specify base 10 in bignumber --- app/scripts/lib/id-management.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/scripts') diff --git a/app/scripts/lib/id-management.js b/app/scripts/lib/id-management.js index 002f03047..421f2105f 100644 --- a/app/scripts/lib/id-management.js +++ b/app/scripts/lib/id-management.js @@ -28,7 +28,7 @@ function IdManagement (opts) { // calculate gas with custom gas multiplier var gasMultiplier = this.configManager.getGasMultiplier() || 1 var gasPrice = new BN(ethUtil.stripHexPrefix(txParams.gasPrice), 16) - gasPrice = gasPrice.mul(new BN(gasMultiplier * 100)).div(new BN(100, 10)) + gasPrice = gasPrice.mul(new BN(gasMultiplier * 100, 10)).div(new BN(100, 10)) txParams.gasPrice = ethUtil.intToHex(gasPrice.toNumber()) // normalize values -- cgit From aace26c4bda151c71f9f8c73669e789ac258e9ee Mon Sep 17 00:00:00 2001 From: Frankie Date: Thu, 13 Oct 2016 16:53:32 -0700 Subject: Create callback and Clean-up details --- app/scripts/metamask-controller.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'app/scripts') diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index c48a4c569..38c8b21af 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -379,7 +379,12 @@ module.exports = class MetamaskController { this.configManager.createShapeShiftTx(depositAddress, depositType) } - setGasMultiplier (gasMultiplier) { - this.configManager.setGasMultiplier(gasMultiplier) + setGasMultiplier (gasMultiplier, cb) { + try{ + this.configManager.setGasMultiplier(gasMultiplier) + cb() + } catch (e) { + cb(e) + } } } -- cgit From 35232c5e293b30da90049b094d87336bb22dc59e Mon Sep 17 00:00:00 2001 From: Frankie Date: Thu, 13 Oct 2016 18:08:15 -0700 Subject: Fix for linting --- app/scripts/metamask-controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/scripts') diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 38c8b21af..8b593d820 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -380,7 +380,7 @@ module.exports = class MetamaskController { } setGasMultiplier (gasMultiplier, cb) { - try{ + try { this.configManager.setGasMultiplier(gasMultiplier) cb() } catch (e) { -- cgit