Here is my code in which error is coming please help me out.

initContract: function () {
    $.getJSON('Election.json', function (data) {
      // Get the necessary contract artifact file and instantiate it with truffle-contract
      var ElectionArtifact = data;
      App.contracts.Election = TruffleContract(ElectionArtifact);

      // Set the provider for our contract

      // Listen for events in the contract

      web3.currentProvider.publicConfigStore.on('update', function (result) {
        if (result.selectedAddress != App.yourAddress) {


      return App.showResult();
    return App.bindEvents();

error in console is:

Uncaught TypeError: Cannot read property 'on' of undefined
  • The only place where on is used is here web3.currentProvider.publicConfigStore.on(.. the error means web3.currentProvider.publicConfigStore is undefined, or it was never initialized properly.
    – Ismael
    Commented Jun 15, 2021 at 3:28
  • @Ismael then what should I do to rectify this error. Commented Jun 22, 2021 at 6:54
  • From the MetaMask documentation about removal of ethereum.publicConfigStore you have to update the code to replace it with a new api, probably ethereum.on('accountsChanged', handleAccountsChanged);.
    – Ismael
    Commented Jun 22, 2021 at 22:48
  • Perhaps this should help ethereum.stackexchange.com/questions/42768/…
    – Ismael
    Commented Jun 23, 2021 at 16:27


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.