Warm tip: This article is reproduced from serverfault.com, please click

Web3 how to subscribe to events? Cannot read property 'currentProvider' of undefined

发布于 2019-03-21 21:07:25

I'm getting following error message when trying to subscribe to Events on a private ethereum blockchain:

Cannot read property 'currentProvider' of undefined

Setup of Web3:

const Web3 = require("web3"); this.web3 = new Web3(Web3.givenProvider || "ws://localhost:8545");

Works:

this.factoryContract.getPastEvents(
  "allEvents",
  {
    fromBlock: 0,
    toBlock: "latest"
  },
  (err, events) => {
    console.log(events);
  }
);

Throws error:

this.factoryContract.events
  .allEvents(
    {
      fromBlock: 0
    },
    (error, event) => {
      console.log(event);
    }
  )
  .on("data", event => {
    console.log(event);
  });

  this.factoryContract.events
  .TaskCreated(
    {
      fromBlock: 0
    },
    (error, event) => {
      console.log(event);
    }
  );

Any ideas how to fix that / what the error is?

Node version: 10.14.2 Web3: 1.0.0

Questioner
Moritz
Viewed
0
Moritz 2019-04-03 23:29:17

This problem is an issue of the current web3 1.0.0.51 release and is supposed to be fixed in the next release. https://github.com/ethereum/web3.js/releases