簡體   English   中英

為什么這些以太坊合約沒有席卷 USDT?

[英]Why are these Ethereum Contracts not sweeping USDT?

我有一個名為 controller 的 Eth 合約,用於:

  1. 生成新的 eth 存款地址,每個用戶一個,這也是一個 eth 合約。
  2. 當用戶向他們存入 eth 或 erc20 代幣時,掃描這些存款合約。 資金最終進入另一個中央 eth 賬戶。

許多 erc20 代幣似乎運行良好,但 USDT 存款交易被恢復: https://etherscan.io/address/0x3cd5a0dc36a8f22011193f2a03910aa8260e64db

如果沒有這些合約的原始源代碼(雖然我有 JSON ABI),很難說:

  1. 為什么 USDT 失敗。
  2. 如果這些真的可以支持 USDT,或者這樣做會涉及什么。

如果有人能指出正確的方向,將不勝感激!

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM