diff --git a/js/controllers/signin.js b/js/controllers/signin.js index 4086e5424..78ef550ef 100644 --- a/js/controllers/signin.js +++ b/js/controllers/signin.js @@ -23,11 +23,16 @@ angular.module('copay.signin').controller('SigninController', $rootScope.flashMessage = { message: 'Please, enter required fields', type: 'error'}; return; } + $scope.loading = true; var password = form.openPassword.$modelValue; - var passphrase = Passphrase.getBase64(password); var w = walletFactory.open($scope.selectedWalletId, { passphrase: passphrase}); + if (!w) { + $scope.loading = false; + $rootScope.flashMessage = { message: 'Bad password or connection error', type: 'error'}; + return; + } controllerUtils.startNetwork(w); }; diff --git a/js/models/core/WalletFactory.js b/js/models/core/WalletFactory.js index f1b854f0c..fc59b188d 100644 --- a/js/models/core/WalletFactory.js +++ b/js/models/core/WalletFactory.js @@ -140,8 +140,11 @@ WalletFactory.prototype.open = function(walletId, opts) { opts.verbose = this.verbose; this.storage._setPassphrase(opts.passphrase); - var w = this.read(walletId) || this.create(opts); - w.store(); + var w = this.read(walletId); + + if (w) { + w.store(); + } return w; }; @@ -188,7 +191,8 @@ WalletFactory.prototype.joinCreateSession = function(secret, nickname, passphras data.opts.privateKey = privateKey; data.opts.nickname = nickname; data.opts.passphrase = passphrase; - var w = self.open(data.walletId, data.opts); + data.opts.id = data.walletId; + var w = self.create(data.opts); w.firstCopayerId = s.pubKey; return cb(null, w); } diff --git a/js/models/storage/LocalEncrypted.js b/js/models/storage/LocalEncrypted.js index cfeb1d2c5..95520ebed 100644 --- a/js/models/storage/LocalEncrypted.js +++ b/js/models/storage/LocalEncrypted.js @@ -54,7 +54,7 @@ Storage.prototype._read = function(k) { } } catch (e) { console.log('Error while decrypting: '+e); - throw e; + return null; }; return ret;