繁体   English   中英

如何从 node.js 应用程序永久监听智能合约中的事件?

[英]How to listen permanently to events in a smart contract from node.js Application?

我有一个节点 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 版本 > 1,因此手表 function 不适合我。

有一个 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);
                }
        });

暂无
暂无

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

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