TypeError: Невозможно прочитать свойство 'HttpProvider' с неопределенным значением при развертывании контракта на надежность с использованием nodejs - PullRequest
0 голосов
/ 24 июня 2019

Ниже приведен код nodejs для развертывания интеллектуального контракта из файла в локальной частной сети ethereum.

    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)

У меня ниже зависимости в package.json

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

Когда язапустить программу, которую я получаю ниже ошибка в строке 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)

Что не так с моей программой?Как я могу устранить эту ошибку?

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Убедитесь, что ваша версия Web 3 в файле package.json

"web3": "^1.0.0-beta.37"

и я считаю, что вы хотите что-то подобное.(Обратите внимание на заглавные буквы.)

var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));
1 голос
/ 24 июня 2019

Попробуй так:

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