diff --git a/config.js b/config.js index d2ac2e75d..05bb71331 100644 --- a/config.js +++ b/config.js @@ -2,6 +2,7 @@ var defaultConfig = { // DEFAULT network (livenet or testnet) networkName: 'livenet', + forceNetwork: false, // DEFAULT unit: Bit unitName: 'bits', @@ -124,3 +125,4 @@ var defaultConfig = { disableVideo: true, verbose: 1, }; +module.exports = defaultConfig; diff --git a/js/models/core/Wallet.js b/js/models/core/Wallet.js index 7e892dd42..5e0be4c44 100644 --- a/js/models/core/Wallet.js +++ b/js/models/core/Wallet.js @@ -19,6 +19,7 @@ var AddressIndex = require('./AddressIndex'); var PublicKeyRing = require('./PublicKeyRing'); var TxProposals = require('./TxProposals'); var PrivateKey = require('./PrivateKey'); +var copayConfig = require('../../../config'); function Wallet(opts) { var self = this; @@ -33,6 +34,9 @@ function Wallet(opts) { throw new Error('missing required option for Wallet: ' + k); self[k] = opts[k]; }); + if (copayConfig.forceNetwork && opts.networkName !== copayConfig.networkName) + throw new Error('Network forced to '+copayConfig.networkName+ + ' and tried to create a Wallet with network '+opts.networkName); this.log('creating ' + opts.requiredCopayers + ' of ' + opts.totalCopayers + ' wallet'); diff --git a/test/test.Wallet.js b/test/test.Wallet.js index 42991ed57..b1f354cc6 100644 --- a/test/test.Wallet.js +++ b/test/test.Wallet.js @@ -8,6 +8,7 @@ try { } catch (e) { var copay = require('../copay'); //node } +var copayConfig = require('../config'); var Wallet = require('../js/models/core/Wallet'); var Structure = copay.Structure; var Storage = require('./mocks/FakeStorage'); @@ -950,4 +951,14 @@ describe('Wallet model', function() { }); }); + describe('#forceNetwork in config', function() { + it('should throw if network is different', function() { + var backup = copayConfig.forceNetwork; + copayConfig.forceNetwork = true; + config.networkName = 'livenet'; + cachedCreateW2.should.throw(Error); + copayConfig.forceNetwork = backup; + }); + }); + });