both bch and btc wallets now backed up on first use
This commit is contained in:
parent
a2e7b80594
commit
9759e25a75
8 changed files with 87 additions and 49 deletions
|
|
@ -2,7 +2,13 @@
|
||||||
|
|
||||||
angular.module('copayApp.controllers').controller('backupController',
|
angular.module('copayApp.controllers').controller('backupController',
|
||||||
function($scope, $timeout, $log, $state, $stateParams, $ionicHistory, lodash, profileService, bwcService, walletService, ongoingProcess, popupService, gettextCatalog, $ionicModal, firebaseEventsService) {
|
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.viewTitle = $scope.wallet.name || $scope.wallet.credentials.walletName;
|
||||||
$scope.n = $scope.wallet.n;
|
$scope.n = $scope.wallet.n;
|
||||||
var keys;
|
var keys;
|
||||||
|
|
@ -92,7 +98,8 @@ angular.module('copayApp.controllers').controller('backupController',
|
||||||
$ionicHistory.removeBackView();
|
$ionicHistory.removeBackView();
|
||||||
$state.go('tabs.home');
|
$state.go('tabs.home');
|
||||||
} else $state.go('onboarding.disclaimer', {
|
} else $state.go('onboarding.disclaimer', {
|
||||||
walletId: $stateParams.walletId,
|
bchWalletId: $stateParams.bchWalletId,
|
||||||
|
btcWalletId: $stateParams.btcWalletId,
|
||||||
backedUp: true
|
backedUp: true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -138,6 +145,9 @@ angular.module('copayApp.controllers').controller('backupController',
|
||||||
}
|
}
|
||||||
|
|
||||||
profileService.setBackupFlag($scope.wallet.credentials.walletId);
|
profileService.setBackupFlag($scope.wallet.credentials.walletId);
|
||||||
|
if ($scope.btcWallet) {
|
||||||
|
profileService.setBackupFlag($scope.btcWallet.credentials.walletId);
|
||||||
|
}
|
||||||
return cb();
|
return cb();
|
||||||
}, 1);
|
}, 1);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
angular.module('copayApp.controllers').controller('backupRequestController', function($scope, $state, $stateParams, $ionicConfig, popupService, gettextCatalog) {
|
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() {
|
$scope.$on("$ionicView.enter", function() {
|
||||||
$ionicConfig.views.swipeBackEnabled(false);
|
$ionicConfig.views.swipeBackEnabled(false);
|
||||||
|
|
@ -27,7 +28,8 @@ angular.module('copayApp.controllers').controller('backupRequestController', fun
|
||||||
popupService.showConfirm(title, message, okText, cancelText, function(val) {
|
popupService.showConfirm(title, message, okText, cancelText, function(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
$state.go('onboarding.disclaimer', {
|
$state.go('onboarding.disclaimer', {
|
||||||
walletId: $scope.walletId,
|
bchWalletId: $scope.bchWalletId,
|
||||||
|
btcWalletId: $scope.btcWalletId,
|
||||||
backedUp: false
|
backedUp: false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,15 @@
|
||||||
|
|
||||||
angular.module('copayApp.controllers').controller('backupWarningController', function($scope, $state, $timeout, $stateParams, $ionicModal) {
|
angular.module('copayApp.controllers').controller('backupWarningController', function($scope, $state, $timeout, $stateParams, $ionicModal) {
|
||||||
|
|
||||||
$scope.walletId = $stateParams.walletId;
|
if ($stateParams.from == 'onboarding') {
|
||||||
$scope.fromState = $stateParams.from == 'onboarding' ? $stateParams.from + '.backupRequest' : $stateParams.from;
|
$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.toState = $stateParams.from + '.backup';
|
||||||
|
|
||||||
$scope.openPopup = function() {
|
$scope.openPopup = function() {
|
||||||
|
|
@ -19,17 +26,30 @@ angular.module('copayApp.controllers').controller('backupWarningController', fun
|
||||||
$scope.close = function() {
|
$scope.close = function() {
|
||||||
$scope.warningModal.remove();
|
$scope.warningModal.remove();
|
||||||
$timeout(function() {
|
$timeout(function() {
|
||||||
$state.go($scope.toState, {
|
if ($stateParams.from == 'onboarding') {
|
||||||
walletId: $scope.walletId
|
$state.go($scope.toState, {
|
||||||
});
|
bchWalletId: $scope.bchWalletId,
|
||||||
|
btcWalletId: $scope.btcWalletId
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$state.go($scope.toState, {
|
||||||
|
walletId: $scope.walletId
|
||||||
|
});
|
||||||
|
}
|
||||||
}, 200);
|
}, 200);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.goBack = function() {
|
$scope.goBack = function() {
|
||||||
$state.go($scope.fromState, {
|
if ($stateParams.from == 'onboarding') {
|
||||||
walletId: $scope.walletId
|
$state.go($scope.toState, {
|
||||||
});
|
bchWalletId: $scope.bchWalletId,
|
||||||
|
btcWalletId: $scope.btcWalletId
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$state.go($scope.fromState, {
|
||||||
|
walletId: $scope.walletId
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,11 @@
|
||||||
|
|
||||||
angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $log, $timeout, $http, $httpParamSerializer, $ionicConfig, profileService, configService, walletService, appConfigService, emailService) {
|
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 = {};
|
$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/
|
// 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";
|
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) {
|
$scope.$on("$ionicView.beforeEnter", function(event, data) {
|
||||||
walletId = data.stateParams.walletId;
|
bchWalletId = data.stateParams.bchWalletId;
|
||||||
wallet = profileService.getWallet(walletId);
|
btcWalletId = data.stateParams.btcWalletId;
|
||||||
|
|
||||||
|
bchWallet = profileService.getWallet(bchWalletId);
|
||||||
|
btcWallet = profileService.getWallet(btcWalletId);
|
||||||
$scope.data.accept = true;
|
$scope.data.accept = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -56,7 +63,7 @@ angular.module('copayApp.controllers').controller('collectEmailController', func
|
||||||
enabled: enabled,
|
enabled: enabled,
|
||||||
email: enabled ? $scope.data.email : null
|
email: enabled ? $scope.data.email : null
|
||||||
});
|
});
|
||||||
|
|
||||||
if ($scope.data.accept) collectEmail();
|
if ($scope.data.accept) collectEmail();
|
||||||
|
|
||||||
$timeout(function() {
|
$timeout(function() {
|
||||||
|
|
@ -67,7 +74,8 @@ angular.module('copayApp.controllers').controller('collectEmailController', func
|
||||||
|
|
||||||
$scope.goNextView = function() {
|
$scope.goNextView = function() {
|
||||||
$state.go('onboarding.backupRequest', {
|
$state.go('onboarding.backupRequest', {
|
||||||
walletId: walletId
|
bchWalletId: bchWalletId,
|
||||||
|
btcWalletId: btcWalletId
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,8 @@ angular.module('copayApp.controllers').controller('disclaimerController', functi
|
||||||
|
|
||||||
$scope.goBack = function() {
|
$scope.goBack = function() {
|
||||||
$state.go('onboarding.backupRequest', {
|
$state.go('onboarding.backupRequest', {
|
||||||
walletId: $stateParams.walletId
|
bchWalletId: $stateParams.bchWalletId,
|
||||||
|
btcWalletId: $stateParams.btcWalletId
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ angular.module('copayApp.controllers').controller('tourController',
|
||||||
$scope.createDefaultWallet = function() {
|
$scope.createDefaultWallet = function() {
|
||||||
ongoingProcess.set('creatingWallet', true);
|
ongoingProcess.set('creatingWallet', true);
|
||||||
$timeout(function() {
|
$timeout(function() {
|
||||||
profileService.createDefaultWallet(function(err, walletClient) {
|
profileService.createDefaultWallet(function(err, walletClients) {
|
||||||
if (err) {
|
if (err) {
|
||||||
$log.warn(err);
|
$log.warn(err);
|
||||||
|
|
||||||
|
|
@ -60,18 +60,16 @@ angular.module('copayApp.controllers').controller('tourController',
|
||||||
}, 2000);
|
}, 2000);
|
||||||
};
|
};
|
||||||
ongoingProcess.set('creatingWallet', false);
|
ongoingProcess.set('creatingWallet', false);
|
||||||
var wallet = walletClient;
|
var bchWallet = walletClients[0];
|
||||||
var walletId = wallet.credentials.walletId;
|
var btcWallet = walletClients[1];
|
||||||
|
|
||||||
|
var bchWalletId = bchWallet.credentials.walletId;
|
||||||
|
var btcWalletId = btcWallet.credentials.walletId;
|
||||||
|
|
||||||
$state.go('onboarding.collectEmail', {
|
$state.go('onboarding.collectEmail', {
|
||||||
walletId: walletId
|
bchWalletId: bchWalletId,
|
||||||
|
btcWalletId: btcWalletId
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
|
||||||
$state.go('onboarding.backupRequest', {
|
|
||||||
walletId: walletId
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
});
|
});
|
||||||
}, 300);
|
}, 300);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -774,7 +774,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.state('onboarding.collectEmail', {
|
.state('onboarding.collectEmail', {
|
||||||
url: '/collectEmail/:walletId',
|
url: '/collectEmail/:bchWalletId/:btcWalletId',
|
||||||
views: {
|
views: {
|
||||||
'onboarding': {
|
'onboarding': {
|
||||||
templateUrl: 'views/onboarding/collectEmail.html',
|
templateUrl: 'views/onboarding/collectEmail.html',
|
||||||
|
|
@ -783,7 +783,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.state('onboarding.backupRequest', {
|
.state('onboarding.backupRequest', {
|
||||||
url: '/backupRequest/:walletId',
|
url: '/backupRequest/:bchWalletId/:btcWalletId',
|
||||||
views: {
|
views: {
|
||||||
'onboarding': {
|
'onboarding': {
|
||||||
templateUrl: 'views/onboarding/backupRequest.html',
|
templateUrl: 'views/onboarding/backupRequest.html',
|
||||||
|
|
@ -792,7 +792,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.state('onboarding.backupWarning', {
|
.state('onboarding.backupWarning', {
|
||||||
url: '/backupWarning/:from/:walletId',
|
url: '/backupWarning/:from/:walletId/:bchWalletId/:btcWalletId',
|
||||||
views: {
|
views: {
|
||||||
'onboarding': {
|
'onboarding': {
|
||||||
templateUrl: 'views/backupWarning.html',
|
templateUrl: 'views/backupWarning.html',
|
||||||
|
|
@ -801,7 +801,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.state('onboarding.backup', {
|
.state('onboarding.backup', {
|
||||||
url: '/backup/:walletId',
|
url: '/backup/:walletId/:bchWalletId/:btcWalletId',
|
||||||
views: {
|
views: {
|
||||||
'onboarding': {
|
'onboarding': {
|
||||||
templateUrl: 'views/backup.html',
|
templateUrl: 'views/backup.html',
|
||||||
|
|
@ -810,7 +810,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.state('onboarding.disclaimer', {
|
.state('onboarding.disclaimer', {
|
||||||
url: '/disclaimer/:walletId/:backedUp/:resume',
|
url: '/disclaimer/:bchWalletId/:btcWalletId/:backedUp/:resume',
|
||||||
views: {
|
views: {
|
||||||
'onboarding': {
|
'onboarding': {
|
||||||
templateUrl: 'views/onboarding/disclaimer.html',
|
templateUrl: 'views/onboarding/disclaimer.html',
|
||||||
|
|
|
||||||
|
|
@ -427,12 +427,6 @@ angular.module('copayApp.services')
|
||||||
}, function(err, secret) {
|
}, function(err, secret) {
|
||||||
if (err) return bwcError.cb(err, gettextCatalog.getString('Error creating wallet'), cb);
|
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);
|
return cb(null, walletClient, secret);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -489,7 +483,6 @@ angular.module('copayApp.services')
|
||||||
return root.wallet[walletId];
|
return root.wallet[walletId];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
root.deleteWalletClient = function(client, cb) {
|
root.deleteWalletClient = function(client, cb) {
|
||||||
var walletId = client.credentials.walletId;
|
var walletId = client.credentials.walletId;
|
||||||
|
|
||||||
|
|
@ -728,12 +721,12 @@ angular.module('copayApp.services')
|
||||||
root.createDefaultWallet = function(cb) {
|
root.createDefaultWallet = function(cb) {
|
||||||
var defaults = configService.getDefaults();
|
var defaults = configService.getDefaults();
|
||||||
|
|
||||||
var opts = {};
|
var bchOpts = {};
|
||||||
opts.m = 1;
|
bchOpts.m = 1;
|
||||||
opts.n = 1;
|
bchOpts.n = 1;
|
||||||
opts.networkName = 'livenet';
|
bchOpts.networkName = 'livenet';
|
||||||
opts.coin = 'bch';
|
bchOpts.coin = 'bch';
|
||||||
opts.bwsurl = defaults.bwscash.url;
|
bchOpts.bwsurl = defaults.bwscash.url;
|
||||||
|
|
||||||
var btcOpts = {};
|
var btcOpts = {};
|
||||||
btcOpts.m = 1;
|
btcOpts.m = 1;
|
||||||
|
|
@ -741,9 +734,15 @@ angular.module('copayApp.services')
|
||||||
btcOpts.networkName = 'livenet';
|
btcOpts.networkName = 'livenet';
|
||||||
btcOpts.coin = 'btc';
|
btcOpts.coin = 'btc';
|
||||||
btcOpts.bwsurl = defaults.bws.url;
|
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) {
|
root.setDisclaimerAccepted = function(cb) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue