当某些ERC20令牌被转移到我的智能契约时,有什么方法可以检测到吗?
我想做的是:
例如,
。
谢谢你的任何想法。
发布于 2022-09-03 08:10:51
ERC-20没有任何标准的方式通知接收方合同的传入转移。
它会发出Transfer事件日志,但这些日志只能从一个离链应用程序中读取。
因此,最简单的onchain解决方案是在执行合同中的自定义函数时提取令牌。请注意,此方法需要先得到令牌持有者的批准。
pragma solidity ^0.8;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract MyContract {
IERC20 public immutable token;
constructor(IERC20 _token) {
token = _token;
}
function transferIn() external {
bool success = token.transferFrom(msg.sender, address(this), 100 * 1e18);
// TODO set your mapping, etc.
}
}https://stackoverflow.com/questions/73583851
复制相似问题