Merge pull request #865 from maraoz/feature/force-testnet
Feature: allow to force network from config
This commit is contained in:
commit
b0ff5494e0
6 changed files with 34 additions and 2 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
var defaultConfig = {
|
var defaultConfig = {
|
||||||
// DEFAULT network (livenet or testnet)
|
// DEFAULT network (livenet or testnet)
|
||||||
networkName: 'livenet',
|
networkName: 'livenet',
|
||||||
|
forceNetwork: false,
|
||||||
|
|
||||||
// DEFAULT unit: Bit
|
// DEFAULT unit: Bit
|
||||||
unitName: 'bits',
|
unitName: 'bits',
|
||||||
|
|
@ -124,3 +125,5 @@ var defaultConfig = {
|
||||||
disableVideo: true,
|
disableVideo: true,
|
||||||
verbose: 1,
|
verbose: 1,
|
||||||
};
|
};
|
||||||
|
if (typeof module !== 'undefined')
|
||||||
|
module.exports = defaultConfig;
|
||||||
|
|
|
||||||
11
index.html
11
index.html
|
|
@ -849,8 +849,15 @@
|
||||||
<div class="small-12 medium-6 medium-centered large-6 large-centered columns">
|
<div class="small-12 medium-6 medium-centered large-6 large-centered columns">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Bitcoin Network</legend>
|
<legend>Bitcoin Network</legend>
|
||||||
<input id="network-name" type="checkbox" ng-model="networkName" ng-true-value="livenet" ng-false-value="testnet" class="form-control" ng-click="changeNetwork()">
|
<div ng-if="!forceNetwork">
|
||||||
<label for="network-name">Livenet</label>
|
<input id="network-name" type="checkbox" ng-model="networkName"
|
||||||
|
ng-true-value="livenet" ng-false-value="testnet" class="form-control" ng-click="changeNetwork()">
|
||||||
|
<label for="network-name">Livenet</label>
|
||||||
|
</div>
|
||||||
|
<div ng-if="forceNetwork">
|
||||||
|
Network has been fixed to <strong>{{networkName}}</strong> in this setup. See <a href="https://copay.io">copay.io</a>
|
||||||
|
for options to use Copay on both livenet and testnet.
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Wallet Unit</legend>
|
<legend>Wallet Unit</legend>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ angular.module('copayApp.controllers').controller('SettingsController',
|
||||||
$scope.networkPort = config.network.port;
|
$scope.networkPort = config.network.port;
|
||||||
$scope.networkSecure = config.network.secure || false;
|
$scope.networkSecure = config.network.secure || false;
|
||||||
$scope.disableVideo = typeof config.disableVideo === undefined ? true : config.disableVideo;
|
$scope.disableVideo = typeof config.disableVideo === undefined ? true : config.disableVideo;
|
||||||
|
$scope.forceNetwork = config.forceNetwork;
|
||||||
|
|
||||||
$scope.unitOpts = [{
|
$scope.unitOpts = [{
|
||||||
name: 'Satoshis (100,000,000 satoshis = 1BTC)',
|
name: 'Satoshis (100,000,000 satoshis = 1BTC)',
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ var AddressIndex = require('./AddressIndex');
|
||||||
var PublicKeyRing = require('./PublicKeyRing');
|
var PublicKeyRing = require('./PublicKeyRing');
|
||||||
var TxProposals = require('./TxProposals');
|
var TxProposals = require('./TxProposals');
|
||||||
var PrivateKey = require('./PrivateKey');
|
var PrivateKey = require('./PrivateKey');
|
||||||
|
var copayConfig = require('../../../config');
|
||||||
|
|
||||||
function Wallet(opts) {
|
function Wallet(opts) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
@ -33,6 +34,9 @@ function Wallet(opts) {
|
||||||
throw new Error('missing required option for Wallet: ' + k);
|
throw new Error('missing required option for Wallet: ' + k);
|
||||||
self[k] = opts[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');
|
this.log('creating ' + opts.requiredCopayers + ' of ' + opts.totalCopayers + ' wallet');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ try {
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
var copay = require('../copay'); //node
|
var copay = require('../copay'); //node
|
||||||
}
|
}
|
||||||
|
var copayConfig = require('../config');
|
||||||
var Wallet = require('../js/models/core/Wallet');
|
var Wallet = require('../js/models/core/Wallet');
|
||||||
var Structure = copay.Structure;
|
var Structure = copay.Structure;
|
||||||
var Storage = require('./mocks/FakeStorage');
|
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;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,12 @@ var createBundle = function(opts) {
|
||||||
b.require('./js/models/core/Message', {
|
b.require('./js/models/core/Message', {
|
||||||
expose: '../js/models/core/Message'
|
expose: '../js/models/core/Message'
|
||||||
});
|
});
|
||||||
|
b.require('./config', {
|
||||||
|
expose: '../config'
|
||||||
|
});
|
||||||
|
b.require('./js/models/core/Structure', {
|
||||||
|
expose: '../js/models/core/Structure'
|
||||||
|
});
|
||||||
|
|
||||||
if (opts.dontminify) {
|
if (opts.dontminify) {
|
||||||
//include dev dependencies
|
//include dev dependencies
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue