Fix fee levels for btc and bch

This commit is contained in:
Gustavo Maximiliano Cortez 2017-08-29 15:47:39 -03:00
commit 70fa50177c
No known key found for this signature in database
GPG key ID: 15EDAD8D9F2EB1AF
12 changed files with 20 additions and 23 deletions

View file

@ -70,7 +70,7 @@ angular.module('copayApp.controllers').controller('addressesController', functio
feeService.getFeeLevels(function(err, levels){ feeService.getFeeLevels($scope.wallet.coin, function(err, levels){
walletService.getLowUtxos($scope.wallet, levels, function(err, resp) { walletService.getLowUtxos($scope.wallet, levels, function(err, resp) {
if (err) return; if (err) return;

View file

@ -74,7 +74,6 @@ angular.module('copayApp.controllers').controller('confirmController', function(
// no min amount? (sendMax) => look for no empty wallets // no min amount? (sendMax) => look for no empty wallets
minAmount = minAmount || 1; minAmount = minAmount || 1;
console.log('[confirm.js.76]', network, coin); //TODO
$scope.wallets = profileService.getWallets({ $scope.wallets = profileService.getWallets({
onlyComplete: true, onlyComplete: true,
network: network, network: network,
@ -256,7 +255,7 @@ console.log('[confirm.js.76]', network, coin); //TODO
// End of quick refresh, before wallet is selected. // End of quick refresh, before wallet is selected.
if (!wallet) return cb(); if (!wallet) return cb();
feeService.getFeeRate(tx.network, tx.feeLevel, function(err, feeRate) { feeService.getFeeRate(wallet.coin, tx.network, tx.feeLevel, function(err, feeRate) {
if (err) return cb(err); if (err) return cb(err);
if (!usingCustomFee) tx.feeRate = feeRate; if (!usingCustomFee) tx.feeRate = feeRate;
@ -573,6 +572,7 @@ console.log('[confirm.js.76]', network, coin); //TODO
scope.network = tx.network; scope.network = tx.network;
scope.feeLevel = tx.feeLevel; scope.feeLevel = tx.feeLevel;
scope.noSave = true; scope.noSave = true;
scope.coin = wallet.coin;
if (usingCustomFee) { if (usingCustomFee) {
scope.customFeePerKB = tx.feeRate; scope.customFeePerKB = tx.feeRate;

View file

@ -102,7 +102,7 @@ angular.module('copayApp.controllers').controller('feeLevelsController', functio
$scope.feeOpts = feeService.feeOpts; $scope.feeOpts = feeService.feeOpts;
$scope.loadingFee = true; $scope.loadingFee = true;
feeService.getFeeLevels(function(err, levels) { feeService.getFeeLevels($scope.coin, function(err, levels) {
$scope.loadingFee = false; $scope.loadingFee = false;
if (err || lodash.isEmpty(levels)) { if (err || lodash.isEmpty(levels)) {
showErrorAndClose(null, err); showErrorAndClose(null, err);

View file

@ -59,7 +59,7 @@ angular.module('copayApp.controllers').controller('paperWalletController',
$scope.wallet.buildTxFromPrivateKey($scope.privateKey, destinationAddress, null, function(err, testTx) { $scope.wallet.buildTxFromPrivateKey($scope.privateKey, destinationAddress, null, function(err, testTx) {
if (err) return cb(err); if (err) return cb(err);
var rawTxLength = testTx.serialize().length; var rawTxLength = testTx.serialize().length;
feeService.getCurrentFeeRate('livenet', function(err, feePerKb) { feeService.getCurrentFeeRate('btc', 'livenet', function(err, feePerKb) {
var opts = {}; var opts = {};
opts.fee = Math.round((feePerKb * rawTxLength) / 2000); opts.fee = Math.round((feePerKb * rawTxLength) / 2000);
$scope.wallet.buildTxFromPrivateKey($scope.privateKey, destinationAddress, opts, function(err, tx) { $scope.wallet.buildTxFromPrivateKey($scope.privateKey, destinationAddress, opts, function(err, tx) {

View file

@ -32,11 +32,12 @@ angular.module('copayApp.controllers').controller('preferencesFeeController', fu
}); });
$scope.init = function() { $scope.init = function() {
var coin = 'btc'; // TODO: only BTC in preferences
$scope.network = $scope.network || 'livenet'; $scope.network = $scope.network || 'livenet';
$scope.feeOpts = feeService.feeOpts; $scope.feeOpts = feeService.feeOpts;
$scope.currentFeeLevel = $scope.feeLevel || feeService.getCurrentFeeLevel(); $scope.currentFeeLevel = $scope.feeLevel || feeService.getCurrentFeeLevel();
$scope.loadingFee = true; $scope.loadingFee = true;
feeService.getFeeLevels(function(err, levels) { feeService.getFeeLevels(coin, function(err, levels) {
$scope.loadingFee = false; $scope.loadingFee = false;
if (err) { if (err) {
//Error is already formatted //Error is already formatted

View file

@ -131,7 +131,7 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio
$scope.$digest(); $scope.$digest();
}); });
feeService.getFeeLevels(function(err, levels) { feeService.getFeeLevels($scope.wallet.coin, function(err, levels) {
if (err) return; if (err) return;
walletService.getLowAmount($scope.wallet, levels, function(err, amount) { walletService.getLowAmount($scope.wallet, levels, function(err, amount) {
if (err) return; if (err) return;

View file

@ -52,7 +52,7 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
var analyzeUtxos = function() { var analyzeUtxos = function() {
if (analyzeUtxosDone) return; if (analyzeUtxosDone) return;
feeService.getFeeLevels(function(err, levels) { feeService.getFeeLevels($scope.wallet.coin, function(err, levels) {
if (err) return; if (err) return;
walletService.getLowUtxos($scope.wallet, levels, function(err, resp) { walletService.getLowUtxos($scope.wallet, levels, function(err, resp) {
if (err || !resp) return; if (err || !resp) return;
@ -169,7 +169,7 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
}); });
}; };
feeService.getFeeLevels(function(err, levels) { feeService.getFeeLevels($scope.wallet.coin, function(err, levels) {
walletService.getTxHistory($scope.wallet, { walletService.getTxHistory($scope.wallet, {
progressFn: progressFn, progressFn: progressFn,
feeLevels: levels, feeLevels: levels,

View file

@ -170,7 +170,7 @@ angular.module('copayApp.services').factory('coinbaseService', function($http, $
var _getNetAmount = function(amount, cb) { var _getNetAmount = function(amount, cb) {
// Fee Normal for a single transaction (450 bytes) // Fee Normal for a single transaction (450 bytes)
var txNormalFeeKB = 450 / 1000; var txNormalFeeKB = 450 / 1000;
feeService.getFeeRate(null, 'normal', function(err, feePerKb) { feeService.getFeeRate('btc', 'livenet', 'normal', function(err, feePerKb) {
if (err) return cb(err); if (err) return cb(err);
var feeBTC = (feePerKb * txNormalFeeKB / 100000000).toFixed(8); var feeBTC = (feePerKb * txNormalFeeKB / 100000000).toFixed(8);

View file

@ -24,13 +24,13 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou
}; };
root.getFeeRate = function(network, feeLevel, cb) { root.getFeeRate = function(coin, network, feeLevel, cb) {
if (feeLevel == 'custom') return cb(); if (feeLevel == 'custom') return cb();
network = network || 'livenet'; network = network || 'livenet';
root.getFeeLevels(function(err, levels, fromCache) { root.getFeeLevels(coin, function(err, levels, fromCache) {
if (err) return cb(err); if (err) return cb(err);
var feeLevelRate = lodash.find(levels[network], { var feeLevelRate = lodash.find(levels[network], {
@ -53,11 +53,12 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou
}); });
}; };
root.getCurrentFeeRate = function(network, cb) { root.getCurrentFeeRate = function(coin, network, cb) {
return root.getFeeRate(network, root.getCurrentFeeLevel(), cb); return root.getFeeRate(coin, network, root.getCurrentFeeLevel(), cb);
}; };
root.getFeeLevels = function(cb) { root.getFeeLevels = function(coin, cb) {
coin = coin || 'btc';
if (cache.updateTs > Date.now() - CACHE_TIME_TS * 1000) { if (cache.updateTs > Date.now() - CACHE_TIME_TS * 1000) {
return cb(null, cache.data, true); return cb(null, cache.data, true);
@ -65,7 +66,7 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou
var walletClient = bwcService.getClient(); var walletClient = bwcService.getClient();
walletClient.getFeeLevels('btc', 'livenet', function(errLivenet, levelsLivenet) { walletClient.getFeeLevels(coin, 'livenet', function(errLivenet, levelsLivenet) {
walletClient.getFeeLevels('btc', 'testnet', function(errTestnet, levelsTestnet) { walletClient.getFeeLevels('btc', 'testnet', function(errTestnet, levelsTestnet) {
if (errLivenet || errTestnet) { if (errLivenet || errTestnet) {
return cb(gettextCatalog.getString('Could not get dynamic fee')); return cb(gettextCatalog.getString('Could not get dynamic fee'));

View file

@ -89,10 +89,7 @@ angular.module('copayApp.services')
wallet.copayerId = wallet.credentials.copayerId; wallet.copayerId = wallet.credentials.copayerId;
wallet.m = wallet.credentials.m; wallet.m = wallet.credentials.m;
wallet.n = wallet.credentials.n; wallet.n = wallet.credentials.n;
wallet.coin = wallet.credentials.coin ? wallet.credentials.coin : 'btc'; wallet.coin = wallet.credentials.coin;
// TODO
if (wallet.id == 'bf338d5b-6b2e-4118-adb0-6208c2d22a81') wallet.credentials.coin = wallet.coin = 'bch';
root.updateWalletSettings(wallet); root.updateWalletSettings(wallet);
root.wallet[walletId] = wallet; root.wallet[walletId] = wallet;

View file

@ -10,7 +10,7 @@ angular.module('copayApp.services').service('sendMaxService', function(feeServic
* *
*/ */
this.getInfo = function(wallet, cb) { this.getInfo = function(wallet, cb) {
feeService.getCurrentFeeRate(wallet.credentials.network, function(err, feePerKb) { feeService.getCurrentFeeRate(wallet.coin, wallet.credentials.network, function(err, feePerKb) {
if (err) return cb(err); if (err) return cb(err);
var config = configService.getSync().wallet; var config = configService.getSync().wallet;

View file

@ -79,7 +79,6 @@
</a> </a>
<div class="item item-icon-right" ng-if="wallet" ng-click="chooseFeeLevel(tx, wallet)"> <div class="item item-icon-right" ng-if="wallet" ng-click="chooseFeeLevel(tx, wallet)">
<span class="label">{{'Fee:' | translate}} {{tx.feeLevelName | translate}}</span> <span class="label">{{'Fee:' | translate}} {{tx.feeLevelName | translate}}</span>
<span ng-if="wallet.coin == 'btc'">
<span class="m10l">{{tx.txp[wallet.id].feeStr || '...'}}</span> <span class="m10l">{{tx.txp[wallet.id].feeStr || '...'}}</span>
<span class="item-note m10l"> <span class="item-note m10l">
<span>{{tx.txp[wallet.id].alternativeFeeStr || '...'}}&nbsp; <span>{{tx.txp[wallet.id].alternativeFeeStr || '...'}}&nbsp;
@ -90,7 +89,6 @@
</span> </span>
</span> </span>
</span> </span>
</span>
<i ng-if="wallet.coin == 'btc'" class="icon bp-arrow-right"></i> <i ng-if="wallet.coin == 'btc'" class="icon bp-arrow-right"></i>
</div> </div>