add support for fee customization

Signed-off-by: Matias Alejo Garcia <ematiu@gmail.com>
This commit is contained in:
Matias Alejo Garcia 2015-06-19 17:22:12 -03:00
commit 67ba30a20e
8 changed files with 74 additions and 2 deletions

View file

@ -17,7 +17,7 @@
"ng-lodash": "~0.2.0",
"angular-moment": "~0.10.1",
"moment": "~2.10.3",
"angular-bitcore-wallet-client": "^0.0.24",
"angular-bitcore-wallet-client": "^0.0.25",
"angular-ui-router": "~0.2.13",
"qrcode-decoder-js": "*",
"fastclick": "*",

View file

@ -77,6 +77,14 @@
{{preferences.selectedAlternative.name}}
</span>
</li>
<li class="line-b p20" ng-click="$root.go('preferencesFee')">
<span translate>Bitcoin Network Fee Policy</span>
<span class="right text-gray">
<i class="icon-arrow-right3 size-24 right"></i>
{{preferences.feeName}}
</span>
</li>
<li class="line-b p20" ng-click="$root.go('preferencesBwsUrl')">
<span>Bitcore Wallet Service</span>

View file

@ -0,0 +1,14 @@
<div
class="topbar-container"
ng-include="'views/includes/topbar.html'"
ng-init="titleSection='Fee Policy'; goBackToState = 'preferences'; noColor = true">
</div>
<div class="content preferences" ng-controller="preferencesFeeController as prefFee">
<div ng-repeat="fee in prefFee.feeOpts" ng-click="prefFee.save(fee)" class="line-b p20 size-14">
<span>{{fee.name}} ({{fee.value}} bits per kB)</span>
<i class="fi-check size-16 right" ng-show="prefFee.feeName == fee.name"></i>
</div>
</div>
<div class="extra-margin-bottom"></div>

View file

@ -443,7 +443,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r
self.availableBalanceBTC = strip(self.availableBalanceBTC / COIN);
// KB to send max
self.feePerKbSat = config.feePerKbSat || 10000;
self.feePerKbSat = config.feeValue || 10000;
if (balance.totalKbToSendMax) {
var feeToSendMaxSat = balance.totalKbToSendMax * self.feePerKbSat;

View file

@ -4,6 +4,7 @@ angular.module('copayApp.controllers').controller('preferencesController',
function($scope, $rootScope, $filter, $timeout, $modal, $log, lodash, configService, profileService) {
var config = configService.getSync();
this.unitName = config.wallet.settings.unitName;
this.feeName = config.wallet.settings.feeName || 'Priority';
this.bwsurl = config.bws.url;
this.selectedAlternative = {
name: config.wallet.settings.alternativeName,

View file

@ -0,0 +1,35 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesFeeController',
function($rootScope, $scope, configService, go) {
var config = configService.getSync();
this.feeName = config.wallet.settings.feeName || 'Priority';
this.feeOpts = [{
name: 'Priority',
value: 100,
}, {
name: 'Normal',
value: 50,
}, {
name: 'Economy',
value: 10,
}];
this.save = function(newFee) {
var opts = {
wallet: {
settings: {
feeName: newFee.name,
feeValue: newFee.value * 100,
}
}
};
this.feeName = newFee.name;
configService.set(opts, function(err) {
if (err) console.log(err);
$scope.$emit('Local/UnitSettingUpdated');
});
};
});

View file

@ -608,6 +608,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
amount: amount,
message: comment,
payProUrl: paypro ? paypro.url : null,
feePerKb: config.feeValue || 10000,
}, function(err, txp) {
if (err) {
self.setOngoingProcess();

View file

@ -245,6 +245,18 @@ angular
},
}
})
.state('preferencesFee', {
url: '/preferencesFee',
templateUrl: 'views/preferencesFee.html',
walletShouldBeComplete: true,
needProfile: true,
views: {
'main': {
templateUrl: 'views/preferencesFee.html'
},
}
})
.state('preferencesAdvanced', {
url: '/preferencesAdvanced',
templateUrl: 'views/preferencesAdvanced.html',
@ -451,6 +463,7 @@ angular
delete: 13,
preferencesLanguage: 12,
preferencesUnit: 12,
preferencesFee: 12,
preferencesAltCurrency: 12,
preferencesBwsUrl: 12,
preferencesAlias: 12,