settings: added test for new secret scheme
This commit is contained in:
parent
520fd762ba
commit
7159cdb712
4 changed files with 15 additions and 4 deletions
|
|
@ -129,7 +129,7 @@ angular.module('copayApp.controllers').controller('JoinController',
|
||||||
else if (err === 'walletFull')
|
else if (err === 'walletFull')
|
||||||
notification.error('The wallet is full');
|
notification.error('The wallet is full');
|
||||||
else if (err === 'badNetwork')
|
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')
|
else if (err === 'badSecret')
|
||||||
notification.error('Bad secret', 'The secret string you entered is invalid');
|
notification.error('Bad secret', 'The secret string you entered is invalid');
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -650,7 +650,7 @@ Wallet.prototype.getSecret = function() {
|
||||||
var buf = new Buffer(
|
var buf = new Buffer(
|
||||||
this.getMyCopayerId() +
|
this.getMyCopayerId() +
|
||||||
this.getSecretNumber() +
|
this.getSecretNumber() +
|
||||||
this.getNetworkName() === 'livenet' ? 'L' : 'T',
|
(this.getNetworkName() === 'livenet' ? '00' : '01'),
|
||||||
'hex');
|
'hex');
|
||||||
var str = Base58Check.encode(buf);
|
var str = Base58Check.encode(buf);
|
||||||
return str;
|
return str;
|
||||||
|
|
@ -666,7 +666,7 @@ Wallet.decodeSecret = function(secretB) {
|
||||||
var secret = Base58Check.decode(secretB);
|
var secret = Base58Check.decode(secretB);
|
||||||
var pubKeyBuf = secret.slice(0, 33);
|
var pubKeyBuf = secret.slice(0, 33);
|
||||||
var secretNumber = secret.slice(33, 38);
|
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 {
|
return {
|
||||||
pubKey: pubKeyBuf.toString('hex'),
|
pubKey: pubKeyBuf.toString('hex'),
|
||||||
secretNumber: secretNumber.toString('hex'),
|
secretNumber: secretNumber.toString('hex'),
|
||||||
|
|
|
||||||
|
|
@ -364,7 +364,7 @@ WalletFactory.prototype.joinCreateSession = function(secret, nickname, passphras
|
||||||
self.network.greet(decodedSecret.pubKey, opts.secretNumber);
|
self.network.greet(decodedSecret.pubKey, opts.secretNumber);
|
||||||
self.network.on('data', function(sender, data) {
|
self.network.on('data', function(sender, data) {
|
||||||
if (data.type === 'walletId') {
|
if (data.type === 'walletId') {
|
||||||
if (data.networkName !== self.networkName) {
|
if (data.networkName !== decodedSecret.networkName) {
|
||||||
return cb('badNetwork');
|
return cb('badNetwork');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -362,7 +362,18 @@ describe('Wallet model', function() {
|
||||||
var s = Wallet.decodeSecret(sb);
|
var s = Wallet.decodeSecret(sb);
|
||||||
s.pubKey.should.equal(id);
|
s.pubKey.should.equal(id);
|
||||||
s.secretNumber.should.equal(secretNumber);
|
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();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue