diff --git a/src/js/controllers/backup.js b/src/js/controllers/backup.js index a8da1225c..23544a3eb 100644 --- a/src/js/controllers/backup.js +++ b/src/js/controllers/backup.js @@ -2,7 +2,13 @@ angular.module('copayApp.controllers').controller('backupController', function($scope, $timeout, $log, $state, $stateParams, $ionicHistory, lodash, profileService, bwcService, walletService, ongoingProcess, popupService, gettextCatalog, $ionicModal, firebaseEventsService) { - $scope.wallet = profileService.getWallet($stateParams.walletId); + if ($stateParams.bchWalletId && $stateParams.btcWalletId) { + $scope.wallet = profileService.getWallet($stateParams.bchWalletId); + $scope.btcWallet = profileService.getWallet($stateParams.btcWalletId); + } else { + $scope.wallet = profileService.getWallet($stateParams.walletId); + } + $scope.viewTitle = $scope.wallet.name || $scope.wallet.credentials.walletName; $scope.n = $scope.wallet.n; var keys; @@ -92,7 +98,8 @@ angular.module('copayApp.controllers').controller('backupController', $ionicHistory.removeBackView(); $state.go('tabs.home'); } else $state.go('onboarding.disclaimer', { - walletId: $stateParams.walletId, + bchWalletId: $stateParams.bchWalletId, + btcWalletId: $stateParams.btcWalletId, backedUp: true }); }); @@ -138,6 +145,9 @@ angular.module('copayApp.controllers').controller('backupController', } profileService.setBackupFlag($scope.wallet.credentials.walletId); + if ($scope.btcWallet) { + profileService.setBackupFlag($scope.btcWallet.credentials.walletId); + } return cb(); }, 1); }; diff --git a/src/js/controllers/onboarding/backupRequest.js b/src/js/controllers/onboarding/backupRequest.js index 0aad02874..0c93d73db 100644 --- a/src/js/controllers/onboarding/backupRequest.js +++ b/src/js/controllers/onboarding/backupRequest.js @@ -2,7 +2,8 @@ angular.module('copayApp.controllers').controller('backupRequestController', function($scope, $state, $stateParams, $ionicConfig, popupService, gettextCatalog) { - $scope.walletId = $stateParams.walletId; + $scope.bchWalletId = $stateParams.bchWalletId; + $scope.btcWalletId = $stateParams.btcWalletId; $scope.$on("$ionicView.enter", function() { $ionicConfig.views.swipeBackEnabled(false); @@ -27,7 +28,8 @@ angular.module('copayApp.controllers').controller('backupRequestController', fun popupService.showConfirm(title, message, okText, cancelText, function(val) { if (val) { $state.go('onboarding.disclaimer', { - walletId: $scope.walletId, + bchWalletId: $scope.bchWalletId, + btcWalletId: $scope.btcWalletId, backedUp: false }); } diff --git a/src/js/controllers/onboarding/backupWarning.js b/src/js/controllers/onboarding/backupWarning.js index 248b2b3a1..cdbe52beb 100644 --- a/src/js/controllers/onboarding/backupWarning.js +++ b/src/js/controllers/onboarding/backupWarning.js @@ -2,8 +2,15 @@ angular.module('copayApp.controllers').controller('backupWarningController', function($scope, $state, $timeout, $stateParams, $ionicModal) { - $scope.walletId = $stateParams.walletId; - $scope.fromState = $stateParams.from == 'onboarding' ? $stateParams.from + '.backupRequest' : $stateParams.from; + if ($stateParams.from == 'onboarding') { + $scope.bchWalletId = $stateParams.bchWalletId; + $scope.btcWalletId = $stateParams.btcWalletId; + $scope.fromState = $stateParams.from + '.backupRequest' ; + } else { + $scope.walletId = $stateParams.walletId; + $scope.fromState = $stateParams.from; + } + $scope.toState = $stateParams.from + '.backup'; $scope.openPopup = function() { @@ -19,17 +26,30 @@ angular.module('copayApp.controllers').controller('backupWarningController', fun $scope.close = function() { $scope.warningModal.remove(); $timeout(function() { - $state.go($scope.toState, { - walletId: $scope.walletId - }); + if ($stateParams.from == 'onboarding') { + $state.go($scope.toState, { + bchWalletId: $scope.bchWalletId, + btcWalletId: $scope.btcWalletId + }); + } else { + $state.go($scope.toState, { + walletId: $scope.walletId + }); + } }, 200); }; } $scope.goBack = function() { - $state.go($scope.fromState, { - walletId: $scope.walletId - }); + if ($stateParams.from == 'onboarding') { + $state.go($scope.toState, { + bchWalletId: $scope.bchWalletId, + btcWalletId: $scope.btcWalletId + }); + } else { + $state.go($scope.fromState, { + walletId: $scope.walletId + }); + } }; - }); diff --git a/src/js/controllers/onboarding/collectEmail.js b/src/js/controllers/onboarding/collectEmail.js index 3a155f207..a7c6dc0d4 100644 --- a/src/js/controllers/onboarding/collectEmail.js +++ b/src/js/controllers/onboarding/collectEmail.js @@ -2,7 +2,11 @@ angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $log, $timeout, $http, $httpParamSerializer, $ionicConfig, profileService, configService, walletService, appConfigService, emailService) { - var wallet, walletId; + var bchWalletId; + var btcWalletId; + var bchWallet; + var btcWallet; + $scope.data = {}; // Get more info: https://mashe.hawksey.info/2014/07/google-sheets-as-a-database-insert-with-apps-script-using-postget-methods-with-ajax-example/ var URL = "https://script.google.com/macros/s/AKfycbyuuLpN7UvtMMHv2BNLfZ7N2m4y4N6MeTpGRGFvnkGHFr9SM60/exec"; @@ -27,8 +31,11 @@ angular.module('copayApp.controllers').controller('collectEmailController', func }); $scope.$on("$ionicView.beforeEnter", function(event, data) { - walletId = data.stateParams.walletId; - wallet = profileService.getWallet(walletId); + bchWalletId = data.stateParams.bchWalletId; + btcWalletId = data.stateParams.btcWalletId; + + bchWallet = profileService.getWallet(bchWalletId); + btcWallet = profileService.getWallet(btcWalletId); $scope.data.accept = true; }); @@ -56,7 +63,7 @@ angular.module('copayApp.controllers').controller('collectEmailController', func enabled: enabled, email: enabled ? $scope.data.email : null }); - + if ($scope.data.accept) collectEmail(); $timeout(function() { @@ -67,7 +74,8 @@ angular.module('copayApp.controllers').controller('collectEmailController', func $scope.goNextView = function() { $state.go('onboarding.backupRequest', { - walletId: walletId + bchWalletId: bchWalletId, + btcWalletId: btcWalletId }); }; diff --git a/src/js/controllers/onboarding/disclaimer.js b/src/js/controllers/onboarding/disclaimer.js index de4f23387..d46b973bd 100644 --- a/src/js/controllers/onboarding/disclaimer.js +++ b/src/js/controllers/onboarding/disclaimer.js @@ -46,7 +46,8 @@ angular.module('copayApp.controllers').controller('disclaimerController', functi $scope.goBack = function() { $state.go('onboarding.backupRequest', { - walletId: $stateParams.walletId + bchWalletId: $stateParams.bchWalletId, + btcWalletId: $stateParams.btcWalletId }); } diff --git a/src/js/controllers/onboarding/tour.js b/src/js/controllers/onboarding/tour.js index 5781ec22a..15baac60a 100644 --- a/src/js/controllers/onboarding/tour.js +++ b/src/js/controllers/onboarding/tour.js @@ -40,7 +40,7 @@ angular.module('copayApp.controllers').controller('tourController', $scope.createDefaultWallet = function() { ongoingProcess.set('creatingWallet', true); $timeout(function() { - profileService.createDefaultWallet(function(err, walletClient) { + profileService.createDefaultWallet(function(err, walletClients) { if (err) { $log.warn(err); @@ -60,18 +60,16 @@ angular.module('copayApp.controllers').controller('tourController', }, 2000); }; ongoingProcess.set('creatingWallet', false); - var wallet = walletClient; - var walletId = wallet.credentials.walletId; + var bchWallet = walletClients[0]; + var btcWallet = walletClients[1]; + + var bchWalletId = bchWallet.credentials.walletId; + var btcWalletId = btcWallet.credentials.walletId; $state.go('onboarding.collectEmail', { - walletId: walletId + bchWalletId: bchWalletId, + btcWalletId: btcWalletId }); - - /* - $state.go('onboarding.backupRequest', { - walletId: walletId - }); - */ }); }, 300); }; diff --git a/src/js/routes.js b/src/js/routes.js index a899d5904..4c2e5266c 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -774,7 +774,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('onboarding.collectEmail', { - url: '/collectEmail/:walletId', + url: '/collectEmail/:bchWalletId/:btcWalletId', views: { 'onboarding': { templateUrl: 'views/onboarding/collectEmail.html', @@ -783,7 +783,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('onboarding.backupRequest', { - url: '/backupRequest/:walletId', + url: '/backupRequest/:bchWalletId/:btcWalletId', views: { 'onboarding': { templateUrl: 'views/onboarding/backupRequest.html', @@ -792,7 +792,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('onboarding.backupWarning', { - url: '/backupWarning/:from/:walletId', + url: '/backupWarning/:from/:walletId/:bchWalletId/:btcWalletId', views: { 'onboarding': { templateUrl: 'views/backupWarning.html', @@ -801,7 +801,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('onboarding.backup', { - url: '/backup/:walletId', + url: '/backup/:walletId/:bchWalletId/:btcWalletId', views: { 'onboarding': { templateUrl: 'views/backup.html', @@ -810,7 +810,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) .state('onboarding.disclaimer', { - url: '/disclaimer/:walletId/:backedUp/:resume', + url: '/disclaimer/:bchWalletId/:btcWalletId/:backedUp/:resume', views: { 'onboarding': { templateUrl: 'views/onboarding/disclaimer.html', diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 01f7b0c57..381009df7 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -427,12 +427,6 @@ angular.module('copayApp.services') }, function(err, secret) { if (err) return bwcError.cb(err, gettextCatalog.getString('Error creating wallet'), cb); - if (opts.btcOpts) { - opts.btcOpts.singleAddress = opts.singleAddress; - opts.btcOpts.mnemonic = walletClient.credentials.mnemonic; - root.createWallet(opts.btcOpts, null); - } - return cb(null, walletClient, secret); }); }); @@ -489,7 +483,6 @@ angular.module('copayApp.services') return root.wallet[walletId]; }; - root.deleteWalletClient = function(client, cb) { var walletId = client.credentials.walletId; @@ -728,12 +721,12 @@ angular.module('copayApp.services') root.createDefaultWallet = function(cb) { var defaults = configService.getDefaults(); - var opts = {}; - opts.m = 1; - opts.n = 1; - opts.networkName = 'livenet'; - opts.coin = 'bch'; - opts.bwsurl = defaults.bwscash.url; + var bchOpts = {}; + bchOpts.m = 1; + bchOpts.n = 1; + bchOpts.networkName = 'livenet'; + bchOpts.coin = 'bch'; + bchOpts.bwsurl = defaults.bwscash.url; var btcOpts = {}; btcOpts.m = 1; @@ -741,9 +734,15 @@ angular.module('copayApp.services') btcOpts.networkName = 'livenet'; btcOpts.coin = 'btc'; btcOpts.bwsurl = defaults.bws.url; - opts.btcOpts = btcOpts; - root.createWallet(opts, cb); + root.createWallet(bchOpts, function(bchErr, bchWalletClient) { + if (bchErr) return cb(bchErr); + btcOpts.mnemonic = bchWalletClient.credentials.mnemonic; + root.createWallet(btcOpts, function(btcErr, btcWalletClient) { + if (btcErr) return cb(btcErr); + return cb(null, [bchWalletClient, btcWalletClient]); + }); + }); }; root.setDisclaimerAccepted = function(cb) {