首页 > 解决方案 > 是否有在 transferFrom 上触发的回调函数?

问题描述

有没有办法拦截这个transferFrom()调用contract A?当 B 向 A 发送资金时,会在 A 中触发类似于后备功能的东西。

标签: soliditysmartcontracts

解决方案


contract A无法拦截交易,因为contract A在令牌传输期间从未调用过。

有关代币余额和批准的信息存储在wETH合约存储中,实际transfer()功能(以及此交易导致的状态更改)也仅在wETH合约上下文中执行。

因此,代币转移只是从contract Bto的调用wETH。然后wETH产生状态变化反映:

  • contract A地址的代币余额减少
  • 接收地址的代币余额增加
  • 批准花费contract A的代币数量减少contract B

推荐阅读