From 3d4f216b41a957e8c6b8ed10d4f200d996d12dbb Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 25 Nov 2016 15:59:44 -0300 Subject: [PATCH] use cached values --- src/js/controllers/confirm.js | 41 ++++++++++++++++++++++++----------- src/sass/views/views.scss | 1 - 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index ea749a3d0..5894d44cd 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -10,6 +10,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( var giftCardAccessKey; var giftCardInvoiceTime; var giftCardUUID; + var cachedSendMax = {}; $scope.isCordova = platformInfo.isCordova; $ionicConfig.views.swipeBackEnabled(false); @@ -22,7 +23,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( giftCardUUID = data.stateParams.giftCardUUID; toAmount = data.stateParams.toAmount; - $scope.useSendMax = data.stateParams.useSendMax; + $scope.useSendMax = data.stateParams.useSendMax == 'true' ? true : false; $scope.isWallet = data.stateParams.isWallet; $scope.cardId = data.stateParams.cardId; $scope.toAddress = data.stateParams.toAddress; @@ -116,12 +117,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( popupService.showAlert(gettextCatalog.getString('Error'), err.message); return; } - var config = configService.getSync().wallet; - var unitName = config.settings.unitName; - var unitToSatoshi = config.settings.unitToSatoshi; - var satToUnit = 1 / unitToSatoshi; - var unitDecimals = config.settings.unitDecimals; ongoingProcess.set('retrievingInputs', true); walletService.getSendMaxInfo($scope.wallet, { @@ -144,11 +140,15 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.sendMaxInfo = { sendMax: true, + amount: resp.amount, inputs: resp.inputs, fee: resp.fee, feePerKb: feePerKb, }; + cachedSendMax[$scope.wallet.id] = $scope.sendMaxInfo; + var unitName = config.settings.unitName; + var msg = gettextCatalog.getString("{{fee}} will be deducted for bitcoin networking fees", { fee: txFormatService.formatAmount(resp.fee) + ' ' + unitName }); @@ -158,13 +158,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( msg += '. \n' + warningMsg; popupService.showAlert(null, msg, function() { - $scope.displayAmount = txFormatService.formatAmount(resp.amount, true); - $scope.displayUnit = unitName; - $scope.fee = txFormatService.formatAmount($scope.sendMaxInfo.fee) + ' ' + unitName; - toAmount = parseFloat((resp.amount * satToUnit).toFixed(unitDecimals)); - txFormatService.formatAlternativeStr(resp.amount, function(v) { - $scope.alternativeAmountStr = v; - }); + setSendMaxValues(resp); createTx($scope.wallet, true, function(err, txp) { if (err) return; @@ -192,6 +186,22 @@ angular.module('copayApp.controllers').controller('confirmController', function( }); }; + function setSendMaxValues(data) { + var config = configService.getSync().wallet; + var unitName = config.settings.unitName; + var unitToSatoshi = config.settings.unitToSatoshi; + var satToUnit = 1 / unitToSatoshi; + var unitDecimals = config.settings.unitDecimals; + + $scope.displayAmount = txFormatService.formatAmount(data.amount, true); + $scope.displayUnit = unitName; + $scope.fee = txFormatService.formatAmount(data.fee) + ' ' + unitName; + toAmount = parseFloat((data.amount * satToUnit).toFixed(unitDecimals)); + txFormatService.formatAlternativeStr(data.amount, function(v) { + $scope.alternativeAmountStr = v; + }); + }; + $scope.$on('accepted', function(event) { $scope.approve(); }); @@ -203,6 +213,11 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.onWalletSelect = function(wallet) { if ($scope.useSendMax) { $scope.wallet = wallet; + if (cachedSendMax[wallet.id]) { + $log.debug('Send max cached for wallet:', wallet.id); + setSendMaxValues(cachedSendMax[wallet.id]); + return; + } $scope.getSendMaxInfo(); } else setWallet(wallet); diff --git a/src/sass/views/views.scss b/src/sass/views/views.scss index af863d518..1e88f8af0 100644 --- a/src/sass/views/views.scss +++ b/src/sass/views/views.scss @@ -38,7 +38,6 @@ @import "includes/tx-details"; @import "includes/txp-details"; @import "includes/tx-status"; -@import "includes/sendMaxSelector"; @import "includes/walletSelector"; @import "integrations/coinbase"; @import "integrations/glidera";