0

我的 NFT 项目架构只有在发生铸币事件时minted才会发出事件,然后我想收听该事件,因此我触发了 JSON 内容的上传,然后令牌所有者可以看到该内容(因为任何人都可以可能通过基本上访问来访问所有令牌的内容,baseURI/tokenID并且我想在铸造之前将令牌的稀有性保密)。

我想创建一个函数来持续监听事件中的新minted事件。我正在尝试使用以下实现来访问新事件,因为我找不到持续侦听来自合同的事件的实现。

async function listener() {
    events = nftContract.getPastEvents("minted",{fromBlock: 1}, function(err,res) {
        console.log(res);
    })

创建一个继续从合约中轮询事件的函数的最佳方法是什么?

4

1 回答 1

0

解决方案的完整代码是这样的:

const ethers = require('ethers');
const CONTRACT_ADDRESS = "0x10820dB......";
const ABIJSON = JSON.parse('{"_format": "hh-sol-artifact-1", "contractName": "testcontract", "....}')
provider = new ethers.providers.AlchemyProvider("ropsten");
const contract = new ethers.Contract(CONTRACT_ADDRESS, ABIJSON.abi, provider);

contract.on("eventName", ( caller,tokenID) => {
      //this section is called every time an event is emitted 
})
于 2021-10-14T09:54:30.380 回答