我想监控事件发生在链上的一个具体的智能合同。我想知道每次Transfer事件发生的时候。我试图用硬帽子编写代码,但如果被记录,则不会发生事件。这是我的代码:
const abi = [
"event Transfer(address indexed from, address indexed to, uint256 indexed id)"
]
const MyContract = await new hre.ethers.Contract(
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
abi,
hre.ethers.provider
)
MyContract.on("Transfer", (from, to, id) => {
console.log("Transfered:", from, to, id)
})
console.log("monitoring...")我知道区块链中发生了一些事件,但我的代码并没有跟踪它们。我做错了什么?
发布于 2022-12-06 14:17:51
filter = {
address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
topics: [
utils.id("Transfer(address,address,uint256)")
]
}
provider.on(filter, (log, event) => {
// Emitted whenever a token transfer occurs
})尝试像这样更新函数,只要提供者发出这样的事件,您就能够监视传输事件。
发布于 2022-12-06 14:34:19
炼金术有一些很好的监控工具,所有这些工具都为有限的测试目的提供了一个免费帐户。
例如,如果您想简单地监视事务,它们的SDK允许一个eth_getTransactions调用,例如,您可以在其中指定一个to地址。
网上有很多教程,取决于你想要达到的目标。
如果你在某一时刻脱困,贴上你的问题并给我贴上标签--我会尽我所能帮你:
https://ethereum.stackexchange.com/questions/140704
复制相似问题