From 7e9d47c8e9f151fa741ed924ccd6860a2c090b0c Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 14 Nov 2016 12:31:38 -0300 Subject: [PATCH] Fix next address --- src/js/controllers/tab-receive.js | 22 ++++++++++++++-------- src/js/services/walletService.js | 15 +++++++++------ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js index bc2c7db45..04fc88728 100644 --- a/src/js/controllers/tab-receive.js +++ b/src/js/controllers/tab-receive.js @@ -31,7 +31,7 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi $scope.loadAddresses = function(wallet, index) { walletService.getAddress(wallet, false, function(err, addr) { - $scope.walletAddrs[wallet.id] = addr || null; + $scope.walletAddrs[wallet.id] = addr; }); } @@ -95,13 +95,6 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi $scope.$on('Wallet/Changed', function(event, wallet) { - $scope.wallet = wallet; - $scope.walletIndex = lodash.findIndex($scope.wallets, function(wallet) { - return wallet.id == $scope.wallet.id; - }); - if (!$scope.walletAddrs[wallet.id]) $scope.setAddress(false); - else $scope.addr = $scope.walletAddrs[wallet.id]; - $scope.$apply(); if (!wallet) { $log.debug('No wallet provided'); return; @@ -112,6 +105,18 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi } $scope.wallet = wallet; $log.debug('Wallet changed: ' + wallet.name); + + $scope.walletIndex = lodash.findIndex($scope.wallets, function(wallet) { + return wallet.id == $scope.wallet.id; + }); + + if (!$scope.walletAddrs[wallet.id]) $scope.setAddress(false); + else $scope.addr = $scope.walletAddrs[wallet.id]; + + $timeout(function() { + $scope.$apply(); + }, 100); + }); $scope.updateCurrentWallet = function() { @@ -135,6 +140,7 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi $scope.loadAddresses(wallet); }); + listeners = [ $rootScope.$on('bwsEvent', function(e, walletId, type, n) { // Update current address diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index 0e3c95ab0..95309c0f7 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -800,17 +800,20 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim }; root.getAddress = function(wallet, forceNew, cb) { - storageService.getLastAddress(wallet.id, function(err, addr) { if (err) return cb(err); if (!forceNew && addr) return cb(null, addr); - createAddress(wallet, function(err, _addr) { - if (err) return cb(err, addr); - storageService.storeLastAddress(wallet.id, _addr, function() { - if (err) return cb(err); - return cb(null, _addr); + root.isReady(wallet, function(err) { + if (err) return cb(err); + + createAddress(wallet, function(err, _addr) { + if (err) return cb(err, addr); + storageService.storeLastAddress(wallet.id, _addr, function() { + if (err) return cb(err); + return cb(null, _addr); + }); }); }); });