【问题标题】:How to listen permanently to events in a smart contract from node.js Application?如何从 node.js 应用程序永久监听智能合约中的事件?
【发布时间】:2020-10-02 04:35:05
【问题描述】:

我有一个 node js 应用程序,它具有以下代码:

contract.getPastEvents('RequestCreated', function (error, event) { console.log(event); })
        .then(function (events) {
            console.log(events); 
        })

运行节点后,我得到一个空数组。

我的期望是一旦发出智能合约中的事件,就可以得到变量requestCount 的值

    function createRequest(string memory _fileHash) public {
        requestCount++;
        fileHash[requestCount] = _fileHash;
        emit RequestCreated(requestCount);
    }

我的问题是如何从节点 js 应用程序监听智能合约中发生的事件?

我使用的是 Web3 Version > 1,所以手表功能不适合我。

【问题讨论】:

    标签: node.js events solidity smartcontracts web3js


    【解决方案1】:

    有一个 event.watch() 功能和一个关于如何使用它的在线教程。 https://coursetro.com/posts/code/100/Solidity-Events-Tutorial---Using-Web3.js-to-Listen-for-Smart-Contract-Events

    从教程中剪掉:

    var instructorEvent = Coursetro.Instructor();
    instructorEvent.watch(function(error, result){
                if (!error)
                    {
                        $("#loader").hide();
                        $("#instructor").html(result.args.name + ' (' + result.args.age + ' years old)');
                    } else {
                        $("#loader").hide();
                        console.log(error);
                    }
            });
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-01
    • 2018-08-01
    • 2021-08-31
    • 2021-10-31
    • 1970-01-01
    • 2022-12-17
    • 2018-03-07
    • 2012-09-23
    相关资源
    最近更新 更多