solidity - 是否有在 transferFrom 上触发的回调函数?
问题描述
- 我有一个
contract A
5 wETH。 - 我已批准
contract B
从contract A
Contract B
来电wETH.transferFrom(Contract A, address(this), 1wETH);
有没有办法拦截这个transferFrom()
调用contract A
?当 B 向 A 发送资金时,会在 A 中触发类似于后备功能的东西。
解决方案
contract A
无法拦截交易,因为contract A
在令牌传输期间从未调用过。
有关代币余额和批准的信息存储在wETH
合约存储中,实际transfer()
功能(以及此交易导致的状态更改)也仅在wETH
合约上下文中执行。
因此,代币转移只是从contract B
to的调用wETH
。然后wETH
产生状态变化反映:
contract A
地址的代币余额减少- 接收地址的代币余额增加
- 批准花费
contract A
的代币数量减少contract B
推荐阅读
- c - `printf()` 中格式说明符“%qd”的用途是什么?
- php - 如何在 php 中获取 Sql Not Null 字段?
- vb.net - 如何在类中添加点击事件 vb.net
- asp.net-mvc - 如何在部分视图asp.net mvc中编写客户端自定义java脚本进行验证
- ajax - 更改选择框值不能应用于使用 ajax 和 jquery 的标签
- jquery - 如何在图像的宽度上制作花式框标题?
- python - 如何使用 python 检索令牌
- go - 在括号中初始化 Go 结构有什么作用?
- java - 如何从 Spring Boot maven 项目中删除或隐藏目标文件?
- c# - CardView中的Xamarin Recyclerview按钮,无法获取位置