settings: added test for new secret scheme

This commit is contained in:
Manuel Araoz 2014-09-09 17:08:59 -07:00
commit 7159cdb712
4 changed files with 15 additions and 4 deletions

View file

@ -129,7 +129,7 @@ angular.module('copayApp.controllers').controller('JoinController',
else if (err === 'walletFull')
notification.error('The wallet is full');
else if (err === 'badNetwork')
notification.error('Network Error', 'The wallet your are trying to join uses a different Bitcoin Network. Check your settings.');
notification.error('Network Error', 'Wallet network configuration missmatch');
else if (err === 'badSecret')
notification.error('Bad secret', 'The secret string you entered is invalid');
else

View file

@ -650,7 +650,7 @@ Wallet.prototype.getSecret = function() {
var buf = new Buffer(
this.getMyCopayerId() +
this.getSecretNumber() +
this.getNetworkName() === 'livenet' ? 'L' : 'T',
(this.getNetworkName() === 'livenet' ? '00' : '01'),
'hex');
var str = Base58Check.encode(buf);
return str;
@ -666,7 +666,7 @@ Wallet.decodeSecret = function(secretB) {
var secret = Base58Check.decode(secretB);
var pubKeyBuf = secret.slice(0, 33);
var secretNumber = secret.slice(33, 38);
var networkName = secret.slice(38, 39) === 'L' ? 'livenet' : 'testnet';
var networkName = secret.slice(38, 39).toString('hex') === '00' ? 'livenet' : 'testnet';
return {
pubKey: pubKeyBuf.toString('hex'),
secretNumber: secretNumber.toString('hex'),

View file

@ -364,7 +364,7 @@ WalletFactory.prototype.joinCreateSession = function(secret, nickname, passphras
self.network.greet(decodedSecret.pubKey, opts.secretNumber);
self.network.on('data', function(sender, data) {
if (data.type === 'walletId') {
if (data.networkName !== self.networkName) {
if (data.networkName !== decodedSecret.networkName) {
return cb('badNetwork');
}

View file

@ -362,7 +362,18 @@ describe('Wallet model', function() {
var s = Wallet.decodeSecret(sb);
s.pubKey.should.equal(id);
s.secretNumber.should.equal(secretNumber);
s.networkName.should.equal(w.getNetworkName());
});
it('#getSecret decodeSecret livenet', function() {
var w = cachedCreateW2();
var stub = sinon.stub(w, 'getNetworkName');
stub.returns('livenet');
var sb = w.getSecret();
should.exist(sb);
var s = Wallet.decodeSecret(sb);
s.networkName.should.equal('livenet');
stub.restore();
});