From 92de23e63b6fa2c535422ee406e525a3663b4d9a Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Wed, 16 Sep 2015 12:32:22 -0300 Subject: [PATCH 1/3] fallback to BIP21 if fetching PayPro fails --- src/js/controllers/walletHome.js | 38 ++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 16d5292bc..b77de1450 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -953,11 +953,13 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi }); }; - this.setFromPayPro = function(uri) { + this.setFromPayPro = function(uri, cb) { + if (!cb) cb = function() {}; + var fc = profileService.focusedClient; if (isChromeApp) { this.error = gettext('Payment Protocol not supported on Chrome App'); - return; + return cb(true); } var satToUnit = 1 / this.unitToSatoshi; @@ -973,23 +975,25 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi self.setOngoingProcess(); if (err) { - $log.warn(err); + $log.warn('Could not fetch payment request:', err); self.resetForm(); var msg = err.toString(); if (msg.match('HTTP')) { msg = gettext('Could not fetch payment information'); } self.error = msg; - } else { - self._paypro = paypro; - self.setForm(paypro.toAddress, (paypro.amount * satToUnit).toFixed(self.unitDecimals), - paypro.memo); + return cb(true); } + + self._paypro = paypro; + self.setForm(paypro.toAddress, (paypro.amount * satToUnit).toFixed(self.unitDecimals), paypro.memo); + return cb(); }); }, 1); }; this.setFromUri = function(uri) { + var self = this; function sanitizeUri(uri) { // Fixes when a region uses comma to separate decimals var regex = /[\?\&]amount=(\d+([\,\.]\d+)?)/i; @@ -1010,16 +1014,26 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi return uri; } var parsed = new bitcore.URI(uri); - var addr = parsed.address.toString(); + + var addr = parsed.address ? parsed.address.toString() : ''; var message = parsed.message; - if (parsed.r) - return this.setFromPayPro(parsed.r); var amount = parsed.amount ? (parsed.amount.toFixed(0) * satToUnit).toFixed(this.unitDecimals) : 0; - this.setForm(addr, amount, message); - return addr; + + if (parsed.r) { + this.setFromPayPro(parsed.r, function(err) { + if (err && addr && amount) { + self.setForm(addr, amount, message); + return addr; + } + }); + } else { + this.setForm(addr, amount, message); + return addr; + } + }; this.onAddressChange = function(value) { From 930c07b338784f96cb79355a4eff9f43f07fe3c5 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Fri, 18 Sep 2015 10:22:10 -0300 Subject: [PATCH 2/3] fix match at view --- public/views/backup.html | 2 +- src/js/controllers/backup.js | 1 + src/js/services/uxLanguage.js | 7 +++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/public/views/backup.html b/public/views/backup.html index 9896a8511..27859642c 100644 --- a/public/views/backup.html +++ b/public/views/backup.html @@ -75,7 +75,7 @@
- {{word}}  + {{word}} 
diff --git a/src/js/controllers/backup.js b/src/js/controllers/backup.js index eef4c5057..1f98120bd 100644 --- a/src/js/controllers/backup.js +++ b/src/js/controllers/backup.js @@ -30,4 +30,5 @@ angular.module('copayApp.controllers').controller('wordsController', this.mnemonicWords = words.split(/[\u3000\s]+/); this.mnemonicHasPassphrase = fc.mnemonicHasPassphrase(); + this.useIdeograms = words.indexOf("\u3000") >= 0; }); diff --git a/src/js/services/uxLanguage.js b/src/js/services/uxLanguage.js index e0cb59ac0..a61a2974e 100644 --- a/src/js/services/uxLanguage.js +++ b/src/js/services/uxLanguage.js @@ -27,6 +27,7 @@ angular.module('copayApp.services') }, { name: '日本語', isoCode: 'ja', + useIdeograms: true, }, { name: 'Pусский', isoCode: 'ru', @@ -64,6 +65,12 @@ angular.module('copayApp.services') return root.getName(root.currentLanguage); }; + root.getCurrentLanguageInfo = function() { + return lodash.find(root.availableLanguages, { + 'isoCode': root.currentLanguage + }); + }; + root.getLanguages = function() { return root.availableLanguages; }; From 337dfcf2908c2b0f65da810f76c4c6b2305af3b5 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Fri, 18 Sep 2015 10:27:36 -0300 Subject: [PATCH 3/3] fix in no-mnemonics --- src/js/controllers/backup.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/js/controllers/backup.js b/src/js/controllers/backup.js index 1f98120bd..b186a4582 100644 --- a/src/js/controllers/backup.js +++ b/src/js/controllers/backup.js @@ -7,12 +7,12 @@ angular.module('copayApp.controllers').controller('wordsController', var successMsg = gettext('Backup words deleted'); this.done = function() { - $rootScope.$emit('Local/BackupDone'); + $rootScope.$emit('Local/BackupDone'); }; this.delete = function() { var fc = profileService.focusedClient; - confirmDialog.show(msg,function(ok){ + confirmDialog.show(msg, function(ok) { if (ok) { fc.clearMnemonic(); profileService.updateCredentialsFC(function() { @@ -26,9 +26,10 @@ angular.module('copayApp.controllers').controller('wordsController', var fc = profileService.focusedClient; var words = fc.getMnemonic(); - if (words) + if (words) { this.mnemonicWords = words.split(/[\u3000\s]+/); + this.mnemonicHasPassphrase = fc.mnemonicHasPassphrase(); + this.useIdeograms = words.indexOf("\u3000") >= 0; + } - this.mnemonicHasPassphrase = fc.mnemonicHasPassphrase(); - this.useIdeograms = words.indexOf("\u3000") >= 0; });