Merge pull request #4370 from JDonadio/ref/root-go

Replace $root.go - Use scope on preferences
This commit is contained in:
Javier Donadío 2016-06-14 17:01:08 -03:00 committed by GitHub
commit bcd3833445
35 changed files with 346 additions and 396 deletions

View file

@ -1,12 +1,11 @@
'use strict';
angular.module('copayApp.controllers').controller('backupController',
function($rootScope, $scope, $timeout, $log, lodash, profileService, gettext, bwcService, bwsError, walletService, ongoingProcess) {
function($rootScope, $scope, $timeout, $log, go, lodash, profileService, gettext, bwcService, bwsError, walletService, ongoingProcess) {
var self = this;
var fc = profileService.focusedClient;
self.customWords = [];
self.walletName = fc.credentials.walletName;
$scope.customWords = [];
$scope.walletName = fc.credentials.walletName;
var handleEncryptedWallet = function(client, cb) {
if (!walletService.isEncrypted(client)) return cb();
@ -17,24 +16,22 @@ angular.module('copayApp.controllers').controller('backupController',
};
if (fc.isPrivKeyEncrypted() && !isDeletedSeed()) {
self.credentialsEncrypted = true;
$scope.credentialsEncrypted = true;
passwordRequest();
} else {
if (!isDeletedSeed())
initWords();
}
init();
function init() {
$scope.init = function() {
$scope.passphrase = '';
self.shuffledMnemonicWords = shuffledWords(self.mnemonicWords);
self.customWords = [];
self.step = 1;
self.deleted = isDeletedSeed();
self.credentialsEncrypted = false;
self.selectComplete = false;
self.backupError = false;
$scope.shuffledMnemonicWords = shuffledWords($scope.mnemonicWords);
$scope.customWords = [];
$scope.step = 1;
$scope.deleted = isDeletedSeed();
$scope.credentialsEncrypted = false;
$scope.selectComplete = false;
$scope.backupError = false;
};
function isDeletedSeed() {
@ -43,16 +40,23 @@ angular.module('copayApp.controllers').controller('backupController',
return false;
};
self.goToStep = function(n) {
$scope.backTo = function(state) {
if (state == 'walletHome')
go.walletHome();
else
go.preferences();
};
$scope.goToStep = function(n) {
if (n == 1)
init();
$scope.init();
if (n == 2)
self.step = 2;
$scope.step = 2;
if (n == 3) {
if (!self.mnemonicHasPassphrase)
if (!$scope.mnemonicHasPassphrase)
finalStep();
else
self.step = 3;
$scope.step = 3;
}
if (n == 4)
finalStep();
@ -65,7 +69,7 @@ angular.module('copayApp.controllers').controller('backupController',
backupError(err);
}
$timeout(function() {
self.step = 4;
$scope.step = 4;
return;
}, 1);
});
@ -74,12 +78,12 @@ angular.module('copayApp.controllers').controller('backupController',
function initWords() {
var words = fc.getMnemonic();
self.xPrivKey = fc.credentials.xPrivKey;
$scope.xPrivKey = fc.credentials.xPrivKey;
walletService.lock(fc);
self.mnemonicWords = words.split(/[\u3000\s]+/);
self.shuffledMnemonicWords = shuffledWords(self.mnemonicWords);
self.mnemonicHasPassphrase = fc.mnemonicHasPassphrase();
self.useIdeograms = words.indexOf("\u3000") >= 0;
$scope.mnemonicWords = words.split(/[\u3000\s]+/);
$scope.shuffledMnemonicWords = shuffledWords($scope.mnemonicWords);
$scope.mnemonicHasPassphrase = fc.mnemonicHasPassphrase();
$scope.useIdeograms = words.indexOf("\u3000") >= 0;
};
function shuffledWords(words) {
@ -93,10 +97,10 @@ angular.module('copayApp.controllers').controller('backupController',
});
};
self.toggle = function() {
self.error = "";
$scope.toggle = function() {
$scope.error = "";
if (self.credentialsEncrypted)
if ($scope.credentialsEncrypted)
passwordRequest();
$timeout(function() {
@ -116,12 +120,12 @@ angular.module('copayApp.controllers').controller('backupController',
handleEncryptedWallet(fc, function(err) {
if (err) {
self.error = bwsError.msg(err, gettext('Could not decrypt'));
$log.warn('Error decrypting credentials:', self.error); //TODO
$scope.error = bwsError.msg(err, gettext('Could not decrypt'));
$log.warn('Error decrypting credentials:', $scope.error); //TODO
return;
}
self.credentialsEncrypted = false;
$scope.credentialsEncrypted = false;
initWords();
$timeout(function() {
@ -137,37 +141,38 @@ angular.module('copayApp.controllers').controller('backupController',
word: item.word,
prevIndex: index
};
self.customWords.push(newWord);
self.shuffledMnemonicWords[index].selected = true;
self.shouldContinue();
$scope.customWords.push(newWord);
$scope.shuffledMnemonicWords[index].selected = true;
$scope.shouldContinue();
};
$scope.removeButton = function(index, item) {
self.customWords.splice(index, 1);
self.shuffledMnemonicWords[item.prevIndex].selected = false;
self.shouldContinue();
if ($scope.loading) return;
$scope.customWords.splice(index, 1);
$scope.shuffledMnemonicWords[item.prevIndex].selected = false;
$scope.shouldContinue();
};
self.shouldContinue = function() {
if (self.customWords.length == 12)
self.selectComplete = true;
$scope.shouldContinue = function() {
if ($scope.customWords.length == 12)
$scope.selectComplete = true;
else
self.selectComplete = false;
$scope.selectComplete = false;
};
function confirm(cb) {
self.backupError = false;
$scope.backupError = false;
var customWordList = lodash.pluck(self.customWords, 'word');
var customWordList = lodash.pluck($scope.customWords, 'word');
if (!lodash.isEqual(self.mnemonicWords, customWordList)) {
if (!lodash.isEqual($scope.mnemonicWords, customWordList)) {
return cb('Mnemonic string mismatch');
}
$timeout(function() {
if (self.mnemonicHasPassphrase) {
if ($scope.mnemonicHasPassphrase) {
var walletClient = bwcService.getClient();
var separator = self.useIdeograms ? '\u3000' : ' ';
var separator = $scope.useIdeograms ? '\u3000' : ' ';
var customSentence = customWordList.join(separator);
var passphrase = $scope.passphrase || '';
@ -181,7 +186,7 @@ angular.module('copayApp.controllers').controller('backupController',
return cb(err);
}
if (walletClient.credentials.xPrivKey != self.xPrivKey) {
if (walletClient.credentials.xPrivKey != $scope.xPrivKey) {
return cb('Private key mismatch');
}
}
@ -194,7 +199,7 @@ angular.module('copayApp.controllers').controller('backupController',
function backupError(err) {
ongoingProcess.set('validatingWords', false);
$log.debug('Failed to verify backup: ', err);
self.backupError = true;
$scope.backupError = true;
$timeout(function() {
$scope.$apply();

View file

@ -2,20 +2,19 @@
angular.module('copayApp.controllers').controller('exportController',
function($rootScope, $scope, $timeout, $log, backupService, storageService, profileService, platformInfo, notification, go, gettext, gettextCatalog) {
var self = this;
var isWP = platformInfo.isWP;
var isAndroid = platformInfo.isAndroid;
self.error = null;
self.success = null;
$scope.error = null;
$scope.success = null;
$scope.metaDataEnabled = true;
var fc = profileService.focusedClient;
self.isEncrypted = fc.isPrivKeyEncrypted();
$scope.isEncrypted = fc.isPrivKeyEncrypted();
self.downloadWalletBackup = function() {
self.getMetaData($scope.metaDataEnabled, function(err, txsFromLocal, localAddressBook) {
$scope.downloadWalletBackup = function() {
$scope.getMetaData($scope.metaDataEnabled, function(err, txsFromLocal, localAddressBook) {
if (err) {
self.error = true;
$scope.error = true;
return;
}
var opts = {
@ -24,9 +23,9 @@ angular.module('copayApp.controllers').controller('exportController',
addressBook: localAddressBook
};
backupService.walletDownload(self.password, opts, function(err) {
backupService.walletDownload($scope.password, opts, function(err) {
if (err) {
self.error = true;
$scope.error = true;
return;
}
$rootScope.$emit('Local/BackupDone');
@ -36,12 +35,12 @@ angular.module('copayApp.controllers').controller('exportController',
});
};
self.getMetaData = function(metaData, cb) {
$scope.getMetaData = function(metaData, cb) {
if (metaData == false) return cb();
self.getHistoryCache(function(err, txsFromLocal) {
$scope.getHistoryCache(function(err, txsFromLocal) {
if (err) return cb(err);
self.getAddressbook(function(err, localAddressBook) {
$scope.getAddressbook(function(err, localAddressBook) {
if (err) return cb(err);
return cb(null, txsFromLocal, localAddressBook)
@ -49,7 +48,7 @@ angular.module('copayApp.controllers').controller('exportController',
});
}
self.getHistoryCache = function(cb) {
$scope.getHistoryCache = function(cb) {
storageService.getTxHistory(fc.credentials.walletId, function(err, txs) {
if (err) return cb(err);
@ -66,7 +65,7 @@ angular.module('copayApp.controllers').controller('exportController',
});
}
self.getAddressbook = function(cb) {
$scope.getAddressbook = function(cb) {
storageService.getAddressbook(fc.credentials.network, function(err, addressBook) {
if (err) return cb(err);
@ -81,10 +80,10 @@ angular.module('copayApp.controllers').controller('exportController',
});
}
self.getBackup = function(cb) {
self.getMetaData($scope.metaDataEnabled, function(err, txsFromLocal, localAddressBook) {
$scope.getBackup = function(cb) {
$scope.getMetaData($scope.metaDataEnabled, function(err, txsFromLocal, localAddressBook) {
if (err) {
self.error = true;
$scope.error = true;
return cb(null);
}
var opts = {
@ -93,30 +92,29 @@ angular.module('copayApp.controllers').controller('exportController',
addressBook: localAddressBook
};
var ew = backupService.walletExport(self.password, opts);
var ew = backupService.walletExport($scope.password, opts);
if (!ew) {
self.error = true;
$scope.error = true;
} else {
self.error = false;
$scope.error = false;
$rootScope.$emit('Local/BackupDone');
}
return cb(ew);
});
}
self.viewWalletBackup = function() {
var self = this;
$scope.viewWalletBackup = function() {
$timeout(function() {
self.getBackup(function(backup) {
$scope.getBackup(function(backup) {
var ew = backup;
if (!ew) return;
self.backupWalletPlainText = ew;
$scope.backupWalletPlainText = ew;
});
}, 100);
};
self.copyWalletBackup = function() {
self.getBackup(function(backup) {
$scope.copyWalletBackup = function() {
$scope.getBackup(function(backup) {
var ew = backup;
if (!ew) return;
window.cordova.plugins.clipboard.copy(ew);
@ -124,14 +122,14 @@ angular.module('copayApp.controllers').controller('exportController',
});
};
self.sendWalletBackup = function() {
$scope.sendWalletBackup = function() {
var fc = profileService.focusedClient;
window.plugins.toast.showShortCenter(gettextCatalog.getString('Preparing backup...'));
var name = (fc.credentials.walletName || fc.credentials.walletId);
if (fc.alias) {
name = fc.alias + ' [' + name + ']';
}
self.getBackup(function(backup) {
$scope.getBackup(function(backup) {
var ew = backup;
if (!ew) return;

View file

@ -3,28 +3,27 @@
angular.module('copayApp.controllers').controller('preferencesController',
function($scope, $rootScope, $timeout, $log, configService, profileService, fingerprintService, walletService) {
var self = this;
var fc;
var config = configService.getSync();
var disableFocusListener = $rootScope.$on('Local/NewFocusedWalletReady', function() {
self.init();
$scope.init();
});
$scope.$on('$destroy', function() {
disableFocusListener();
});
this.init = function() {
$scope.init = function() {
fc = profileService.focusedClient;
if (fc) {
$scope.encryptEnabled = walletService.isEncrypted(fc);
this.externalSource = fc.getPrivKeyExternalSourceName() == 'ledger' ? "Ledger" : null;
$scope.externalSource = fc.getPrivKeyExternalSourceName() == 'ledger' ? "Ledger" : null;
// TODO externalAccount
//this.externalIndex = fc.getExternalIndex();
}
this.touchidAvailable = fingerprintService.isAvailable();
$scope.touchidAvailable = fingerprintService.isAvailable();
$scope.touchidEnabled = config.touchIdFor ? config.touchIdFor[fc.credentials.walletId] : null;
$scope.deleted = false;
@ -41,7 +40,6 @@ angular.module('copayApp.controllers').controller('preferencesController',
};
$scope.encryptChange = function() {
var self = this;
if (!fc) return;
var val = $scope.encryptEnabled;

View file

@ -1,6 +0,0 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesAdvancedController',
function($scope) {
});

View file

@ -2,20 +2,18 @@
angular.module('copayApp.controllers').controller('preferencesAliasController',
function($scope, $timeout, configService, profileService, go) {
var config = configService.getSync();
var fc = profileService.focusedClient;
var walletId = fc.credentials.walletId;
var config = configService.getSync();
config.aliasFor = config.aliasFor || {};
this.alias = config.aliasFor[walletId] || fc.credentials.walletName;
this.save = function() {
var self = this;
config.aliasFor = config.aliasFor || {};
$scope.alias = config.aliasFor[walletId] || fc.credentials.walletName;
$scope.save = function() {
var opts = {
aliasFor: {}
};
opts.aliasFor[walletId] = self.alias;
opts.aliasFor[walletId] = $scope.alias;
configService.set(opts, function(err) {
if (err) {
@ -23,10 +21,9 @@ angular.module('copayApp.controllers').controller('preferencesAliasController',
return;
}
$scope.$emit('Local/AliasUpdated');
$timeout(function(){
$timeout(function() {
go.path('preferences');
}, 50);
});
};
});

View file

@ -1,25 +1,25 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesBwsUrlController',
function($scope, $log, configService, go, applicationService, profileService, storageService) {
this.error = null;
this.success = null;
function($scope, $log, configService, applicationService, profileService, storageService) {
$scope.error = null;
$scope.success = null;
var fc = profileService.focusedClient;
var walletId = fc.credentials.walletId;
var defaults = configService.getDefaults();
var config = configService.getSync();
this.bwsurl = (config.bwsFor && config.bwsFor[walletId]) || defaults.bws.url;
$scope.bwsurl = (config.bwsFor && config.bwsFor[walletId]) || defaults.bws.url;
this.resetDefaultUrl = function() {
this.bwsurl = defaults.bws.url;
$scope.resetDefaultUrl = function() {
$scope.bwsurl = defaults.bws.url;
};
this.save = function() {
$scope.save = function() {
var bws;
switch (this.bwsurl) {
switch ($scope.bwsurl) {
case 'prod':
case 'production':
bws = 'https://bws.bitpay.com/bws/api'
@ -35,16 +35,16 @@ angular.module('copayApp.controllers').controller('preferencesBwsUrlController',
};
if (bws) {
$log.info('Using BWS URL Alias to ' + bws);
this.bwsurl = bws;
$scope.bwsurl = bws;
}
var opts = {
bwsFor: {}
};
opts.bwsFor[walletId] = this.bwsurl;
opts.bwsFor[walletId] = $scope.bwsurl;
configService.set(opts, function(err) {
if (err) console.log(err);
if (err) $log.debug(err);
storageService.setCleanAndScanAddresses(walletId, function() {
applicationService.restart();
});

View file

@ -3,8 +3,8 @@
angular.module('copayApp.controllers').controller('preferencesDeleteWalletController',
function($scope, $rootScope, $filter, $timeout, $modal, $log, $ionicModal, storageService, notification, profileService, platformInfo, go, gettext, gettextCatalog, applicationService, ongoingProcess) {
var isCordova = platformInfo.isCordova;
this.isCordova = isCordova;
this.error = null;
$scope.isCordova = isCordova;
$scope.error = null;
var delete_msg = gettextCatalog.getString('Are you sure you want to delete this wallet?');
var accept_msg = gettextCatalog.getString('Accept');
@ -20,8 +20,7 @@ angular.module('copayApp.controllers').controller('preferencesDeleteWalletContro
$scope.loading = false;
$ionicModal.fromTemplateUrl('views/modals/confirmation.html', {
scope: $scope,
animation: 'slide-in-up'
scope: $scope
}).then(function(modal) {
$scope.confirmationModal = modal;
$scope.confirmationModal.show();
@ -33,12 +32,11 @@ angular.module('copayApp.controllers').controller('preferencesDeleteWalletContro
var fc = profileService.focusedClient;
var name = fc.credentials.walletName;
var walletName = (fc.alias || '') + ' [' + name + ']';
var self = this;
profileService.deleteWalletClient(fc, function(err) {
ongoingProcess.set('deletingWallet', false);
if (err) {
self.error = err.message || err;
$scope.error = err.message || err;
} else {
notification.success(gettextCatalog.getString('Success'), gettextCatalog.getString('The wallet "{{walletName}}" was deleted', {
walletName: walletName
@ -48,7 +46,7 @@ angular.module('copayApp.controllers').controller('preferencesDeleteWalletContro
});
};
this.deleteWallet = function() {
$scope.deleteWallet = function() {
if (isCordova) {
navigator.notification.confirm(
delete_msg,

View file

@ -1,15 +1,14 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesDeleteWordsController', function(confirmDialog, lodash, notification, profileService, go, gettext) {
var self = this;
angular.module('copayApp.controllers').controller('preferencesDeleteWordsController', function($scope, confirmDialog, lodash, notification, profileService, go, gettext) {
var fc = profileService.focusedClient;
var msg = gettext('Are you sure you want to delete the recovery phrase?');
var successMsg = gettext('Recovery phrase deleted');
if (lodash.isEmpty(fc.credentials.mnemonic) && lodash.isEmpty(fc.credentials.mnemonicEncrypted))
self.deleted = true;
$scope.deleted = true;
self.delete = function() {
$scope.delete = function() {
confirmDialog.show(msg, function(ok) {
if (ok) {
fc.clearMnemonic();

View file

@ -1,21 +1,19 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesEmailController',
function($rootScope, go, profileService, gettext, $log, walletService) {
this.save = function(form) {
var self = this;
this.error = null;
angular.module('copayApp.controllers').controller('preferencesEmailController', function($rootScope, $scope, go, profileService, walletService) {
$scope.save = function(form) {
$scope.error = null;
$scope.saving = true;
var fc = profileService.focusedClient;
var email = $scope.email || '';
var fc = profileService.focusedClient;
var email = self.email || '';
walletService.updateRemotePreferences(fc, {
email: email,
}, function(err) {
if (!err)
$rootScope.$emit('Local/EmailUpdated', email);
go.path('preferences');
});
};
});
walletService.updateRemotePreferences(fc, {
email: email,
}, function(err) {
$scope.saving = false;
if (!err)
$rootScope.$emit('Local/EmailUpdated', email);
go.path('preferences');
});
};
});

View file

@ -4,17 +4,18 @@ angular.module('copayApp.controllers').controller('preferencesGlobalController',
function($scope, $rootScope, $log, configService, uxLanguage, platformInfo, pushNotificationsService, profileService, feeService) {
var isCordova = platformInfo.isCordova;
this.init = function() {
$scope.init = function() {
var config = configService.getSync();
this.unitName = config.wallet.settings.unitName;
this.currentLanguageName = uxLanguage.getCurrentLanguageName();
this.selectedAlternative = {
$scope.unitName = config.wallet.settings.unitName;
$scope.currentLanguageName = uxLanguage.getCurrentLanguageName();
$scope.selectedAlternative = {
name: config.wallet.settings.alternativeName,
isoCode: config.wallet.settings.alternativeIsoCode
};
this.feeOpts = feeService.feeOpts;
this.currentFeeLevel = feeService.getCurrentFeeLevel();
this.usePushNotifications = isCordova && !platformInfo.isWP;
$scope.feeOpts = feeService.feeOpts;
$scope.currentFeeLevel = feeService.getCurrentFeeLevel();
$scope.usePushNotifications = isCordova && !platformInfo.isWP;
$scope.PNEnabledByUser = true;
$scope.isIOSApp = platformInfo.isIOS && isCordova;
if ($scope.isIOSApp) {
@ -28,7 +29,7 @@ angular.module('copayApp.controllers').controller('preferencesGlobalController',
$scope.pushNotifications = config.pushNotifications.enabled;
};
this.openSettings = function() {
$scope.openSettings = function() {
cordova.plugins.diagnostic.switchToSettings(function() {
$log.debug('switched to settings');
}, function(err) {

View file

@ -4,26 +4,11 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
function($scope, $log, $timeout, storageService, go, profileService, lodash) {
var fc = profileService.focusedClient;
var c = fc.credentials;
this.csvReady = false;
$scope.csvReady = false;
$scope.csvHistory = function(cb) {
var allTxs = [];
this.csvHistory = function(cb) {
function formatDate(date) {
var dateObj = new Date(date);
if (!dateObj) {
$log.debug('Error formating a date');
return 'DateError'
}
if (!dateObj.toJSON()) {
return '';
}
return dateObj.toJSON();
}
var step = 6;
var unique = {};
function getHistory(cb) {
storageService.getTxHistory(c.walletId, function(err, txs) {
if (err) return cb(err);
@ -38,16 +23,7 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
allTxs.push(txsFromLocal);
return cb(null, lodash.flatten(allTxs));
});
}
var fc = profileService.focusedClient;
var c = fc.credentials;
if (!fc.isComplete())
return;
var self = this;
var allTxs = [];
};
$log.debug('Generating CSV from History');
getHistory(function(err, txs) {
@ -59,12 +35,12 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
$log.debug('Wallet Transaction History Length:', txs.length);
self.satToUnit = 1 / self.unitToSatoshi;
$scope.satToUnit = 1 / $scope.unitToSatoshi;
var data = txs;
var satToBtc = 1 / 100000000;
self.csvContent = [];
self.csvFilename = 'Copay-' + (self.alias || self.walletName) + '.csv';
self.csvHeader = ['Date', 'Destination', 'Description', 'Amount', 'Currency', 'Txid', 'Creator', 'Copayers', 'Comment'];
$scope.csvContent = [];
$scope.csvFilename = 'Copay-' + ($scope.alias || $scope.walletName) + '.csv';
$scope.csvHeader = ['Date', 'Destination', 'Description', 'Amount', 'Currency', 'Txid', 'Creator', 'Copayers', 'Comment'];
var _amount, _note, _copayers, _creator, _comment;
data.forEach(function(it, index) {
@ -89,7 +65,7 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
if (it.action == 'moved')
_note += ' Moved:' + (it.amount * satToBtc).toFixed(8)
self.csvContent.push({
$scope.csvContent.push({
'Date': formatDate(it.time * 1000),
'Destination': it.addressTo || '',
'Description': _note,
@ -103,7 +79,7 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
if (it.fees && (it.action == 'moved' || it.action == 'sent')) {
var _fee = (it.fees * satToBtc).toFixed(8)
self.csvContent.push({
$scope.csvContent.push({
'Date': formatDate(it.time * 1000),
'Destination': 'Bitcoin Network Fees',
'Description': '',
@ -116,16 +92,31 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
}
});
self.csvReady = true;
$scope.csvReady = true;
$timeout(function() {
$scope.$apply();
}, 100);
if (cb)
return cb();
return;
});
function formatDate(date) {
var dateObj = new Date(date);
if (!dateObj) {
$log.debug('Error formating a date');
return 'DateError'
}
if (!dateObj.toJSON()) {
return '';
}
return dateObj.toJSON();
};
};
this.clearTransactionHistory = function() {
$scope.clearTransactionHistory = function() {
storageService.removeTxHistory(c.walletId, function(err) {
if (err) {
$log.error(err);
@ -137,5 +128,5 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
go.walletHome();
}, 100);
});
}
};
});

View file

@ -6,7 +6,7 @@ angular.module('copayApp.controllers').controller('preferencesInformation',
var fc = profileService.focusedClient;
var c = fc.credentials;
this.init = function() {
$scope.init = function() {
var basePath = c.getBaseAddressDerivationPath();
$scope.walletName = c.walletName;
@ -43,11 +43,7 @@ angular.module('copayApp.controllers').controller('preferencesInformation',
});
};
this.sendAddrs = function() {
var self = this;
self.loading = true;
$scope.sendAddrs = function() {
function formatDate(ts) {
var dateObj = new Date(ts * 1000);
if (!dateObj) {
@ -64,7 +60,6 @@ angular.module('copayApp.controllers').controller('preferencesInformation',
fc.getMainAddresses({
doNotVerify: true
}, function(err, addrs) {
self.loading = false;
if (err) {
$log.warn(err);
return;