initialize web3 in the whisper module itself; use defined configuration

This commit is contained in:
Iuri Matias 2018-06-01 17:40:51 -04:00
parent 8d985ce60a
commit 152dfe2815
1 changed files with 12 additions and 2 deletions

View File

@ -1,5 +1,6 @@
let utils = require('../../utils/utils.js');
let fs = require('../../core/fs.js');
let Web3 = require('web3');
class Whisper {
@ -8,18 +9,27 @@ class Whisper {
this.events = embark.events;
this.communicationConfig = embark.config.communicationConfig;
this.addCheck = options.addCheck;
// TODO: this should not be needed and should be deducted from the config instead
this.web3 = options.web3;
this.web3 = new Web3();
this.embark = embark;
this.connectToProvider();
this.setServiceCheck();
this.addWhisperToEmbarkJS();
this.addSetProvider();
}
connectToProvider() {
let { host, port } = this.communicationConfig.connection;
let web3Endpoint = 'ws://' + host + ':' + port;
this.web3.setProvider(new Web3.providers.WebsocketProvider(web3Endpoint, {headers: {Origin: "http://localhost:8000"}}));
}
setServiceCheck() {
const self = this;
self.addCheck('Whisper', function (cb) {
if (!self.web3.currentProvider || self.web3.currentProvider.connection.readyState !== 1) {
return self.connectToProvider();
}
self.web3.shh.getVersion(function (err, version) {
if (err || version == "2") {
return cb({name: 'Whisper', status: 'off'});