complete decrypt pk process

This commit is contained in:
Javier 2016-10-13 10:16:10 -03:00
parent 18a2577523
commit 1c40185b05
3 changed files with 43 additions and 32 deletions

View File

@ -24,7 +24,7 @@
"angular-mocks": "1.4.10", "angular-mocks": "1.4.10",
"bezier-easing": "^2.0.3", "bezier-easing": "^2.0.3",
"bhttp": "^1.2.1", "bhttp": "^1.2.1",
"bitcore-wallet-client": "4.3.2", "bitcore-wallet-client": "4.3.1",
"bower": "^1.7.9", "bower": "^1.7.9",
"chai": "^3.5.0", "chai": "^3.5.0",
"cordova-android": "5.1.1", "cordova-android": "5.1.1",

View File

@ -16,22 +16,14 @@ angular.module('copayApp.controllers').controller('exportController',
}; };
function prepareWallet(cb) { function prepareWallet(cb) {
if ($scope.password) return cb($scope.password); if ($scope.password) return cb(null, $scope.password);
walletService.prepare(wallet, function(err, password) { walletService.prepare(wallet, function(err, password) {
if (err) { if (err) return cb(err);
popupService.showAlert(gettextCatalog.getString('Error'), err);
return cb();
}
$scope.password = password; $scope.password = password;
walletService.getEncodedWalletInfo(wallet, $scope.password, function(err, code) { walletService.getEncodedWalletInfo(wallet, $scope.password, function(err, code) {
if (err) { if (err) return cb(err);
popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Could not decrypt private key'));
return cb(password);
}
$scope.file.value = false;
if (!code) if (!code)
$scope.formData.supported = false; $scope.formData.supported = false;
@ -40,10 +32,7 @@ angular.module('copayApp.controllers').controller('exportController',
$scope.formData.exportWalletInfo = code; $scope.formData.exportWalletInfo = code;
} }
$timeout(function() { return cb(null, password);
$scope.$apply();
});
return cb(password);
}); });
}); });
}; };
@ -57,9 +46,19 @@ angular.module('copayApp.controllers').controller('exportController',
return; return;
} }
prepareWallet(function(password) { prepareWallet(function(err, password) {
if (err) {
popupService.showAlert(gettextCatalog.getString('Error'), err);
return;
}
if (!password) return; if (!password) return;
$scope.file.value = false;
$scope.password = password; $scope.password = password;
$timeout(function() {
$scope.$apply();
});
}); });
}; };
@ -72,7 +71,6 @@ angular.module('copayApp.controllers').controller('exportController',
$scope.showAdvanced = false; $scope.showAdvanced = false;
$scope.wallet = wallet; $scope.wallet = wallet;
$scope.canSign = wallet.canSign(); $scope.canSign = wallet.canSign();
}; };
/* /*
@ -98,7 +96,11 @@ angular.module('copayApp.controllers').controller('exportController',
}; };
$scope.downloadWalletBackup = function() { $scope.downloadWalletBackup = function() {
prepareWallet(function(password) { prepareWallet(function(err, password) {
if (err) {
popupService.showAlert(gettextCatalog.getString('Error'), err);
return;
}
if (!password) return; if (!password) return;
$scope.getAddressbook(function(err, localAddressBook) { $scope.getAddressbook(function(err, localAddressBook) {
@ -140,21 +142,30 @@ angular.module('copayApp.controllers').controller('exportController',
}; };
$scope.getBackup = function(cb) { $scope.getBackup = function(cb) {
$scope.getAddressbook(function(err, localAddressBook) { prepareWallet(function(err, password) {
if (err) { if (err) {
popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Failed to export')); popupService.showAlert(gettextCatalog.getString('Error'), err);
return cb(null); return;
} }
var opts = { if (!password) return;
noSign: $scope.formData.noSignEnabled,
addressBook: localAddressBook
};
var ew = backupService.walletExport($scope.formData.password, opts); $scope.getAddressbook(function(err, localAddressBook) {
if (!ew) { if (err) {
popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Failed to export')); popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Failed to export'));
} return cb(null);
return cb(ew); }
var opts = {
noSign: $scope.formData.noSignEnabled,
addressBook: localAddressBook,
password: password
};
var ew = backupService.walletExport($scope.formData.password, opts);
if (!ew) {
popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Failed to export'));
}
return cb(ew);
});
}); });
}; };

View File

@ -1000,7 +1000,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
// not supported yet // not supported yet
if (wallet.credentials.derivationStrategy != 'BIP44' || !wallet.canSign()) if (wallet.credentials.derivationStrategy != 'BIP44' || !wallet.canSign())
return null; return cb(gettextCatalog.getString('Exporting via QR not supported for this wallet'));
var keys = root.getKeysWithPassword(wallet, password); var keys = root.getKeysWithPassword(wallet, password);