remove history cache from export

This commit is contained in:
Gabriel Bazán 2016-06-17 11:46:40 -03:00 committed by Gustavo Maximiliano Cortez
commit b433120121
No known key found for this signature in database
GPG key ID: 15EDAD8D9F2EB1AF
4 changed files with 11 additions and 52 deletions

View file

@ -39,10 +39,6 @@
<h4></h4> <h4></h4>
<ion-toggle ng-model="metaDataEnabled" toggle-class="toggle-balanced" class="r0">
<span class="toggle-label" translate>Include address book and history cache</span>
</ion-toggle>
<ion-toggle ng-model="noSignEnabled" toggle-class="toggle-balanced" class="r0"> <ion-toggle ng-model="noSignEnabled" toggle-class="toggle-balanced" class="r0">
<span class="toggle-label" translate>Do not include private key</span> <span class="toggle-label" translate>Do not include private key</span>
</ion-toggle> </ion-toggle>

View file

@ -1,10 +1,12 @@
'use strict'; 'use strict';
angular.module('copayApp.controllers').controller('exportController', angular.module('copayApp.controllers').controller('exportController',
function($rootScope, $scope, $timeout, $log, backupService, fingerprintService, configService, storageService, profileService, platformInfo, notification, go, gettext, gettextCatalog) { function($scope, $timeout, $log, backupService, fingerprintService, configService, storageService, profileService, platformInfo, notification, go, gettext, gettextCatalog) {
var isWP = platformInfo.isWP; var isWP = platformInfo.isWP;
var isAndroid = platformInfo.isAndroid; var isAndroid = platformInfo.isAndroid;
var isCordova = platformInfo.isCordova;
$scope.error = null;
$scope.success = null;
var fc = profileService.focusedClient; var fc = profileService.focusedClient;
$scope.isEncrypted = fc.isPrivKeyEncrypted(); $scope.isEncrypted = fc.isPrivKeyEncrypted();
$scope.touchidSuccess = null; $scope.touchidSuccess = null;
@ -32,14 +34,13 @@ angular.module('copayApp.controllers').controller('exportController',
}; };
$scope.downloadWalletBackup = function() { $scope.downloadWalletBackup = function() {
$scope.getMetaData($scope.metaDataEnabled, function(err, txsFromLocal, localAddressBook) { $scope.getAddressbook(function(err, localAddressBook) {
if (err) { if (err) {
$scope.error = true; $scope.error = true;
return; return;
} }
var opts = { var opts = {
noSign: $scope.noSignEnabled, noSign: $scope.noSignEnabled,
historyCache: txsFromLocal,
addressBook: localAddressBook addressBook: localAddressBook
}; };
@ -48,43 +49,12 @@ angular.module('copayApp.controllers').controller('exportController',
$scope.error = true; $scope.error = true;
return; return;
} }
$rootScope.$emit('Local/BackupDone');
notification.success(gettext('Success'), gettext('Encrypted export file saved')); notification.success(gettext('Success'), gettext('Encrypted export file saved'));
go.walletHome(); go.walletHome();
}); });
}); });
}; };
$scope.getMetaData = function(metaData, cb) {
if (metaData == false) return cb();
$scope.getHistoryCache(function(err, txsFromLocal) {
if (err) return cb(err);
$scope.getAddressbook(function(err, localAddressBook) {
if (err) return cb(err);
return cb(null, txsFromLocal, localAddressBook)
});
});
};
$scope.getHistoryCache = function(cb) {
storageService.getTxHistory(fc.credentials.walletId, function(err, txs) {
if (err) return cb(err);
var localTxs = [];
try {
localTxs = JSON.parse(txs);
} catch (ex) {
$log.warn(ex);
}
if (!localTxs[0]) return cb(null, null);
return cb(null, localTxs);
});
};
$scope.getAddressbook = function(cb) { $scope.getAddressbook = function(cb) {
storageService.getAddressbook(fc.credentials.network, function(err, addressBook) { storageService.getAddressbook(fc.credentials.network, function(err, addressBook) {
if (err) return cb(err); if (err) return cb(err);
@ -101,14 +71,13 @@ angular.module('copayApp.controllers').controller('exportController',
}; };
$scope.getBackup = function(cb) { $scope.getBackup = function(cb) {
$scope.getMetaData($scope.metaDataEnabled, function(err, txsFromLocal, localAddressBook) { $scope.getAddressbook(function(err, localAddressBook) {
if (err) { if (err) {
$scope.error = true; $scope.error = true;
return cb(null); return cb(null);
} }
var opts = { var opts = {
noSign: $scope.noSignEnabled, noSign: $scope.noSignEnabled,
historyCache: txsFromLocal,
addressBook: localAddressBook addressBook: localAddressBook
}; };
@ -117,7 +86,6 @@ angular.module('copayApp.controllers').controller('exportController',
$scope.error = true; $scope.error = true;
} else { } else {
$scope.error = false; $scope.error = false;
$rootScope.$emit('Local/BackupDone');
} }
return cb(ew); return cb(ew);
}); });

View file

@ -40,7 +40,7 @@ angular.module('copayApp.services')
var a = angular.element('<a></a>'); var a = angular.element('<a></a>');
var blob = new NewBlob(ew, 'text/plain;charset=utf-8'); var blob = new NewBlob(ew, 'text/plain;charset=utf-8');
a.attr('href',window.URL.createObjectURL(blob)); a.attr('href', window.URL.createObjectURL(blob));
a.attr('download', filename); a.attr('download', filename);
a[0].click(); a[0].click();
return cb(); return cb();
@ -49,7 +49,6 @@ angular.module('copayApp.services')
root.addMetadata = function(b, opts) { root.addMetadata = function(b, opts) {
b = JSON.parse(b); b = JSON.parse(b);
if (opts.historyCache) b.historyCache = opts.historyCache;
if (opts.addressBook) b.addressBook = opts.addressBook; if (opts.addressBook) b.addressBook = opts.addressBook;
return JSON.stringify(b); return JSON.stringify(b);
} }
@ -62,7 +61,7 @@ angular.module('copayApp.services')
try { try {
opts = opts || {}; opts = opts || {};
var b = fc.export(opts); var b = fc.export(opts);
if (opts.historyCache || opts.addressBook) b = root.addMetadata(b, opts); if (opts.addressBook) b = root.addMetadata(b, opts);
var e = sjcl.encrypt(password, b, { var e = sjcl.encrypt(password, b, {
iter: 10000 iter: 10000

View file

@ -464,7 +464,7 @@ angular.module('copayApp.services')
}); });
}; };
root.setMetaData = function(walletClient, addressBook, historyCache, cb) { root.setMetaData = function(walletClient, addressBook, cb) {
storageService.getAddressbook(walletClient.credentials.network, function(err, localAddressBook) { storageService.getAddressbook(walletClient.credentials.network, function(err, localAddressBook) {
var localAddressBook1 = {}; var localAddressBook1 = {};
try { try {
@ -475,10 +475,7 @@ angular.module('copayApp.services')
var mergeAddressBook = lodash.merge(addressBook, localAddressBook1); var mergeAddressBook = lodash.merge(addressBook, localAddressBook1);
storageService.setAddressbook(walletClient.credentials.network, JSON.stringify(addressBook), function(err) { storageService.setAddressbook(walletClient.credentials.network, JSON.stringify(addressBook), function(err) {
if (err) return cb(err); if (err) return cb(err);
storageService.setTxHistory(JSON.stringify(historyCache), walletClient.credentials.walletId, function(err) { return cb(null);
if (err) return cb(err);
return cb(null);
});
}); });
}); });
} }
@ -563,13 +560,12 @@ angular.module('copayApp.services')
str = JSON.parse(str); str = JSON.parse(str);
var addressBook = str.addressBook || {}; var addressBook = str.addressBook || {};
var historyCache = str.historyCache ||  [];
root.addAndBindWalletClient(walletClient, { root.addAndBindWalletClient(walletClient, {
bwsurl: opts.bwsurl bwsurl: opts.bwsurl
}, function(err, walletId) { }, function(err, walletId) {
if (err) return cb(err); if (err) return cb(err);
root.setMetaData(walletClient, addressBook, historyCache, function(error) { root.setMetaData(walletClient, addressBook, function(error) {
if (error) $log.warn(error); if (error) $log.warn(error);
return cb(err, walletId); return cb(err, walletId);
}); });