128 lines
2.9 KiB
JavaScript
128 lines
2.9 KiB
JavaScript
|
|
||
|
var GethCommands = function(options) {
|
||
|
this.config = options.config;
|
||
|
this.name = "Go-Ethereum (https://github.com/ethereum/go-ethereum)";
|
||
|
};
|
||
|
|
||
|
GethCommands.prototype.initGenesisCommmand = function() {
|
||
|
var config = this.config;
|
||
|
var cmd = "geth ";
|
||
|
|
||
|
if (config.networkType === 'testnet') {
|
||
|
cmd += "--testnet ";
|
||
|
} else if (config.networkType === 'olympic') {
|
||
|
cmd += "--olympic ";
|
||
|
}
|
||
|
|
||
|
if (config.datadir) {
|
||
|
cmd += "--datadir=\"" + config.datadir + "\" ";
|
||
|
}
|
||
|
|
||
|
if (config.genesisBlock) {
|
||
|
cmd += "init \"" + config.genesisBlock + "\" ";
|
||
|
}
|
||
|
|
||
|
return cmd;
|
||
|
};
|
||
|
|
||
|
GethCommands.prototype.newAccountCommand = function() {
|
||
|
var config = this.config;
|
||
|
var cmd = "geth ";
|
||
|
|
||
|
if (config.networkType === 'testnet') {
|
||
|
cmd += "--testnet ";
|
||
|
} else if (config.networkType === 'olympic') {
|
||
|
cmd += "--olympic ";
|
||
|
}
|
||
|
|
||
|
if (config.datadir) {
|
||
|
cmd += "--datadir=\"" + config.datadir + "\" ";
|
||
|
}
|
||
|
|
||
|
if (config.account && config.account.password) {
|
||
|
cmd += "--password " + config.account.password + " ";
|
||
|
}
|
||
|
|
||
|
return cmd + "account new ";
|
||
|
};
|
||
|
|
||
|
GethCommands.prototype.listAccountsCommand = function() {
|
||
|
var config = this.config;
|
||
|
var cmd = "geth ";
|
||
|
|
||
|
if (config.networkType === 'testnet') {
|
||
|
cmd += "--testnet ";
|
||
|
} else if (config.networkType === 'olympic') {
|
||
|
cmd += "--olympic ";
|
||
|
}
|
||
|
|
||
|
if (config.datadir) {
|
||
|
cmd += "--datadir=\"" + config.datadir + "\" ";
|
||
|
}
|
||
|
|
||
|
if (config.account && config.account.password) {
|
||
|
cmd += "--password " + config.account.password + " ";
|
||
|
}
|
||
|
|
||
|
return cmd + "account list ";
|
||
|
};
|
||
|
|
||
|
GethCommands.prototype.mainCommand = function(address) {
|
||
|
var config = this.config;
|
||
|
var cmd = "geth ";
|
||
|
var rpc_api = ['eth', 'web3'];
|
||
|
|
||
|
if (config.datadir) {
|
||
|
cmd += "--datadir=\"" + config.datadir + "\" ";
|
||
|
}
|
||
|
|
||
|
if (config.networkType === 'testnet') {
|
||
|
cmd += "--testnet ";
|
||
|
} else if (config.networkType === 'olympic') {
|
||
|
cmd += "--olympic ";
|
||
|
}
|
||
|
|
||
|
if (config.networkType !== 'custom') {
|
||
|
cmd += "--networkid " + config.networkId + " ";
|
||
|
}
|
||
|
|
||
|
if (config.account && config.account.password) {
|
||
|
cmd += "--password " + config.account.password + " ";
|
||
|
}
|
||
|
|
||
|
cmd += "--port " + "30303" + " ";
|
||
|
cmd += "--rpc ";
|
||
|
cmd += "--rpcport " + config.rpcPort + " ";
|
||
|
cmd += "--rpcaddr " + config.rpcHost + " ";
|
||
|
//cmd += "--rpccorsdomain=\"" + "localhost" + "\" ";
|
||
|
cmd += "--rpccorsdomain=\"" + "*" + "\" ";
|
||
|
//cmd += "--rpccorsdomain=\"" + config.rpcWhitelist + "\" ";
|
||
|
|
||
|
//"nodiscover": true,
|
||
|
|
||
|
if (config.mineWhenNeeded || config.mine) {
|
||
|
cmd += "--mine ";
|
||
|
}
|
||
|
|
||
|
if (config.whisper) {
|
||
|
cmd += "--shh ";
|
||
|
rpc_api.push('shh');
|
||
|
}
|
||
|
|
||
|
cmd += '--rpcapi "' + rpc_api.join(',') + '" ';
|
||
|
|
||
|
var accountAddress = config.account.address || address;
|
||
|
if (accountAddress) {
|
||
|
cmd += "--unlock=" + accountAddress + " ";
|
||
|
}
|
||
|
|
||
|
if (config.mineWhenNeeded) {
|
||
|
cmd += "js .embark/development/js/mine.js";
|
||
|
}
|
||
|
|
||
|
return cmd;
|
||
|
};
|
||
|
|
||
|
module.exports = GethCommands;
|
||
|
|