繁体   English   中英

使用Web 3连接到智能合约时出错

[英]Getting error while connecting to smart contract using web 3

我引用了https://medium.com/@amkurian/interacting-with-ethereum-smart-contracts-through-web3-js-e0efad17977连接到智能合约,在这里我想简单地访问智能合约的get()方法合同。

这是代码:

    <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Web 3</title>
        <link rel="stylesheet" type="text/css" href="index.css">
        <script src="./node_modules/web3/dist/web3.min.js"></script>
    </head>

    <body>
        <div class="container">
            <h1>First Smart Contract</h1>
            <h2 id="instructor"></h2>
            <label for="name" class="col-lg-2 control-label">Instructor Name</label>
            <input id="name" type="text">
            <label for="name" class="col-lg-2 control-label">Instructor Age</label>
            <input id="age" type="text">
            <button id="button">Update Instructor</button>
        </div>
        <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js "></script>

        <script>
            if (typeof web3 !== 'undefined') {
                web3 = new Web3(web3.currentProvider);
            }
            else {
                // set the provider you want from Web3.providers
                web3 = new Web3(new Web3.providers.HttpProvider("http://my_ip_address:8545"));
            }

            web3.eth.defaultAccount = 'account address';

            var CoursesContract = web3.eth.contract(my abi);

            var Courses = CoursesContract.at('my smart contract address');

            console.log(Courses.getName());

        </script>

    </body>

    </html>

But i m getting the below error in the console:
web3.min.js:1 Uncaught Error: CONNECTION ERROR: Couldn't connect to node 

    http://my ip here:8545.
        at Object.InvalidConnection (web3.min.js:1)
        at i.send (web3.min.js:1)
        at s.send (web3.min.js:1)
        at _.e [as call] (web3.min.js:1)
        at c.call (web3.min.js:1)
        at c.execute (web3.min.js:1)
        at index.html:40

请帮助

编辑答案:

运行命令ganache-cli并使其运行。 http:// my_ip_address:8545替换为http:// localhost:8545 /

这样可以解决您的问题。

先前删除的答案:

问题可能是您的ganache本地节点配置不正确或未运行。 您可以在命令行中显示运行ganache-cli的输出吗?

并且,如果您拥有“ my_ip_address”,则可以简单地将其替换为http:// localhost:8545 /

您还可以在浏览器中转到http:// localhost:8545。如果可行 ,您应该会看到“ 400错误的请求”。 如果它不起作用,您将看到无法访问该站点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM