diff --git a/public/views/walletHome.html b/public/views/walletHome.html index d2a69224f..d4d1fc9e7 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -295,7 +295,7 @@ Send All diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index 2f5188fbf..cb050f6da 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -328,10 +328,12 @@ angular.module('copayApp.controllers').controller('indexController', function($r // KB to send max if (self.totalBytesToSendMax) { var feeToSendMaxSat = parseInt(((self.totalBytesToSendMax * feePerKb) / 1000.).toFixed(0)); + self.feeRateToSendMax = feePerKb; self.availableMaxBalance = strip((self.availableBalanceSat - feeToSendMaxSat) * self.satToUnit); self.feeToSendMaxStr = profileService.formatAmount(feeToSendMaxSat) + ' ' + self.unitName; } else { self.feeToSendMaxStr = null; + self.feeRateToSendMax = null; } }); } diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index bb7df5bf7..7d1e340cb 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -722,7 +722,15 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi address = form.address.$modelValue; amount = parseInt((form.amount.$modelValue * unitToSat).toFixed(0)); - feeService.getCurrentFeeValue(self.currentSendFeeLevel, function(err, feePerKb) { + var getFee = function(cb) { + if (form.feePerKb) { + cb(null, form.feePerKb); + } else { + feeService.getCurrentFeeValue(self.currentSendFeeLevel, cb); + } + }; + + getFee(function(err, feePerKb) { if (err) $log.debug(err); fc.sendTxProposal({ toAddress: address, @@ -803,7 +811,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi }); }; - this.setForm = function(to, amount, comment) { + this.setForm = function(to, amount, comment, feeRate) { var form = $scope.sendForm; if (to) { form.address.$setViewValue(to); @@ -824,6 +832,10 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi form.comment.$isValid = true; form.comment.$render(); } + + if (feeRate) { + form.feeRate = feeRate; + } }; @@ -841,6 +853,11 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi this._amount = this._address = null; var form = $scope.sendForm; + + if (form && form.feeRate) { + form.feeRate = null; + } + if (form && form.amount) { form.amount.$pristine = true; form.amount.$setViewValue(''); @@ -1042,8 +1059,8 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi return actions.hasOwnProperty('create'); }; - this._doSendAll = function(amount) { - this.setForm(null, amount); + this._doSendAll = function(amount, feeRate) { + this.setForm(null, amount, null, feeRate); }; this.confirmDialog = function(msg, cb) { @@ -1069,7 +1086,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi } }; - this.sendAll = function(amount, feeStr) { + this.sendAll = function(amount, feeStr, feeRate) { var self = this; var msg = gettextCatalog.getString("{{fee}} will be discounted for bitcoin networking fees", { fee: feeStr @@ -1077,7 +1094,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi this.confirmDialog(msg, function(confirmed) { if (confirmed) - self._doSendAll(amount); + self._doSendAll(amount, feeRate); }); };