[英]Why are these Ethereum Contracts not sweeping USDT?
我有一个名为 controller 的 Eth 合约,用于:
许多 erc20 代币似乎运行良好,但 USDT 存款交易被恢复: https://etherscan.io/address/0x3cd5a0dc36a8f22011193f2a03910aa8260e64db
如果没有这些合约的原始源代码(虽然我有 JSON ABI),很难说:
如果有人能指出正确的方向,将不胜感激!
Controller 合约:0xEb818C6a48cCd60A8078aaa20997cC3CB2538C9E
另一个涉及到 controller 的合同,称为 defaultSweeper: 0x8e7ABAF1316A0edB985e494F572Fdf148e8a7E93
编辑:似乎 USDT 合约缺少一些 erc20 方法。 赞transfer
见: https://erc20-verifier.openzeppelin.com/这是为什么?
在 ERC20 标准最终确定之前部署了 Tether 合约。 有些函数不符合规范,例如 transfer 应该返回 boolean 而它没有。
最近版本的 solc 将检查返回的数据大小是否正确(我认为是 0.5)。
我的猜测是你的合约是用最新版本的solidity编译的,它使用标准的ERC20接口。 它失败了,因为 Tether 什么都不返回,它期待一个 bool 值。
你无能为力。 Tether 应该升级其合约,或者必须修改 controller 合约以不检查合约大小。 请参阅OpenZepplin的 SafeERC20,他们实现了围绕 ERC20 的包装器,允许与不符合标准的令牌进行交互。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.