Ref get/set fee level
This commit is contained in:
parent
4b1ca3bf5a
commit
4829b40250
11 changed files with 81 additions and 101 deletions
|
|
@ -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;
|
||||
|
||||
|
||||
|
|
@ -359,10 +358,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
$log.debug('Wallet Status:', walletStatus);
|
||||
self.setPendingTxps(walletStatus.pendingTxps);
|
||||
|
||||
if (!self.feeLevels) {
|
||||
self.setFeesOpts();
|
||||
}
|
||||
|
||||
// Status Shortcuts
|
||||
self.walletName = walletStatus.wallet.name;
|
||||
self.walletSecret = walletStatus.wallet.secret;
|
||||
|
|
@ -390,50 +385,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;
|
||||
} else {
|
||||
self.feeToSendMaxStr = null;
|
||||
}
|
||||
|
||||
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;
|
||||
|
|
@ -666,11 +618,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
|
||||
if (!self.currentFeeLevel) {
|
||||
self.setCurrentFeeLevel();
|
||||
}
|
||||
|
||||
// Check address
|
||||
addressService.isUsed(self.walletId, balance.byAddress, function(err, used) {
|
||||
if (used) {
|
||||
|
|
@ -1251,14 +1198,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…
Add table
Add a link
Reference in a new issue