209 похожих чатов

ЗАДАЧА: Есть игровое действие, которое требует для выполнения оплаты некоторого количества

3-я различными токенами. Назовем это золото, дерево и хлеб. Все эти токены - отдельные ERC20.
Они есть на адресе игрока. игрок кликает "выполнить" на действии. как бы выглядел процесс без наличия внутриигрового счета?

ПРЕДЛОЖЕНИЕ:
Есть идея сделать внутриигровой счет игрока, на котором учитываются ресурсы. Все ресурсы - erc777 токены. ресурсы можно вывести или ввести в/из контракта. Все игровые действия осуществляются на основе внутриигрового состояния счета.
В таком случаем нам не нужно делать много транзакций для запуска игрового действия и мы можем заранее проверить возможно ли данное действие для данного игрока.
777 используется для возможности нотификации контракта о транзацкии. Я так понимаю, что в erc20 просто переписывается состояние счета владельца токена, но нет нотификации.
777 выглядит подходящим вариантом и предоставляет это. При транзацкии со счета в игровой контракт мы высылаем нотификацию в контракт (и изменяется внутриигровой баланс игрока).
А при выводе ИЗ контракта на счет - мы сначала запрашиваем соотв уменьшение внутриигрового счета, и если удачно - то меняем балансы в котракте токена.

2 ответов

28 просмотров

Вот накидал концепт как можно было бы получить approveAndCall, но штука сложная, проще пермит использовать: https://gist.github.com/k06a/0ea02ecd824bd3d44c760825b62bc264

Похожие вопросы

Обсуждают сегодня

Карта сайта