Почему эти Ethereum контракты не охватывают USDT? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть Eth-контракт, называемый контроллером, который используется для:

  1. Создание новых адресов депозита Eth, по одному для каждого пользователя, что также является контрактом Eth.
  2. Сдать эти депозитные контракты, когда пользователь передает им токены eth или erc20. Средства попадают на другой центральный счет.

Некоторые токены erc20, кажется, работают отлично, но депозитные транзакции USDT возвращаются: https://etherscan.io/address/0x3cd5a0dc36a8f22011193f2a03910aa8260e64db

Без исходного исходного кода для этих контрактов (хотя у меня есть JSON ABI), трудно сказать:

  1. Почему он не работает для USDT.
  2. Если они на самом деле может поддержать USDT или что это потребует для этого.

Если кто-то может указать правильное направление, это будет оценено!

Контракт контроллера: 0xEb818C6a48cCd60A8078aaa 20997cC3CB2538C9E

Другой контракт, связанный с контроллером, называется defaultSweeper: 0x8e7ABAF1316A0edB985e494F572Fdf148e8a7E93

РЕДАКТИРОВАТЬ: Кажется, что в контракте USDT отсутствуют некоторые методы erc20. Как transfer См .: https://erc20-verifier.openzeppelin.com/ Почему это?

1 Ответ

0 голосов
/ 09 апреля 2020

Контракт Tether был развернут до того, как стандарт ERC20 был завершен. Некоторые функции не следуют спецификациям, например, Transfer должен возвращать логическое значение, а это не так.

В последних версиях sol c будет проверен верный размер возвращаемых данных (с 0,5, я думаю).

Я предполагаю, что ваш контракт был составлен с использованием последней версии Solidness и использует стандартный интерфейс ERC20. И это терпит неудачу, потому что Tether ничего не возвращает, и он ожидает значение bool.

Вы не можете ничего сделать. Либо Тетер должен обновить свой контракт, либо контракт контроллера должен быть изменен, чтобы не проверять размер контракта. См. SafeERC20 от OpenZepplin, они реализовали обертку вокруг ERC20, которая позволяет взаимодействовать с токенами, которые не соответствуют стандарту.

...