[英]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.