embark/lib/config/blockchain.js

55 lines
1.3 KiB
JavaScript
Raw Normal View History

2015-06-28 13:59:17 +00:00
var readYaml = require('read-yaml');
BlockchainConfig = function() {};
BlockchainConfig.prototype.loadConfigFile = function(filename) {
try {
this.blockchainConfig = readYaml.sync(filename);
} catch (e) {
throw new Error("error reading " + filename);
}
return this;
2015-07-04 02:41:39 +00:00
};
2015-06-28 13:59:17 +00:00
BlockchainConfig.prototype.loadConfig = function(config) {
this.blockchainConfig = config;
return this;
2015-07-04 02:41:39 +00:00
};
2015-06-28 13:59:17 +00:00
BlockchainConfig.prototype.config = function(env) {
if (this.blockchainConfig === null) {
throw new Error("no blockchain config found");
}
var config = this.blockchainConfig[env || "development"];
var networkId;
if (config.network_id === undefined) {
2015-07-04 02:41:39 +00:00
networkId = Math.floor((Math.random() * 100000) + 1000);
2015-06-28 13:59:17 +00:00
}
else {
2015-07-04 02:41:39 +00:00
networkId = config.network_id;
2015-06-28 13:59:17 +00:00
}
config = {
rpcHost: config.rpc_host,
rpcPort: config.rpc_port,
gasLimit: config.gas_limit || 500000,
gasPrice: config.gas_price || 10000000000000,
rpcWhitelist: config.rpc_whitelist,
minerthreads: config.minerthreads,
genesisBlock: config.genesis_block,
2015-06-28 13:59:17 +00:00
datadir: config.datadir,
networkId: networkId,
2015-07-30 01:40:49 +00:00
maxPeers: 4,
2015-06-28 13:59:17 +00:00
port: config.port || "30303",
console_toggle: config.console || false,
mine_when_needed: config.mine_when_needed || false,
account: config.account
}
return config;
2015-07-04 02:41:39 +00:00
};
2015-06-28 13:59:17 +00:00
2015-07-04 02:41:39 +00:00
module.exports = BlockchainConfig;