在solidity代码中调用USDC的transfer一切正常,但是在调用USDT的transfer方法时会回滚,报错代码如下
在上述代码中我使用IERC20接口并填入usdt的地址,调用transfer方法,向一个交易池发送本合约所有的usdt。但是报错信息如下
其中标记1处查询余额为10000000,之后在标记2处向地址0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc发送10000000个代币,之后报错回滚
这是我的IERC接口代码:
之后,在研究USDT源码时发现transfer方法为了防止短地址攻击,使用了onlyPayLoadSize修饰符,需要数据长度>=68
但是在下方似乎还有一个还没有使用的transfer方法
请问各位大佬,究竟是我代码不满足数据data.length>=68这个条件,还是我调错方法了呢?这两个方法我在调用时究竟调用的是哪个方法呢?如果是data.length长度不够,我应该如何修改代码满足条件呢?