+
Next Address
- ...
- {{addr}}
+ ...
+ {{addr}}
diff --git a/src/js/controllers/backup.js b/src/js/controllers/backup.js
index 27ad27aba..c301a7344 100644
--- a/src/js/controllers/backup.js
+++ b/src/js/controllers/backup.js
@@ -136,11 +136,8 @@ angular.module('copayApp.controllers').controller('backupController',
}
}
- $log.debug('Backup done');
- storageService.setBackupFlag(wallet.credentials.walletId, function(err) {
- $log.debug('Backup stored');
- return cb();
- });
+ profileService.setBackupFlag(walletClient.credentials.walletId);
+ return cb();
}, 1);
};
diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js
index 1a1ec2dd2..84ea631d4 100644
--- a/src/js/controllers/create.js
+++ b/src/js/controllers/create.js
@@ -183,12 +183,7 @@ angular.module('copayApp.controllers').controller('createController',
if (self.seedSourceId == 'set') {
- $timeout(function() {
- $log.debug('Backup done');
- storageService.setBackupFlag(wallet.credentials.walletId, function(err) {
- $log.debug('Backup stored');
- });
- }, 1);
+ profileService.setBackupFlag(client.credentials.walletId);
}
$state.go('tabs.home')
});
diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js
index cb24f92cc..a5f09fd26 100644
--- a/src/js/controllers/import.js
+++ b/src/js/controllers/import.js
@@ -109,12 +109,12 @@ angular.module('copayApp.controllers').controller('importController',
$log.debug('Remote preferences saved for:' + client.credentials.walletId)
});
- $rootScope.$emit('Local/WalletImported', client.credentials.walletId);
- if ($stateParams.fromOnboarding)
+ profileService.setBackupFlag(client.credentials.walletId);
+ if ($stateParams.fromOnboarding) {
profileService.setDisclaimerAccepted(function(err) {
if (err) $log.error(err);
});
-
+ }
$state.go('tabs.home');
});
}, 100);
@@ -141,12 +141,12 @@ angular.module('copayApp.controllers').controller('importController',
$log.debug('Remote preferences saved for:' + client.credentials.walletId)
});
- $rootScope.$emit('Local/WalletImported', client.credentials.walletId);
- if ($stateParams.fromOnboarding)
+ profileService.setBackupFlag(client.credentials.walletId);
+ if ($stateParams.fromOnboarding) {
profileService.setDisclaimerAccepted(function(err) {
if (err) $log.error(err);
});
-
+ }
$state.go('tabs.home');
});
}, 100);
@@ -166,12 +166,13 @@ angular.module('copayApp.controllers').controller('importController',
$scope.$apply();
});
}
- $rootScope.$emit('Local/WalletImported', walletId);
- if ($stateParams.fromOnboarding)
+
+ profileService.setBackupFlag(walletId);
+ if ($stateParams.fromOnboarding) {
profileService.setDisclaimerAccepted(function(err) {
if (err) $log.error(err);
});
-
+ }
$state.go('tabs.home');
});
}, 100);
@@ -200,12 +201,12 @@ angular.module('copayApp.controllers').controller('importController',
$log.debug('Remote preferences saved for:' + client.credentials.walletId)
});
- $rootScope.$emit('Local/WalletImported', client.credentials.walletId);
- if ($stateParams.fromOnboarding)
+ profileService.setBackupFlag(client.credentials.walletId);
+ if ($stateParams.fromOnboarding) {
profileService.setDisclaimerAccepted(function(err) {
if (err) $log.error(err);
});
-
+ }
$state.go('tabs.home');
});
}, 100);
@@ -339,12 +340,13 @@ angular.module('copayApp.controllers').controller('importController',
walletService.updateRemotePreferences(wallet, {}, function() {
$log.debug('Remote preferences saved for:' + wallet.walletId)
});
- $rootScope.$emit('Local/WalletImported', wallet.walletId);
- if ($stateParams.fromOnboarding)
+
+ profileService.setBackupFlag(wallet.walletId);
+ if ($stateParams.fromOnboarding) {
profileService.setDisclaimerAccepted(function(err) {
if (err) $log.error(err);
});
-
+ }
$state.go('tabs.home');
});
}, 100);
@@ -421,13 +423,13 @@ angular.module('copayApp.controllers').controller('importController',
walletService.updateRemotePreferences(wallet, {}, function() {
$log.debug('Remote preferences saved for:' + wallet.walletId)
});
- $rootScope.$emit('Local/WalletImported', wallet.walletId);
- if ($stateParams.fromOnboarding)
+ profileService.setBackupFlag(wallet.walletId);
+ if ($stateParams.fromOnboarding) {
profileService.setDisclaimerAccepted(function(err) {
if (err) $log.error(err);
});
-
+ }
$state.go('tabs.home');
});
}, 100);
diff --git a/src/js/controllers/preferencesDeleteWords.js b/src/js/controllers/preferencesDeleteWords.js
index 8a5f777b3..e1fde81d3 100644
--- a/src/js/controllers/preferencesDeleteWords.js
+++ b/src/js/controllers/preferencesDeleteWords.js
@@ -1,14 +1,12 @@
'use strict';
-angular.module('copayApp.controllers').controller('preferencesDeleteWordsController', function($scope, $ionicHistory, $stateParams, $ionicNavBarDelegate, gettextCatalog, confirmDialog, lodash, profileService, walletService, gettext) {
+angular.module('copayApp.controllers').controller('preferencesDeleteWordsController', function($scope, $ionicHistory, $stateParams, $ionicNavBarDelegate, gettextCatalog, confirmDialog, lodash, profileService, gettext) {
$ionicNavBarDelegate.title(gettextCatalog.getString('Delete recovery phrase'));
var wallet = profileService.getWallet($stateParams.walletId);
var msg = gettext('Are you sure you want to delete the recovery phrase?');
var successMsg = gettext('Recovery phrase deleted');
+ $scope.needsBackup = wallet.needsBackup;
- walletService.needsBackup(wallet, function(needsBackup) {
- $scope.needsBackup = needsBackup;
- });
if (lodash.isEmpty(wallet.credentials.mnemonic) && lodash.isEmpty(wallet.credentials.mnemonicEncrypted))
$scope.deleted = true;
diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js
index c7e2b319b..16d509897 100644
--- a/src/js/controllers/tab-receive.js
+++ b/src/js/controllers/tab-receive.js
@@ -13,35 +13,28 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi
}
$scope.$on('Wallet/Changed', function(event, wallet) {
- if (lodash.isEmpty(wallet)) {
+ if (!wallet) {
$log.debug('No wallet provided');
return;
}
- $scope.defaultWallet = wallet;
+ $scope.wallet = wallet;
$log.debug('Wallet changed: ' + wallet.name);
$scope.setAddress(wallet);
});
$scope.shareAddress = function(addr) {
+ if ($scope.generatingAddress) return;
if ($scope.isCordova) {
window.plugins.socialsharing.share('bitcoin:' + addr, null, null, null);
}
};
$scope.setAddress = function(wallet, forceNew) {
- var wallet = wallet || $scope.defaultWallet;
if ($scope.generatingAddress) return;
- $scope.addr = null;
+ var wallet = wallet || $scope.wallet;
$scope.error = null;
-
- if (wallet && !wallet.isComplete()) {
- $timeout(function() {
- $scope.$digest();
- });
- return;
- }
-
+ $scope.addr = null;
$scope.generatingAddress = true;
$timeout(function() {
@@ -53,8 +46,9 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi
if (addr)
$scope.addr = addr;
}
- $scope.$digest();
+
+ $scope.$apply();
});
- });
+ }, 1);
};
});
diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js
index 3026753f9..7085baa34 100644
--- a/src/js/services/profileService.js
+++ b/src/js/services/profileService.js
@@ -36,9 +36,35 @@ angular.module('copayApp.services')
wallet.name = config.aliasFor[wallet.id] || wallet.credentials.walletName;
wallet.color = config.colorFor[wallet.id] || '#4A90E2';
-
}
+ root.setBackupFlag = function(walletId) {
+ storageService.setBackupFlag(walletId, function(err) {
+ if (err) $log.error(err);
+ $log.debug('Backup flag stored');
+ root.wallet[walletId].needsBackup = false;
+ });
+ };
+
+ function _requiresBackup(wallet) {
+ if (wallet.isPrivKeyExternal()) return false;
+ if (!wallet.credentials.mnemonic) return false;
+ if (wallet.credentials.network == 'testnet') return false;
+
+ return true;
+ };
+
+ function _needsBackup(wallet, cb) {
+ if (!_requiresBackup(wallet))
+ return cb(false);
+
+ storageService.getBackupFlag(wallet.credentials.walletId, function(err, val) {
+ if (err) $log.error(err);
+ if (val) return cb(false);
+ return cb(true);
+ });
+ };
+
// Adds a wallet client to profileService
root.bindWalletClient = function(wallet, opts) {
var opts = opts || {};
@@ -52,18 +78,20 @@ angular.module('copayApp.services')
wallet.id = walletId;
wallet.started = true;
wallet.doNotVerifyPayPro = isChromeApp;
-
-
wallet.network = wallet.credentials.network;
wallet.copayerId = wallet.credentials.copayerId;
wallet.m = wallet.credentials.m;
wallet.n = wallet.credentials.n;
root.updateWalletSettings(wallet);
-
root.wallet[walletId] = wallet;
+ _needsBackup(wallet, function(val) {
+ wallet.needsBackup = val;
+ });
+
wallet.removeAllListeners();
+
wallet.on('report', function(n) {
$log.info('BWC Report:' + n);
});
@@ -103,7 +131,6 @@ angular.module('copayApp.services')
});
});
-
$rootScope.$on('Local/SettingsUpdated', function(e, walletId) {
if (!walletId || walletId == wallet.id) {
$log.debug('Updating settings for wallet:' + wallet.id);
diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js
index f4230fc33..bdfe1a291 100644
--- a/src/js/services/walletService.js
+++ b/src/js/services/walletService.js
@@ -65,27 +65,6 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
});
};
- root.requiresBackup = function(wallet) {
- if (wallet.isPrivKeyExternal()) return false;
- if (!wallet.credentials.mnemonic) return false;
- if (wallet.credentials.network == 'testnet') return false;
-
- return true;
- };
-
- root.needsBackup = function(wallet, cb) {
-
- if (!root.requiresBackup(wallet))
- return cb(false);
-
- storageService.getBackupFlag(wallet.credentials.walletId, function(err, val) {
- if (err) $log.error(err);
- if (val) return cb(false);
- return cb(true);
- });
- };
-
-
// TODO
// This handles errors from BWS/index which normally
// trigger from async events (like updates).
@@ -815,11 +794,9 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
if (!wallet.isComplete())
return cb('WALLET_NOT_COMPLETE');
- root.needsBackup(wallet, function(needsBackup) {
- if (needsBackup)
- return cb('WALLET_NEEDS_BACKUP');
- return cb();
- });
+ if (wallet.needsBackup)
+ return cb('WALLET_NEEDS_BACKUP');
+ return cb();
};
@@ -859,7 +836,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
askPassword(wallet.name, gettext('Enter new spending password'), function(password) {
if (!password) return cb('no password');
askPassword(wallet.name, gettext('Confirm you new spending password'), function(password2) {
- if (!password2 || password != password2)
+ if (!password2 || password != password2)
return cb('password mismatch');
wallet.encryptPrivateKey(password);
@@ -950,7 +927,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
}
root.prepare(wallet, function(err, password) {
- if (err) return cb('Prepare error: ' + err);
+ if (err) return cb('Prepare error: ' + err);
ongoingProcess.set('sendingTx', true);
publishFn(wallet, txp, function(err, publishedTxp) {
@@ -1040,7 +1017,7 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim
if (wallet.credentials.derivationStrategy != 'BIP44' || !wallet.canSign())
return null;
- root.getKeys(wallet, function(err, keys){
+ root.getKeys(wallet, function(err, keys) {
if (err || !keys) return cb(err);
if (keys.mnemonic) {