Образец контракта «Расширенный токен» здесь: https://www.ethereum.org/token
Не работает при развертывании в тестовой сети. Попытка отправить эфир на контракт для покупки токенов приводит к сообщению об ошибке:
Контракт не позволит выполнить эту транзакцию
Ничто в учебнике не объясняет, почему это произошло.
Изменить Итак, я понял проблему. Моя "оплачиваемая" функция называется buy(). Я предполагал, что контракт будет автоматически выбирать платежную функцию при отправке эфира, но похоже, что вам нужна универсальная платежная функция, а не именованная, для получения произвольных эфирных платежей. Как только я удалил имя функции, все заработало.
Изменить: хотя приведенная ниже информация была частью проблемы, конкретное решение приведено выше.
Итак, насколько я могу судить, вот в чем проблема...
Итак, для работы buy() есть несколько вариантов (в порядке возрастания сложности):
Имеет смысл подробно рассмотреть код, просто не уловил аспект адреса владельца, на который ссылается как «msg.sender», в отличие от адреса контракта, на который ссылается как «этот».
После создания контракта первоначальное распределение монет принадлежит владельцу контракта. Вам нужно перевести часть новых монет на сам контракт.
При нулевом балансе контракт не позволит совершить транзакцию.
Ричард Хоррокс
Чистильщик обуви
Ричард Хоррокс
Чистильщик обуви
Чистильщик обуви