Смарт-контракт, который принимает пользовательский токен

Я успешно создал свой собственный токен в тестовой сети Rinkeby. После создания токена я отправил все новые монеты на свой кошелек. Я могу отправить новый токен на другие кошельки, и он появится.

Однако у меня возникли трудности с написанием смарт-контракта для принятия нового токена. Я отправил токен со своего кошелька на адрес контракта, и он был подтвержден. Однако в контракте я не вижу, что он получил токен.

Ответы (2)

Вы должны прочитать это

Процесс более сложный, но он все еще делает свою работу, поэтому я думаю, что оно того стоит.

В настоящее время стандарт токенов ERC-20 не указывает, как уведомлять контракт, когда им отправляются токены.

Есть предложение ERC-223 с новой спецификацией, которая устанавливает, как уведомлять, когда средства отправляются на контракт.

Обходные пути с использованием ERC-20 включают двухэтапную процедуру:

  1. token.approve(contractAddress, amount, { from: userAddress })Пользователь утверждает контракт на получение заданного количества токенов
  2. contract.purchase(token, amount)Пользователь вызывает контракт, чтобы указать, что он был утвержден (название функции зависит от контракта).

    2.1 token.transferFrom(msg.sender, this, amount)Контракт передачи токена от пользователя к контракту в указанном количестве