From ab44d80f3b170f71685454ceaad1451b73d10ee8 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Sat, 30 May 2015 23:15:43 -0300 Subject: [PATCH] safer address cache --- public/views/walletHome.html | 8 ++++---- src/js/controllers/walletHome.js | 17 +++++++++-------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/public/views/walletHome.html b/public/views/walletHome.html index c890ef6da..9e4d47d10 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -222,8 +222,8 @@ -
- +
+
@@ -237,7 +237,7 @@

- {{home.generatingAddress ? '...' : home.addr}} + {{home.generatingAddress ? '...' : home.addr[index.walletId]}}

@@ -246,7 +246,7 @@
+ ng-click="home.shareAddress(home.addr[index.walletId])"> Share address diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 9666d3589..4816a5e6f 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -23,7 +23,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi this.isRateAvailable = false; this.showScanner = false; this.isMobile = isMobile.any(); - this.addr = null; + this.addr = {}; var disableScannerListener = $rootScope.$on('dataScanned', function(event, data) { self.setForm(data); @@ -42,7 +42,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi }); var disableFocusListener = $rootScope.$on('Local/NewFocusedWallet', function() { - self.addr = null; + self.addr = {}; self.resetForm(); }); @@ -360,7 +360,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi return; } self.addrError = null; - self.addr = addr.address; + self.addr[fc.credentials.walletId] = addr.address; storageService.storeLastAddress(fc.credentials.walletId, addr.address, function() { self.generatingAddress = false; @@ -371,18 +371,19 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi this.setAddress = function() { self.addrError = null; - - if (self.addr) - return; - var fc = profileService.focusedClient; if (!fc) return; + if (self.addr[fc.credentials.walletId]) { + return; + } + + $timeout(function() { storageService.getLastAddress(fc.credentials.walletId, function(err, addr) { if (addr) { - self.addr = addr; + self.addr[fc.credentials.walletId] = addr; $scope.$digest(); } else { self.setNewAddress();