checks network match when joining a wallet

This commit is contained in:
Matias Alejo Garcia 2014-06-09 21:00:28 -03:00
parent c5a3049b9d
commit 4ae3748414
5 changed files with 26 additions and 5 deletions

View File

@ -57,6 +57,8 @@ angular.module('copayApp.controllers').controller('SigninController',
$rootScope.$flashMessage = { message: 'Can not find peer'};
else if (err === 'walletFull')
$rootScope.$flashMessage = { message: 'The wallet is full', type: 'error'};
else if (err === 'badNetwork')
$rootScope.$flashMessage = { message: 'The wallet your are trying to join uses a different Bitcoin Network. Check your settings.', type: 'error'};
else if (err === 'badSecret')
$rootScope.$flashMessage = { message: 'Bad secret secret string', type: 'error'};
else

View File

@ -248,7 +248,7 @@ PublicKeyRing.prototype._checkInPKR = function(inPKR, ignoreId) {
}
if (this.network.name !== inPKR.network.name) {
throw new Error('inPKR network mismatch. Should be '+this.network.name +
throw new Error('Network mismatch. Should be '+this.network.name +
' and found '+inPKR.network.name);
}

View File

@ -87,7 +87,15 @@ Wallet.prototype._handlePublicKeyRing = function(senderId, data, isInbound) {
var inPKR = copay.PublicKeyRing.fromObj(data.publicKeyRing);
var wasIncomplete = !this.publicKeyRing.isComplete();
var hasChanged = this.publicKeyRing.merge(inPKR, true);
var hasChanged;
try{
hasChanged = this.publicKeyRing.merge(inPKR, true);
} catch (e){
console.log('## WALLET ERROR', e); //TODO
this.emit('connectionError', e.message);
return;
}
if (hasChanged) {
if (wasIncomplete) {
@ -381,7 +389,8 @@ Wallet.prototype.sendWalletId = function(recipients) {
this.network.send(recipients, {
type: 'walletId',
walletId: this.id,
opts: this._optsToObj()
opts: this._optsToObj(),
networkName: this.getNetworkName(),
});
};

View File

@ -220,6 +220,12 @@ WalletFactory.prototype.joinCreateSession = function(secret, nickname, passphras
});
self.network.on('data', function(sender, data) {
if (data.type ==='walletId') {
console.log('[WalletFactory.js.223]', data.networkName, self.networkName); //TODO
if (data.networkName !== self.networkName ){
return cb('badNetwork');
}
data.opts.privateKey = privateKey;
data.opts.nickname = nickname;
data.opts.passphrase = passphrase;

View File

@ -32,8 +32,12 @@ angular.module('copayApp.services')
root.logout();
}
root.onErrorDigest = function(scope) {
root.onErrorDigest = function(scope, msg) {
root.onError(scope);
if (msg) $rootScope.$flashMessage = {
type: 'error',
message: msg
};
$rootScope.$digest();
}
@ -81,7 +85,7 @@ angular.module('copayApp.services')
});
});
w.on('connectionError', function(msg) {
root.onErrorDigest(msg);
root.onErrorDigest(null, msg);
});
w.on('connect', function(peerID) {
if (peerID && !config.disableVideo) {