fix Address validation issue

This commit is contained in:
Manuel Araoz 2014-03-19 18:44:24 -03:00
parent 2323e2a67a
commit 3cd4e31c31
3 changed files with 13 additions and 1 deletions

View File

@ -16,6 +16,7 @@ Address.prototype.validate = function() {
Address.super(this, 'validate', arguments);
if(this.data.length !== 21) throw new Error('invalid data length');
});
if (typeof this.network() === 'undefined') throw new Error('invalid network');
};
Address.prototype.isValid = function() {

View File

@ -35,6 +35,9 @@ describe('Address', function() {
['1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62iz', false], // too long Bitcoin address
['1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62izz', false],// too long Bitcoin address
['2cFupjhnEsSn59qHXstmK2ffpLv2', false], // valid base58 invalid data
['dB7cwYdcPSgiyAwKWL3JwCVwSk6epU2txw', false], // valid base58, valid length, invalid network
['2MnmgiRH4eGLyLc9eAqStzk7dFgBjFtUCtu', false], // valid base58, valid length, invalid network
['32QBdjycLwbDTuGafUwaU5p5GxzSLPYoF6', true], // valid base58, valid length, valid network
];
data.forEach(function(datum) {
var address = datum[0];

View File

@ -122,12 +122,20 @@ describe('Miscelaneous stuff', function() {
a.network().should.equal(network);
});
it('should generate correctly from hex', function() {
var version = shouldBeScript? network.addressScript: network.addressPubkey;
var version = shouldBeScript ? network.addressScript : network.addressPubkey;
var b = new Address(version, new Buffer(hexPayload, 'hex'));
b.toString().should.equal(b58);
});
});
}
});
testdata.dataBase58KeysInvalid.forEach(function(datum) {
var b58 = datum[0];
it('shouldnt be able to create Address nor WalletKey with ' + b58, function() {
var a = new Address(b58);
var invalidAddress = (!a.isValid());
invalidAddress.should.equal(true);
});
});
});