diff --git a/lib/networks.js b/lib/networks.js index 21d5723..e088401 100644 --- a/lib/networks.js +++ b/lib/networks.js @@ -2,6 +2,7 @@ var _ = require('lodash'); var BufferUtil = require('./util/buffer'); +var JSUtil = require('./util/js'); var networks = []; var networkMaps = {}; @@ -64,7 +65,7 @@ function addNetwork(data) { var network = new Network(); - _.extend(network, { + JSUtil.defineImmutable(network, { name: data.name, alias: data.alias, pubkeyhash: data.pubkeyhash, @@ -77,7 +78,7 @@ function addNetwork(data) { dnsSeeds: data.dnsSeeds }); - _.each(_.values(network), function(value) { + _.each(network, function(value) { if (!_.isUndefined(value) && !_.isObject(value)) { networkMaps[value] = network; } diff --git a/test/networks.js b/test/networks.js index d4d9d4d..989e064 100644 --- a/test/networks.js +++ b/test/networks.js @@ -93,4 +93,10 @@ describe('Networks', function() { networks.livenet.toString().should.equal('livenet'); }); + it('network object should be immutable', function() { + expect(networks.testnet.name).to.equal('testnet') + var fn = function() { networks.testnet.name = 'livenet' } + expect(fn).to.throw(TypeError) + }); + });