Search code examples
javascriptnode.jsethereumweb3js

TypeError: Cannot read property 'HttpProvider' of undefined while deploying solidity contract using nodejs


I have below nodejs code to deploy smart contract from a file into local private ethereum network.

    const fs = require('fs');
    const Web3 = require('web3');
    const solc = require('solc');
    const web3 = new Web3();

    web3.setProvider(web3.providers.HttpProvider('http://localhost:8545'));

    const address = web3.eth.accounts[0];

    const code = fs.readFileSync('../Calculator.sol').toString()
    const compiledCode = solc.compile(code)

    const abiDefinition = JSON.parse(compiledCode.contracts[':Calculator'].interface)
    const byteCode = compiledCode.contracts[':Calculator'].bytecode

    const CalcContract = web3.eth.contract(abiDefinition)

I've below dependencies in package.json

    "dependencies": {
        "ethereumjs-testrpc": "^6.0.3",
        "fs": "0.0.1-security",
        "solc": "^0.5.9",
        "web3": "^1.0.0-beta.55"
    }

When I run the program I get below error at line web3.setProvider(web3.providers.HttpProvider('http://localhost:8545'));

    [raj@localhost first_truffle_project]$ sudo node js/example_deployer.js 
    /home/raj/Coding/Ethereum/first_truffle_project/js/example_deployer.js:6
    web3.setProvider(web3.providers.HttpProvider('http://localhost:8545'));
                                    ^

    TypeError: Cannot read property 'HttpProvider' of undefined
        at Object.<anonymous> (/home/raj/Coding/Ethereum/first_truffle_project/js/example_deployer.js:6:33)
        at Module._compile (internal/modules/cjs/loader.js:776:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
        at Module.load (internal/modules/cjs/loader.js:653:32)
        at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
        at Function.Module._load (internal/modules/cjs/loader.js:585:3)
        at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
        at startup (internal/bootstrap/node.js:283:19)
        at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

What is wrong with my program? How can I resolve this error?


Solution

  • Try like this :

    web3 = new Web3(new Web3.providers.HttpProvider('node-url'))