5 请问怎么知道solidity智能合约,转入的是什么ERC20代币

我写了一个智能合约,我想记录当前发送者的地址以及他转的ERC20代币地址和数量信息。

能通过 msg.calldata 解析出来吗? 我现在只能拿到 msg.sender msg.value。

比如:

A 转入 100 USDT 到我这个合约,我想在合约里记录 A 转入了 100 USDT B 转入 50 BABYDOGE ,我的合约就自动记录 B 转入了 50 BABYDOGE

现在,我只能记录他们转进来的ETH,ERC20代币 这块我不会弄。有大神可能帮帮忙吗?我可以发一个小红包 表示感谢

请先 登录 后评论

最佳答案 2021-08-04 18:55

如果是标准的 ERC20 合约, 那目标合约在接收代币时,不会有任何反应,没法做这样的记录。

通常的做法是,让用户先授权, 然后在你的合约用 transferFrom 转账。

针对这个问题, 也有一些改良的代币标准,例如 ERC777

请先 登录 后评论

其它 2 个回答

子衿 - 区块链研发工程师
请先 登录 后评论
czl
请先 登录 后评论
  • 3 关注
  • 0 收藏,486 浏览
  • 吉梦良 提出于 2021-08-02 19:46