I've developed my own private chain for testnet using geth and CLique and i have some issues with web3.js environment. I starts my nodes using the console parameter in order to get to the Web3 console but now i discovered that some functions doesn't work. For example, i call the contract using


but if, following the doc i use

new web3.eth.Contract(jsonInterface[, address][, options])

it doesn't work, returning

"Contract is not a function".

Or again, if i try to call myContract.options i get an error back.The same happens for example with the web3.eth.getPastLogs(options [, callback])

Anyway, it looks like my web3 is not complete or something is missing. How can i solve that? Since geth encapsulates a console environment i thought it was enough, am i missing something?

Thanks guys

  • 1
    This is a problem of web3 version, not of geth or private chain – Ayushya Apr 20 '18 at 18:07

Change the web3 version by running following command in the project directory:

npm install web3@0.20

The latest web3 which is 1.0 has many changes. And most of the sources you find for web3 have explained according to the old version.

  • thank you. In which folder i have to run it? The project folder containing nodes or inside nodes folders instead (where the geth folder is) ? – rollotommasi Apr 21 '18 at 8:33
  • In your project folder. Where there is contracts directory. I am assuming you are using truffle to build the project. If it's otherwise, let me know. – Ayushya Apr 21 '18 at 8:35
  • No i'm not using truffle. I deploy in the old fashion using web3deploy code plus the json interface (abi) for calling the smart cotract – rollotommasi Apr 21 '18 at 9:07
  • Then I guess you might be using a globally installed web3. For that you can change its version by npm install -g web3@0.20 – Ayushya Apr 21 '18 at 9:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.