35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
const {app, dialog, BrowserWindow} = require('electron')
|
|
const child_process = require('child_process');
|
|
const path = require('path');
|
|
|
|
class Geth {
|
|
constructor() {
|
|
this.gethProcess = null;
|
|
}
|
|
|
|
startGeth() {
|
|
// get the path of get and execute the child process
|
|
try {
|
|
const gethPath = path.join(app.getPath('userData'), 'geth');
|
|
this.gethProcess = child_process.spawn(gethPath, ['--ws', '--wsorigins', '*', '--wsaddr', '127.0.0.1', '--wsport', '8546', '--wsapi', 'admin,db,eth,net,miner,personal,web3']);
|
|
this.gethProcess.on('error', function(err) {
|
|
dialog.showErrorBox("Error starting application", "Geth failed to start!");
|
|
});
|
|
this.gethProcess.stderr.on('data', function(data) {
|
|
console.log(data.toString());
|
|
});
|
|
this.gethProcess.stdout.on('data', function(data) {
|
|
console.log(data.toString());
|
|
});
|
|
} catch (e) {
|
|
dialog.showErrorBox("Error starting application", e);
|
|
app.quit();
|
|
}
|
|
}
|
|
|
|
stopGeth() {
|
|
this.gethProcess.kill('SIGINT');
|
|
}
|
|
}
|
|
|
|
EthoGeth = new Geth(); |