首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >智能契约-检测erc20令牌入站

智能契约-检测erc20令牌入站
EN

Stack Overflow用户
提问于 2022-09-02 14:09:26
回答 1查看 171关注 0票数 -1

当某些ERC20令牌被转移到我的智能契约时,有什么方法可以检测到吗?

我想做的是:

例如,

  • (某人传输100 (ERC20令牌))(定期转移到智能契约地址,而不是通过智能契约方法)

  • I将这100个地址(用户)余额除以5个地址(用户)余额(每个用户得到20个)映射(地址=> uint256)私有_balances;

  • ,然后每个用户可以提取这些令牌

谢谢你的任何想法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-03 08:10:51

ERC-20没有任何标准的方式通知接收方合同的传入转移。

它会发出Transfer事件日志,但这些日志只能从一个离链应用程序中读取。

因此,最简单的onchain解决方案是在执行合同中的自定义函数时提取令牌。请注意,此方法需要先得到令牌持有者的批准。

代码语言:javascript
复制
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.
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73583851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档