diff --git a/js/controllers/join.js b/js/controllers/join.js index 1b7478712..7fac1b45a 100644 --- a/js/controllers/join.js +++ b/js/controllers/join.js @@ -130,6 +130,8 @@ angular.module('copayApp.controllers').controller('JoinController', notification.error('Fatal error connecting to Insight server'); else if (err === 'walletFull') notification.error('The wallet is full'); + else if (err === 'walletAlreadyExists') + notification.error('Wallet already exists', 'Cannot join again from the same profile'); else if (err === 'badNetwork') notification.error('Network Error', 'Wallet network configuration missmatch'); else if (err === 'badSecret') @@ -138,6 +140,7 @@ angular.module('copayApp.controllers').controller('JoinController', notification.error('Error', err.message || err); } } + $timeout(function () { $scope.$digest(); }, 1); }); } }); diff --git a/js/models/Identity.js b/js/models/Identity.js index e215412fa..d4794bb06 100644 --- a/js/models/Identity.js +++ b/js/models/Identity.js @@ -575,6 +575,13 @@ Identity.prototype.createWallet = function(opts, cb) { var self = this; var w = new walletClass(opts); + + console.log(_.keys(self.wallets)); + console.log(w.getId()); + if (_.contains(_.keys(self.wallets), w.getId())) { + return cb('walletAlreadyExists'); + } + self.wallets[w.getId()] = w; self.updateFocusedTimestamp(w.getId()); self.bindWallet(w); diff --git a/js/models/Wallet.js b/js/models/Wallet.js index c9aa01342..44543c349 100644 --- a/js/models/Wallet.js +++ b/js/models/Wallet.js @@ -2550,7 +2550,10 @@ Wallet.prototype.isComplete = function() { * @param {string} version - the new version for the wallet */ Wallet.prototype.setVersion = function(version) { - this.version = this.opts.version = version; + this.version = version; + if (this.opts) { + this.opts.version = version; + } }; /** diff --git a/test/Identity.js b/test/Identity.js index caecc3f03..daaddb78e 100644 --- a/test/Identity.js +++ b/test/Identity.js @@ -77,9 +77,10 @@ describe('Identity model', function() { return params; } + var wid = 0; function getNewWallet(args) { var w = sinon.stub(); - w.getId = sinon.stub().returns('wid'); + w.getId = sinon.stub().returns('wid' + (++wid)); w.getStorageKey = sinon.stub().returns('wkey'); w.toObj = sinon.stub().returns({ obj: 1