Socket
Socket
Sign inDemoInstall

bitcore-lib-cash

Package Overview
Dependencies
13
Maintainers
3
Versions
101
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 10.0.28 to 10.0.36

157

lib/networks.js
'use strict';
var _ = require('lodash');
var BufferUtil = require('./util/buffer');

@@ -15,3 +13,3 @@ var JSUtil = require('./util/js');

*/
function Network() {}
function Network() { }

@@ -35,11 +33,8 @@ Network.prototype.toString = function toString() {

if (keys) {
if (!_.isArray(keys)) {
if (!Array.isArray(keys)) {
keys = [keys];
}
for (var i = 0; i < networks.length; i++) {
var network = networks[i];
var filteredNet = _.pick(network, keys);
var netValues = _.values(filteredNet);
if(~netValues.indexOf(arg)) {
return network;
for (const index in networks) {
if (keys.some(key => networks[index][key] === arg)) {
return networks[index];
}

@@ -49,3 +44,3 @@ }

}
if(networkMaps[arg] && networkMaps[arg].length >= 1) {
if (networkMaps[arg] && networkMaps[arg].length >= 1) {
return networkMaps[arg][0];

@@ -57,2 +52,13 @@ } else {

/**
* @function
* @member Networks#is
* Returns true if the string is the network name or alias
* @param {string} str - A string to check
* @return boolean
*/
function is(str) {
return this.name == str || this.alias == str;
}
/***

@@ -66,3 +72,3 @@ * Derives an array from the given prefix to be used in the computation

var result = [];
for (var i=0; i < prefix.length; i++) {
for (var i = 0; i < prefix.length; i++) {
result.push(prefix.charCodeAt(i) & 31);

@@ -85,9 +91,10 @@ }

* @param {Number} data.xprivkey - The extended private key magic
* @param {Number} data.networkMagic - The network magic number
* @param {Number} data.port - The network port
* @param {Array} data.dnsSeeds - An array of dns seeds
* @param {Array} data.variants - An array of variants
* @param {string} data.variants.name - The name of the variant
* @param {Number} data.variants.networkMagic - The network magic number
* @param {Number} data.variants.port - The network port
* @param {Array} data.variants.dnsSeeds - An array of dns seeds
* @return Network
*/
function addNetwork(data) {
var network = new Network();

@@ -98,2 +105,3 @@

alias: data.alias,
is: data.is,
pubkeyhash: data.pubkeyhash,

@@ -106,6 +114,4 @@ privatekey: data.privatekey,

var indexBy = data.indexBy || Object.keys(data);
if (data.prefix) {
_.extend(network, {
JSUtil.defineImmutable(network, {
prefix: data.prefix,

@@ -117,3 +123,3 @@ prefixArray: prefixToArray(data.prefix),

if (data.networkMagic) {
_.extend(network, {
JSUtil.defineImmutable(network, {
networkMagic: BufferUtil.integerAsBuffer(data.networkMagic)

@@ -124,3 +130,3 @@ });

if (data.port) {
_.extend(network, {
JSUtil.defineImmutable(network, {
port: data.port

@@ -131,25 +137,29 @@ });

if (data.dnsSeeds) {
_.extend(network, {
JSUtil.defineImmutable(network, {
dnsSeeds: data.dnsSeeds
});
}
networks.push(network);
indexNetworkBy(network, indexBy);
return network;
}
function indexNetworkBy(network, keys) {
for(var i = 0; i < keys.length; i++) {
var key = keys[i];
var networkValue = network[key];
if(!_.isUndefined(networkValue) && !_.isObject(networkValue)) {
if(!networkMaps[networkValue]) {
networkMaps[networkValue] = [];
for (const value of Object.values(network)) {
if (value != null && typeof value !== 'object') {
if (!networkMaps[value]) {
networkMaps[value] = [];
}
networkMaps[networkValue].push(network);
networkMaps[value].push(network);
}
};
networks.push(network);
for (const variant of data.variants || []) {
addNetwork({
...data,
variants: undefined,
...variant,
});
}
return network;
}
/**

@@ -195,5 +205,6 @@ * @function

var liveNetwork = {
addNetwork({
name: 'livenet',
alias: 'mainnet',
is,
prefix: 'bitcoincash',

@@ -208,6 +219,14 @@ pubkeyhash: 28,

dnsSeeds: dnsSeeds
};
});
var testNetwork = {
/**
* @instance
* @member Networks#livenet
*/
var livenet = get('livenet');
addNetwork({
name: 'testnet',
alias: 'testnet',
is,
prefix: 'bchtest',

@@ -219,9 +238,41 @@ pubkeyhash: 0x6f,

xprivkey: 0x04358394,
networkMagic: 0xf4e5f3f4,
port: 18333,
dnsSeeds: dnsSeeds
};
variants: [{
name: 'testnet3',
networkMagic: 0xf4e5f3f4,
port: 18333,
dnsSeeds: dnsSeeds
},
{
name: 'testnet4',
networkMagic: 0xe2b7daaf,
port: 28333,
dnsSeeds: dnsSeeds
},
{
name: 'scalenet',
networkMagic: 0xc3afe1a2,
port: 38333,
dnsSeeds: dnsSeeds
},
{
name: 'chipnet',
networkMagic: 0xe2b7daaf,
port: 48333,
dnsSeeds: dnsSeeds
}]
});
var regtestNetwork = {
/**
* @instance
* @member Networks#testnet
*/
var testnet = get('testnet');
var testnet3 = get('testnet3');
var testnet4 = get('testnet4');
var scalenet = get('scalenet');
var chipnet = get('chipnet');
addNetwork({
name: 'regtest',
is,
prefix: 'bchreg',

@@ -242,15 +293,9 @@ pubkeyhash: 0x6f,

]
};
});
// Add configurable values for testnet/regtest
addNetwork(testNetwork);
addNetwork(regtestNetwork);
addNetwork(liveNetwork);
var livenet = get('livenet');
/**
* @instance
* @member Networks#regtest
*/
var regtest = get('regtest');
var testnet = get('testnet');

@@ -287,2 +332,6 @@ /**

testnet: testnet,
testnet3: testnet3,
testnet4: testnet4,
scalenet: scalenet,
chipnet: chipnet,
regtest: regtest,

@@ -289,0 +338,0 @@ get: get,

{
"name": "bitcore-lib-cash",
"version": "10.0.28",
"version": "10.0.36",
"description": "A pure and powerful JavaScript Bitcoin Cash library.",

@@ -54,3 +54,3 @@ "author": "BitPay <dev@bitpay.com>",

"license": "MIT",
"gitHead": "c47030e29c2ef353b41955d78fd0ca5c8422c590"
"gitHead": "44397d0f60079b0d52a2d94cdb2923c0e783206e"
}

@@ -58,2 +58,26 @@ 'use strict';

it('should make a new private key from random for testnet with specific network "testnet3"', function() {
var key = new HDPrivateKey('testnet3');
should.exist(key.xprivkey);
key.network.name.should.equal('testnet');
});
it('should make a new private key from random for testnet with specific network "testnet4"', function() {
var key = new HDPrivateKey('testnet4');
should.exist(key.xprivkey);
key.network.name.should.equal('testnet');
});
it('should make a new private key from random for testnet with specific network "chipnet"', function() {
var key = new HDPrivateKey('chipnet');
should.exist(key.xprivkey);
key.network.name.should.equal('testnet');
});
it('should make a new private key from random for testnet with specific network "scalenet"', function() {
var key = new HDPrivateKey('scalenet');
should.exist(key.xprivkey);
key.network.name.should.equal('testnet');
});
it('should not be able to change read-only properties', function() {

@@ -60,0 +84,0 @@ var hdkey = new HDPrivateKey();

@@ -46,8 +46,37 @@ 'use strict';

it('should have network magic for testnet', function() {
it('should have not have network magic or port for testnet', function() {
var testnet = networks.get('testnet');
var buffUtil = require('../lib/util/buffer');
buffUtil.isBuffer(testnet.networkMagic).should.equal(false);
isNaN(testnet.port).should.equal(true);
});
it('should have network magic and port for testnet variant "testnet3"', function() {
var testnet = networks.get('testnet3');
var buffUtil = require('../lib/util/buffer');
buffUtil.isBuffer(testnet.networkMagic).should.equal(true);
isNaN(testnet.port).should.equal(false);
});
it('should have network magic and port for testnet variant "testnet4"', function() {
var testnet = networks.get('testnet4');
var buffUtil = require('../lib/util/buffer');
buffUtil.isBuffer(testnet.networkMagic).should.equal(true);
isNaN(testnet.port).should.equal(false);
});
it('should have network magic and port for testnet variant "chipnet"', function() {
var testnet = networks.get('chipnet');
var buffUtil = require('../lib/util/buffer');
buffUtil.isBuffer(testnet.networkMagic).should.equal(true);
isNaN(testnet.port).should.equal(false);
});
it('should have network magic and port for testnet variant "scalenet"', function() {
var testnet = networks.get('scalenet');
var buffUtil = require('../lib/util/buffer');
buffUtil.isBuffer(testnet.networkMagic).should.equal(true);
isNaN(testnet.port).should.equal(false);
});
it('can remove a custom network', function() {

@@ -117,2 +146,18 @@ networks.remove(customnet);

it('should get testnet network with name "testnet3"', function() {
expect(networks.get('testnet3').name).to.equal('testnet3');
});
it('should get testnet network with name "testnet"', function() {
expect(networks.get('testnet').name).to.equal('testnet');
});
it('should get testnet network with name "chipnet"', function() {
expect(networks.get('chipnet').name).to.equal('chipnet');
});
it('should get testnet network with name "scalenet"', function() {
expect(networks.get('scalenet').name).to.equal('scalenet');
});
it('should have livenet network', function() {

@@ -119,0 +164,0 @@ expect(networks.get('livenet').name).to.equal('livenet');

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc