From f8135f3bd342f9919ef2ff08de8a88e9400cb0b4 Mon Sep 17 00:00:00 2001 From: Kadir Sekha Date: Tue, 6 Feb 2018 13:49:58 -0400 Subject: [PATCH] creates a wallet address by default for all non multisig wallets --- src/js/controllers/create.js | 60 ++++++++++++++++----------- src/js/controllers/onboarding/tour.js | 35 +++++++++++++--- 2 files changed, 66 insertions(+), 29 deletions(-) diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js index f10e1ae2e..5bab3e87f 100644 --- a/src/js/controllers/create.js +++ b/src/js/controllers/create.js @@ -235,36 +235,48 @@ angular.module('copayApp.controllers').controller('createController', ongoingProcess.set('creatingWallet', true); $timeout(function() { profileService.createWallet(opts, function(err, client) { - ongoingProcess.set('creatingWallet', false); - if (err) { - $log.warn(err); - popupService.showAlert(gettextCatalog.getString('Error'), err); - return; - } + function finish(error) { + ongoingProcess.set('creatingWallet', false); + if (error) { + $log.warn(error); + popupService.showAlert(gettextCatalog.getString('Error'), error); + return; + } - walletService.updateRemotePreferences(client); - pushNotificationsService.updateSubscription(client); + walletService.updateRemotePreferences(client); + pushNotificationsService.updateSubscription(client); - if ($scope.formData.seedSource.id == 'set') { - profileService.setBackupFlag(client.credentials.walletId); - } + if ($scope.formData.seedSource.id == 'set') { + profileService.setBackupFlag(client.credentials.walletId); + } - $ionicHistory.removeBackView(); + $ionicHistory.removeBackView(); - if (!client.isComplete()) { - $ionicHistory.nextViewOptions({ - disableAnimate: true - }); - $state.go('tabs.home'); - $timeout(function() { - $state.transitionTo('tabs.copayers', { - walletId: client.credentials.walletId + if (!client.isComplete()) { + $ionicHistory.nextViewOptions({ + disableAnimate: true }); - }, 100); + $state.go('tabs.home'); + $timeout(function() { + $state.transitionTo('tabs.copayers', { + walletId: client.credentials.walletId + }); + }, 100); + } + else { + firebaseEventsService.logEvent('wallet_created', { coin: opts.coin }); + $state.go('tabs.home'); + } } - else { - firebaseEventsService.logEvent('wallet_created', { coin: opts.coin }); - $state.go('tabs.home'); + + if (opts.n >= 2) { + finish(err); + } else { + ongoingProcess.set('generatingNewAddress', true); + walletService.getAddress(client, true, function(e, addr) { + ongoingProcess.set('generatingNewAddress', false); + finish(e); + }); } }); }, 300); diff --git a/src/js/controllers/onboarding/tour.js b/src/js/controllers/onboarding/tour.js index 36a366bb1..9a634a24f 100644 --- a/src/js/controllers/onboarding/tour.js +++ b/src/js/controllers/onboarding/tour.js @@ -1,6 +1,6 @@ 'use strict'; angular.module('copayApp.controllers').controller('tourController', - function($scope, $state, $log, $timeout, $filter, ongoingProcess, profileService, rateService, popupService, gettextCatalog, startupService, storageService) { + function($scope, $state, $log, $timeout, $filter, ongoingProcess, profileService, rateService, popupService, gettextCatalog, startupService, storageService, walletService, $q) { $scope.data = { index: 0 @@ -60,16 +60,41 @@ angular.module('copayApp.controllers').controller('tourController', } }, 2000); }; + ongoingProcess.set('creatingWallet', false); var bchWallet = walletClients[0]; var btcWallet = walletClients[1]; - var bchWalletId = bchWallet.credentials.walletId; var btcWalletId = btcWallet.credentials.walletId; - $state.go('onboarding.collectEmail', { - bchWalletId: bchWalletId, - btcWalletId: btcWalletId + function createAddressPromise(wallet) { + return $q(function(resolve, reject) { + walletService.getAddress(wallet, true, function(e, addr) { + if (e) reject(e); + resolve(addr); + }); + }); + } + + function goToCollectEmail() { + $state.go('onboarding.collectEmail', { + bchWalletId: bchWalletId, + btcWalletId: btcWalletId + }); + } + + var bchAddressPromise = createAddressPromise(bchWallet); + var btcAddressPromise = createAddressPromise(btcWallet); + ongoingProcess.set('generatingNewAddress', true); + + $q.all([bchAddressPromise, btcAddressPromise]).then(function(addresses) { + ongoingProcess.set('generatingNewAddress', false); + goToCollectEmail(); + }, function(e) { + ongoingProcess.set('generatingNewAddress', false); + $log.warn(e); + popupService.showAlert(gettextCatalog.getString('Error'), e); + goToCollectEmail(); }); }); }, 300);