如何监控何时调用智能合约函数?最好使用ethers.js或web3.js



我有一些实例想要监视智能合约函数调用,但我不完全确定如何进行。我已经通读了ethers.js和web3.js的文档,但还没有弄清楚什么。

例如,Etherscan为与函数调用对应的每个事务显示"transfer"、"approve"、"mint"等方法。如何在调用特定合同时监视特定合同?

您应该编写一个事件。例如:

event Transfer(
address indexed _from,
address indexed _to,
uint _value
);

然后在传递函数中调用它:

function transfer(address _to, uint _value) public returns (bool success){
// run some logic
// if you reached here, means everyting went ok
emit Transfer(msg.sender,_to,_value);
return true;
}

欲了解更多信息,请阅读What are Solidity Events

似乎您可以使用testnet上的txn收据数据和txn跟踪数据(例如,alchemy提供了一个API来访问它(来监控无事件的智能合约函数调用。

阅读以下内容可能会有所帮助:https://forum.openzeppelin.com/t/how-does-defender-listens-to-function-calls-on-smart-contracts/30446

相关内容

  • 没有找到相关文章

最新更新