mirror of https://github.com/BTCPrivate/copay.git
Merge pull request #3900 from cmgustavo/ref/set-fee-level
Decrease in call to feelevels
This commit is contained in:
commit
1c8049c956
|
@ -3,19 +3,35 @@
|
|||
ng-include="'views/includes/topbar.html'"
|
||||
ng-init="titleSection='Bitcoin Network Fee Policy'; goBackToState = 'preferencesGlobal'; noColor = true">
|
||||
</div>
|
||||
<div class="content preferences" ng-controller="preferencesFeeController as prefFee">
|
||||
<div class="content preferences" ng-controller="preferencesFeeController as prefFee" ng-init="prefFee.init()">
|
||||
<h4></h4>
|
||||
<div class="preferences-fee" ng-show="prefFee.loading">
|
||||
<div class="row p20 text-center">
|
||||
<div class="columns large-12 medium-12 small-12 m10b">
|
||||
<div class="spinner">
|
||||
<div class="rect1"></div>
|
||||
<div class="rect2"></div>
|
||||
<div class="rect3"></div>
|
||||
<div class="rect4"></div>
|
||||
<div class="rect5"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="size-12 text-gray m20t" translate>
|
||||
Loading...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="no-bullet m0">
|
||||
<li ng-repeat="fee in (index.network == 'livenet' ? index.feeLevels.livenet : index.feeLevels.testnet)"
|
||||
<li ng-repeat="fee in (index.network == 'livenet' ? prefFee.feeLevels.livenet : prefFee.feeLevels.testnet)"
|
||||
ng-click="prefFee.save(fee.level)">
|
||||
{{index.feeOpts[fee.level]|translate}}
|
||||
<i class="fi-check size-16 right" ng-show="index.currentFeeLevel == fee.level"></i>
|
||||
{{prefFee.feeOpts[fee.level]|translate}}
|
||||
<i class="fi-check size-16 right" ng-show="prefFee.currentFeeLevel == fee.level"></i>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="row m20t">
|
||||
<div class="text-gray size-12 text-center" ng-repeat="fee in (index.network == 'livenet' ? index.feeLevels.livenet :
|
||||
index.feeLevels.testnet)" ng-if="fee.level == index.currentFeeLevel">
|
||||
<div class="text-gray size-12 text-center" ng-repeat="fee in (index.network == 'livenet' ? prefFee.feeLevels.livenet :
|
||||
prefFee.feeLevels.testnet)" ng-if="fee.level == prefFee.currentFeeLevel">
|
||||
<div ng-show="fee.nbBlocks">
|
||||
<span translate>Average confirmation time: {{fee.nbBlocks * 10}} minutes</span>.
|
||||
</div>
|
||||
|
|
|
@ -36,10 +36,9 @@
|
|||
</ul>
|
||||
<h4></h4>
|
||||
<ul class="no-bullet m0 ">
|
||||
<li ng-click="$root.go('preferencesFee')"
|
||||
ng-show="(index.network == 'livenet' ? index.feeLevels.livenet : index.feeLevels.testnet)">
|
||||
<li ng-click="$root.go('preferencesFee')">
|
||||
<div class="right text-gray">
|
||||
{{index.feeOpts[index.currentFeeLevel]|translate}}
|
||||
{{prefGlobal.feeOpts[prefGlobal.currentFeeLevel]|translate}}
|
||||
<i class="icon-arrow-right3 size-24"></i>
|
||||
</div>
|
||||
<div translate>Bitcoin Network Fee Policy</div>
|
||||
|
|
|
@ -5,13 +5,15 @@
|
|||
</div>
|
||||
<div class="content preferences" ng-controller="preferencesHistory as history">
|
||||
<h4></h4>
|
||||
<ul class="no-bullet m0" ng-style="{'color':index.backgroundColor}">
|
||||
<ul class="no-bullet m0">
|
||||
<li ng-if="!index.isCordova" ng-init="index.csvHistory()">
|
||||
<a ng-style="{'color':index.backgroundColor}" ng-csv="index.csvContent" csv-header="index.csvHeader" filename="{{ index.csvFilename }}">
|
||||
<span translate>Export to file</span>
|
||||
<a ng-style="{'color':index.backgroundColor}" ng-csv="index.csvContent"
|
||||
csv-header="index.csvHeader"
|
||||
filename="{{index.csvFilename }}" translate>
|
||||
Export to file
|
||||
</a>
|
||||
</li>
|
||||
<li ng-click="history.clearTransactionHistory();" translate>
|
||||
<li ng-style="{'color':index.backgroundColor}" ng-click="history.clearTransactionHistory();" translate>
|
||||
Clear cache
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
@ -358,9 +358,12 @@
|
|||
<div class="pr p25b">
|
||||
<h4 class="title m0">
|
||||
<available-balance></available-balance>
|
||||
<span
|
||||
ng-show="home.lockedCurrentFeePerKb || home.blockUx || home.lockAmount"
|
||||
class="text-gray" translate>Send All</span>
|
||||
<a
|
||||
ng-show="!home.lockedCurrentFeePerKb && index.feeToSendMaxStr && index.availableBalanceSat > 0 && !home.blockUx && !home.lockAmount"
|
||||
ng-click="home.sendAll()"
|
||||
ng-show="index.availableBalanceSat > 0 && !home.lockedCurrentFeePerKb && !home.blockUx && !home.lockAmount"
|
||||
ng-click="home.sendAll(index.totalBytesToSendMax, index.availableBalanceSat)"
|
||||
translate> Send All
|
||||
</a>
|
||||
<div ng-show="!home.paymentExpired && home._paypro">
|
||||
|
|
|
@ -1477,7 +1477,8 @@ input.ng-invalid-match, input.ng-invalid-match:focus {
|
|||
|
||||
#history .spinner > div,
|
||||
#receive .spinner > div,
|
||||
.copayers .spinner > div
|
||||
.copayers .spinner > div,
|
||||
.preferences-fee .spinner > div
|
||||
{
|
||||
background-color: #7A8C9E;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, bwcService, pushNotificationsService, lodash, go, profileService, configService, isCordova, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, nodeWebkit, addonManager, feeService, isChromeApp, bwsError, txFormatService, uxLanguage, $state, glideraService, isMobile, addressbookService) {
|
||||
angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, bwcService, pushNotificationsService, lodash, go, profileService, configService, isCordova, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, nodeWebkit, addonManager, isChromeApp, bwsError, txFormatService, uxLanguage, $state, glideraService, isMobile, addressbookService) {
|
||||
var self = this;
|
||||
var SOFT_CONFIRMATION_LIMIT = 12;
|
||||
var errors = bwcService.getErrors();
|
||||
|
@ -45,7 +45,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
ret.txTemplateUrl = addonManager.txTemplateUrl() || 'views/includes/transaction.html';
|
||||
|
||||
ret.tab = 'walletHome';
|
||||
ret.feeOpts = feeService.feeOpts;
|
||||
var vanillaScope = ret;
|
||||
|
||||
|
||||
|
@ -337,7 +336,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
}
|
||||
$log.debug('Wallet Status:', walletStatus);
|
||||
self.setPendingTxps(walletStatus.pendingTxps);
|
||||
self.setFeesOpts();
|
||||
|
||||
// Status Shortcuts
|
||||
self.walletName = walletStatus.wallet.name;
|
||||
|
@ -366,48 +364,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
|
||||
self.setSpendUnconfirmed = function(spendUnconfirmed) {
|
||||
self.spendUnconfirmed = spendUnconfirmed || configService.getSync().wallet.spendUnconfirmed;
|
||||
};
|
||||
|
||||
self.setFeeAndSendMax = function(cb) {
|
||||
|
||||
self.availableMaxBalance = null;
|
||||
self.currentFeePerKb = null;
|
||||
|
||||
// Set Send max
|
||||
if (self.currentFeeLevel && self.totalBytesToSendMax) {
|
||||
feeService.getCurrentFeeValue(self.currentFeeLevel, function(err, feePerKb) {
|
||||
|
||||
// KB to send max
|
||||
var feeToSendMaxSat = parseInt(((self.totalBytesToSendMax * feePerKb) / 1000.).toFixed(0));
|
||||
self.currentFeePerKb = feePerKb;
|
||||
|
||||
if (self.availableBalanceSat > feeToSendMaxSat) {
|
||||
self.availableMaxBalance = strip((self.availableBalanceSat - feeToSendMaxSat) * self.satToUnit);
|
||||
self.feeToSendMaxStr = profileService.formatAmount(feeToSendMaxSat) + ' ' + self.unitName;
|
||||
}
|
||||
|
||||
if (cb) return cb(self.currentFeePerKb, self.availableMaxBalance, self.feeToSendMaxStr);
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
self.setCurrentFeeLevel = function(level) {
|
||||
self.currentFeeLevel = level || configService.getSync().wallet.settings.feeLevel || 'normal';
|
||||
self.setFeeAndSendMax();
|
||||
};
|
||||
|
||||
|
||||
self.setFeesOpts = function() {
|
||||
var fc = profileService.focusedClient;
|
||||
if (!fc) return;
|
||||
$timeout(function() {
|
||||
feeService.getFeeLevels(function(levels) {
|
||||
self.feeLevels = levels;
|
||||
$rootScope.$apply();
|
||||
});
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
self.updateBalance = function() {
|
||||
var fc = profileService.focusedClient;
|
||||
|
@ -640,9 +597,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
self.alternativeName = config.alternativeName;
|
||||
self.alternativeIsoCode = config.alternativeIsoCode;
|
||||
|
||||
// Set fee level and max value to send all
|
||||
self.setCurrentFeeLevel();
|
||||
|
||||
// Check address
|
||||
addressService.isUsed(self.walletId, balance.byAddress, function(err, used) {
|
||||
if (used) {
|
||||
|
@ -1226,14 +1180,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
self.updateAll();
|
||||
});
|
||||
|
||||
$rootScope.$on('Local/FeeLevelUpdated', function(event, level) {
|
||||
self.setCurrentFeeLevel(level);
|
||||
});
|
||||
|
||||
$rootScope.$on('Local/SetFeeSendMax', function(event, cb) {
|
||||
self.setFeeAndSendMax(cb);
|
||||
});
|
||||
|
||||
$rootScope.$on('Local/ProfileBound', function() {
|
||||
storageService.getRemotePrefsStoredFlag(function(err, val) {
|
||||
if (err || val) return;
|
||||
|
|
|
@ -1,9 +1,22 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('preferencesFeeController',
|
||||
function($rootScope, configService) {
|
||||
function($scope, $rootScope, configService, feeService) {
|
||||
|
||||
this.init = function() {
|
||||
var self = this;
|
||||
this.loading = true;
|
||||
feeService.getFeeLevels(function(levels) {
|
||||
self.loading = false;
|
||||
self.feeOpts = feeService.feeOpts;
|
||||
self.currentFeeLevel = feeService.getCurrentFeeLevel();
|
||||
self.feeLevels = levels;
|
||||
$scope.$apply();
|
||||
});
|
||||
};
|
||||
|
||||
this.save = function(newFee) {
|
||||
var self = this;
|
||||
var opts = {
|
||||
wallet: {
|
||||
settings: {
|
||||
|
@ -11,10 +24,10 @@ angular.module('copayApp.controllers').controller('preferencesFeeController',
|
|||
}
|
||||
}
|
||||
};
|
||||
$rootScope.$emit('Local/FeeLevelUpdated', newFee);
|
||||
|
||||
configService.set(opts, function(err) {
|
||||
if (err) $log.debug(err);
|
||||
self.currentFeeLevel = feeService.getCurrentFeeLevel();
|
||||
});
|
||||
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('preferencesGlobalController',
|
||||
function($scope, $rootScope, $log, configService, uxLanguage, pushNotificationsService, profileService) {
|
||||
function($scope, $rootScope, $log, configService, uxLanguage, pushNotificationsService, profileService, feeService) {
|
||||
|
||||
this.init = function() {
|
||||
var config = configService.getSync();
|
||||
|
@ -11,6 +11,8 @@ angular.module('copayApp.controllers').controller('preferencesGlobalController',
|
|||
name: config.wallet.settings.alternativeName,
|
||||
isoCode: config.wallet.settings.alternativeIsoCode
|
||||
};
|
||||
this.feeOpts = feeService.feeOpts;
|
||||
this.currentFeeLevel = feeService.getCurrentFeeLevel();
|
||||
$scope.spendUnconfirmed = config.wallet.spendUnconfirmed;
|
||||
$scope.glideraEnabled = config.glidera.enabled;
|
||||
$scope.glideraTestnet = config.glidera.testnet;
|
||||
|
|
|
@ -11,7 +11,6 @@ angular.module('copayApp.controllers').controller('sellGlideraController',
|
|||
this.error = null;
|
||||
this.loading = null;
|
||||
this.currentSpendUnconfirmed = config.wallet.spendUnconfirmed;
|
||||
this.currentFeeLevel = config.wallet.settings.feeLevel || 'normal';
|
||||
var fc;
|
||||
|
||||
window.ignoreMobilePause = true;
|
||||
|
@ -151,7 +150,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController',
|
|||
}
|
||||
var amount = parseInt((self.sellPrice.qty * 100000000).toFixed(0));
|
||||
|
||||
feeService.getCurrentFeeValue(self.currentFeeLevel, function(err, feePerKb) {
|
||||
feeService.getCurrentFeeValue(function(err, feePerKb) {
|
||||
if (err) $log.debug(err);
|
||||
fc.sendTxProposal({
|
||||
toAddress: sellAddress,
|
||||
|
|
|
@ -847,7 +847,6 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
|||
var fc = profileService.focusedClient;
|
||||
var unitToSat = this.unitToSatoshi;
|
||||
var currentSpendUnconfirmed = configWallet.spendUnconfirmed;
|
||||
var currentFeeLevel = walletSettings.feeLevel || 'normal';
|
||||
|
||||
var outputs = [];
|
||||
|
||||
|
@ -1230,18 +1229,30 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
|||
this.setForm(null, amount, null);
|
||||
};
|
||||
|
||||
this.sendAll = function() {
|
||||
this.sendAll = function(totalBytesToSendMax, availableBalanceSat) {
|
||||
var self = this;
|
||||
self.error = null;
|
||||
self.setOngoingProcess(gettextCatalog.getString('Calculating fee'));
|
||||
$rootScope.$emit('Local/SetFeeSendMax', function(currentFeePerKb, availableMaxBalance, feeToSendMaxStr) {
|
||||
var availableMaxBalance;
|
||||
var feeToSendMaxStr;
|
||||
this.error = null;
|
||||
this.setOngoingProcess(gettextCatalog.getString('Calculating fee'));
|
||||
|
||||
feeService.getCurrentFeeValue(function(err, feePerKb) {
|
||||
self.setOngoingProcess();
|
||||
if (lodash.isNull(currentFeePerKb)) {
|
||||
self.error = gettext('Could not calculate fee');
|
||||
$scope.$apply();
|
||||
if (err || lodash.isNull(feePerKb)) {
|
||||
self.error = gettext('Could not get fee value');
|
||||
return;
|
||||
}
|
||||
self.lockedCurrentFeePerKb = currentFeePerKb;
|
||||
|
||||
var feeToSendMaxSat = parseInt(((totalBytesToSendMax * feePerKb) / 1000.).toFixed(0));
|
||||
if (availableBalanceSat > feeToSendMaxSat) {
|
||||
self.lockedCurrentFeePerKb = feePerKb;
|
||||
availableMaxBalance = strip((availableBalanceSat - feeToSendMaxSat) * self.satToUnit);
|
||||
feeToSendMaxStr = profileService.formatAmount(feeToSendMaxSat) + ' ' + self.unitName;
|
||||
} else {
|
||||
self.error = gettext('Not enought funds for fee');
|
||||
return;
|
||||
}
|
||||
|
||||
var msg = gettextCatalog.getString("{{fee}} will be deducted for bitcoin networking fees", {
|
||||
fee: feeToSendMaxStr
|
||||
});
|
||||
|
|
|
@ -10,10 +10,13 @@ angular.module('copayApp.services').factory('feeService', function($log, profile
|
|||
economy: gettextCatalog.getString('Economy')
|
||||
};
|
||||
|
||||
root.getCurrentFeeValue = function(currentSendFeeLevel, cb) {
|
||||
root.getCurrentFeeLevel = function() {
|
||||
return configService.getSync().wallet.settings.feeLevel || 'normal';
|
||||
};
|
||||
|
||||
root.getCurrentFeeValue = function(cb) {
|
||||
var fc = profileService.focusedClient;
|
||||
var config = configService.getSync().wallet.settings;
|
||||
var feeLevel = currentSendFeeLevel || config.feeLevel || 'normal';
|
||||
var feeLevel = root.getCurrentFeeLevel();
|
||||
// static fee
|
||||
var fee = 10000;
|
||||
fc.getFeeLevels(fc.credentials.network, function(err, levels) {
|
||||
|
@ -30,8 +33,7 @@ angular.module('copayApp.services').factory('feeService', function($log, profile
|
|||
|
||||
root.getFeeLevels = function(cb) {
|
||||
var fc = profileService.focusedClient;
|
||||
var config = configService.getSync().wallet.settings;
|
||||
var unitName = config.unitName;
|
||||
var unitName = configService.getSync().wallet.settings.unitName;
|
||||
|
||||
fc.getFeeLevels('livenet', function(errLivenet, levelsLivenet) {
|
||||
fc.getFeeLevels('testnet', function(errTestnet, levelsTestnet) {
|
||||
|
|
|
@ -92,18 +92,13 @@ angular.module('copayApp.services').factory('txService', function($rootScope, pr
|
|||
|
||||
root.createTx = function(opts, cb) {
|
||||
var fc = profileService.focusedClient;
|
||||
var config = configService.getSync();
|
||||
var configWallet = config.wallet;
|
||||
var walletSettings = configWallet.settings;
|
||||
|
||||
var currentSpendUnconfirmed = configWallet.spendUnconfirmed;
|
||||
var currentFeeLevel = walletSettings.feeLevel || 'normal';
|
||||
var currentSpendUnconfirmed = configService.getSync().wallet.spendUnconfirmed;
|
||||
|
||||
var getFee = function(cb) {
|
||||
if (opts.lockedCurrentFeePerKb) {
|
||||
cb(null, opts.lockedCurrentFeePerKb);
|
||||
} else {
|
||||
feeService.getCurrentFeeValue(currentFeeLevel, cb);
|
||||
feeService.getCurrentFeeValue(cb);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue