diff --git a/lib/privatekey.js b/lib/privatekey.js index c0569fe..794860c 100644 --- a/lib/privatekey.js +++ b/lib/privatekey.js @@ -97,7 +97,7 @@ PrivateKey.prototype._classifyArguments = function(data, network) { }; // detect type of data - if (_.isUndefined(data)){ + if (_.isUndefined(data) || _.isNull(data)){ info.bn = PrivateKey._getRandomBN(); } else if (data instanceof BN) { info.bn = data; @@ -105,6 +105,9 @@ PrivateKey.prototype._classifyArguments = function(data, network) { info = PrivateKey._transformBuffer(data, network); } else if (PrivateKey._isJSON(data)){ info = PrivateKey._transformJSON(data); + } else if (!network && Networks.get(data)) { + info.bn = PrivateKey._getRandomBN(); + info.network = Networks.get(data); } else if (typeof(data) === 'string'){ if (JSUtil.isHexa(data)) { info.bn = BN(new Buffer(data, 'hex')); diff --git a/test/privatekey.js b/test/privatekey.js index 6ecda31..7cae44b 100644 --- a/test/privatekey.js +++ b/test/privatekey.js @@ -31,6 +31,18 @@ describe('PrivateKey', function() { should.exist(b.bn); }); + it('should create a new random testnet private key with only one argument', function() { + var a = new PrivateKey(Networks.testnet); + should.exist(a); + should.exist(a.bn); + }); + + it('should create a new random testnet private key with empty data', function() { + var a = new PrivateKey(null, Networks.testnet); + should.exist(a); + should.exist(a.bn); + }); + it('should create a private key from WIF string', function() { var a = new PrivateKey('L3T1s1TYP9oyhHpXgkyLoJFGniEgkv2Jhi138d7R2yJ9F4QdDU2m'); should.exist(a);