From 5e0b5c876b72c14a2c059057334cc6bc662b6d5b Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 26 Sep 2017 17:03:07 -0300 Subject: [PATCH 1/6] Fix confirm view for bitcoin cash legacy address --- src/js/controllers/confirm.js | 31 +++++++++++++++++++++++++++---- src/sass/views/confirm.scss | 5 +++++ www/views/confirm.html | 3 +++ 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 60cbc0244..9ff5bb167 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -68,6 +68,28 @@ angular.module('copayApp.controllers').controller('confirmController', function( }); }; + function getNetwork(address) { + var network; + try { + network = (new bitcore.Address(address)).network.name; + } catch(e) { + network = (new bitcoreCash.Address(address)).network.name; + } + return network; + }; + + function getValidAddress(coin, address) { + var B = coin == 'bch' ? bitcoreCash : bitcore; + try { + return B.Address(address).toString(); + } catch(e) { + $scope.legacyBitcoinAddress = address; + $log.warn('Convert to new bitcoin cash address format'); + var a = bitcore.Address(address).toObject(); + return bitcoreCash.Address.fromObject(a).toString(); + }; + }; + $scope.$on("$ionicView.beforeEnter", function(event, data) { function setWalletSelector(coin, network, minAmount, cb) { @@ -121,15 +143,16 @@ angular.module('copayApp.controllers').controller('confirmController', function( }; // Setup $scope - - var B = data.stateParams.coin == 'bch' ? bitcoreCash : bitcore; + + var network = getNetwork(data.stateParams.toAddress); + var toAddress = getValidAddress(data.stateParams.coin, data.stateParams.toAddress); // Grab stateParams tx = { toAmount: parseInt(data.stateParams.toAmount), sendMax: data.stateParams.useSendMax == 'true' ? true : false, - toAddress: data.stateParams.toAddress, + toAddress: toAddress, description: data.stateParams.description, paypro: data.stateParams.paypro, @@ -141,7 +164,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( toName: data.stateParams.toName, toEmail: data.stateParams.toEmail, toColor: data.stateParams.toColor, - network: (new B.Address(data.stateParams.toAddress)).network.name, + network: network, coin: data.stateParams.coin, txp: {}, }; diff --git a/src/sass/views/confirm.scss b/src/sass/views/confirm.scss index 9ceee92c4..0e3f0f1dd 100644 --- a/src/sass/views/confirm.scss +++ b/src/sass/views/confirm.scss @@ -30,4 +30,9 @@ .toggle { cursor: pointer; } + .legacy-bitcoin-address { + font-size: 12px; + color: #aaa; + margin-left: 40px; + } } diff --git a/www/views/confirm.html b/www/views/confirm.html index 6e44dfa3c..41109bf21 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -60,6 +60,9 @@ {{tx.toName}} {{tx.toAddress}} +
+ Legacy Bitcoin address: {{legacyBitcoinAddress}} +
From From 846321ae4e582252694f6ac8769fff28d9207090 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 26 Sep 2017 17:06:05 -0300 Subject: [PATCH 2/6] Fix names --- src/js/controllers/confirm.js | 2 +- www/views/confirm.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 9ff5bb167..c4b685cde 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -83,7 +83,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( try { return B.Address(address).toString(); } catch(e) { - $scope.legacyBitcoinAddress = address; + $scope.legacyBitcoinCashAddress = address; $log.warn('Convert to new bitcoin cash address format'); var a = bitcore.Address(address).toObject(); return bitcoreCash.Address.fromObject(a).toString(); diff --git a/www/views/confirm.html b/www/views/confirm.html index 41109bf21..ba2457c8b 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -60,8 +60,8 @@ {{tx.toName}} {{tx.toAddress}} -
- Legacy Bitcoin address: {{legacyBitcoinAddress}} +
+ Legacy Bitcoin Cash address: {{legacyBitcoinCashAddress}}
From 49199997e300ddd60e4763f8c7bfd3bf98830182 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 2 Oct 2017 12:35:08 -0300 Subject: [PATCH 3/6] Ref try catch for networkName --- src/js/controllers/confirm.js | 54 +++++++++++++++++------------------ 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index c4b685cde..1f81f177f 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $interval, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, walletService, platformInfo, lodash, configService, $stateParams, $window, $state, $log, profileService, bitcore, bitcoreCash, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, payproService, feeService, bwcError, txConfirmNotification) { +angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $interval, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, walletService, platformInfo, lodash, configService, $stateParams, $window, $state, $log, profileService, bitcore, bitcoreCash, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, payproService, feeService, bwcError, txConfirmNotification, externalLinkService) { var countDown = null; var CONFIRM_LIMIT_USD = 20; @@ -68,28 +68,6 @@ angular.module('copayApp.controllers').controller('confirmController', function( }); }; - function getNetwork(address) { - var network; - try { - network = (new bitcore.Address(address)).network.name; - } catch(e) { - network = (new bitcoreCash.Address(address)).network.name; - } - return network; - }; - - function getValidAddress(coin, address) { - var B = coin == 'bch' ? bitcoreCash : bitcore; - try { - return B.Address(address).toString(); - } catch(e) { - $scope.legacyBitcoinCashAddress = address; - $log.warn('Convert to new bitcoin cash address format'); - var a = bitcore.Address(address).toObject(); - return bitcoreCash.Address.fromObject(a).toString(); - }; - }; - $scope.$on("$ionicView.beforeEnter", function(event, data) { function setWalletSelector(coin, network, minAmount, cb) { @@ -144,15 +122,35 @@ angular.module('copayApp.controllers').controller('confirmController', function( // Setup $scope - - var network = getNetwork(data.stateParams.toAddress); - var toAddress = getValidAddress(data.stateParams.coin, data.stateParams.toAddress); + var B = data.stateParams.coin == 'bch' ? bitcoreCash : bitcore; + var networkName; + try { + networkName = (new B.Address(data.stateParams.toAddress)).network.name; + } catch(e) { + var message = gettextCatalog.getString('Copay only supports Bitcoin Cash using new version numbers addresses'); + var okText = gettextCatalog.getString('Go back'); + var cancelText = gettextCatalog.getString('Learn more'); + popupService.showConfirm(null, message, okText, cancelText, function(back) { + $ionicHistory.nextViewOptions({ + disableAnimate: true, + historyRoot: true + }); + $state.go('tabs.send').then(function() { + $ionicHistory.clearHistory(); + if (!back) { + var url = 'https://support.bitpay.com/hc/en-us/articles/115004671663'; + externalLinkService.open(url); + } + }); + }); + return; + } // Grab stateParams tx = { toAmount: parseInt(data.stateParams.toAmount), sendMax: data.stateParams.useSendMax == 'true' ? true : false, - toAddress: toAddress, + toAddress: data.stateParams.toAddress, description: data.stateParams.description, paypro: data.stateParams.paypro, @@ -164,7 +162,7 @@ angular.module('copayApp.controllers').controller('confirmController', function( toName: data.stateParams.toName, toEmail: data.stateParams.toEmail, toColor: data.stateParams.toColor, - network: network, + network: networkName, coin: data.stateParams.coin, txp: {}, }; From a5948b7b3cca283b99f1b1b7b7689200f7c47eac Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 2 Oct 2017 12:36:00 -0300 Subject: [PATCH 4/6] Removes cash message --- www/views/confirm.html | 4 ---- 1 file changed, 4 deletions(-) diff --git a/www/views/confirm.html b/www/views/confirm.html index ba2457c8b..edb012537 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -59,10 +59,6 @@ {{tx.toName}} {{tx.toAddress}} - -
- Legacy Bitcoin Cash address: {{legacyBitcoinCashAddress}} -
From From 2e541f90adcd53ab43a588e0c55d0230758a88e2 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 2 Oct 2017 12:37:33 -0300 Subject: [PATCH 5/6] Clean code --- src/sass/views/confirm.scss | 5 ----- www/views/confirm.html | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/sass/views/confirm.scss b/src/sass/views/confirm.scss index 0e3f0f1dd..9ceee92c4 100644 --- a/src/sass/views/confirm.scss +++ b/src/sass/views/confirm.scss @@ -30,9 +30,4 @@ .toggle { cursor: pointer; } - .legacy-bitcoin-address { - font-size: 12px; - color: #aaa; - margin-left: 40px; - } } diff --git a/www/views/confirm.html b/www/views/confirm.html index edb012537..6e44dfa3c 100644 --- a/www/views/confirm.html +++ b/www/views/confirm.html @@ -59,6 +59,7 @@ {{tx.toName}} {{tx.toAddress}} + From From 287ecba7ffbedb955597e8d29a6e94281583f3bb Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 2 Oct 2017 12:40:44 -0300 Subject: [PATCH 6/6] Rename variables --- src/js/controllers/confirm.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 1f81f177f..286c90bf8 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -128,9 +128,9 @@ angular.module('copayApp.controllers').controller('confirmController', function( networkName = (new B.Address(data.stateParams.toAddress)).network.name; } catch(e) { var message = gettextCatalog.getString('Copay only supports Bitcoin Cash using new version numbers addresses'); - var okText = gettextCatalog.getString('Go back'); - var cancelText = gettextCatalog.getString('Learn more'); - popupService.showConfirm(null, message, okText, cancelText, function(back) { + var backText = gettextCatalog.getString('Go back'); + var learnText = gettextCatalog.getString('Learn more'); + popupService.showConfirm(null, message, backText, learnText, function(back) { $ionicHistory.nextViewOptions({ disableAnimate: true, historyRoot: true