Browse Source

Throw error with invalid network

patch-2
Braydon Fuller 9 years ago
parent
commit
09d9e0291f
  1. 8
      lib/address.js
  2. 6
      test/address.js
  3. 5
      test/networks.js

8
lib/address.js

@ -195,10 +195,14 @@ Address._transformBuffer = function(buffer, network, type) {
throw new TypeError('Address buffers must be exactly 21 bytes.'); throw new TypeError('Address buffers must be exactly 21 bytes.');
} }
network = Networks.get(network); var networkObj = Networks.get(network);
var bufferVersion = Address._classifyFromVersion(buffer); var bufferVersion = Address._classifyFromVersion(buffer);
if (!bufferVersion.network || (network && network !== bufferVersion.network)) { if (network && !networkObj) {
throw new TypeError('Unknown network');
}
if (!bufferVersion.network || (networkObj && networkObj !== bufferVersion.network)) {
throw new TypeError('Address has mismatched network type.'); throw new TypeError('Address has mismatched network type.');
} }

6
test/address.js

@ -250,6 +250,12 @@ describe('Address', function() {
Address.fromString(str, Networks.livenet).toString().should.equal(str); Address.fromString(str, Networks.livenet).toString().should.equal(str);
}); });
it('should throw with bad network param', function() {
(function(){
Address.fromString(str, 'somenet');
}).should.throw('Unknown network');
});
it('should error because of unrecognized data format', function() { it('should error because of unrecognized data format', function() {
(function() { (function() {
return new Address(new Error()); return new Address(new Error());

5
test/networks.js

@ -89,7 +89,10 @@ describe('Networks', function() {
networks.add(custom); networks.add(custom);
var network = networks.get(undefined); var network = networks.get(undefined);
should.not.exist(network); should.not.exist(network);
networks.remove(custom); var somenet = networks.get('somenet');
should.exist(somenet);
somenet.name.should.equal('somenet');
networks.remove(somenet);
}); });
var constants = ['name', 'alias', 'pubkeyhash', 'scripthash', 'xpubkey', 'xprivkey']; var constants = ['name', 'alias', 'pubkeyhash', 'scripthash', 'xpubkey', 'xprivkey'];

Loading…
Cancel
Save