diff --git a/js/controllers/import.js b/js/controllers/import.js index f58d261bb..f0959ac20 100644 --- a/js/controllers/import.js +++ b/js/controllers/import.js @@ -6,10 +6,15 @@ angular.module('copayApp.controllers').controller('ImportController', var reader = new FileReader(); var _importBackup = function(encryptedObj) { Passphrase.getBase64Async($scope.password, function(passphrase){ - var w = walletFactory.fromEncryptedObj(encryptedObj, passphrase); + var w, errMsg; + try { + w = walletFactory.fromEncryptedObj(encryptedObj, passphrase); + } catch(e) { + errMsg = e.message; + } if (!w) { $scope.loading = false; - $rootScope.$flashMessage = { message: 'Wrong password', type: 'error'}; + $rootScope.$flashMessage = { message: errMsg || 'Wrong password', type: 'error'}; $rootScope.$digest(); return; } diff --git a/js/models/core/Wallet.js b/js/models/core/Wallet.js index 72f25743f..6e7dca714 100644 --- a/js/models/core/Wallet.js +++ b/js/models/core/Wallet.js @@ -438,7 +438,9 @@ Wallet.prototype.getTxProposals = function() { Wallet.prototype.reject = function(ntxid) { var myId = this.getMyCopayerId(); var txp = this.txProposals.txps[ntxid]; - if (!txp || txp.rejectedBy[myId] || txp.signedBy[myId]) return; + if (!txp || txp.rejectedBy[myId] || txp.signedBy[myId]) { + throw new Error('Invalid transaction to reject: '+ntxid); + } txp.rejectedBy[myId] = Date.now(); this.sendTxProposals(null, ntxid); @@ -454,7 +456,7 @@ Wallet.prototype.sign = function(ntxid, cb) { var txp = self.txProposals.txps[ntxid]; if (!txp || txp.rejectedBy[myId] || txp.signedBy[myId]) { if (cb) cb(false); - return; + throw new Error('Invalid transaction to sign: '+ntxid); } var pkr = self.publicKeyRing;