- Написать смарт-контракт по стандарту ERC-20.
- Протестировать контракт с полным покрытием тестов.
- Написать скрипт деплоя.
- Написать таски.
- Задокументировать контракт по формату NatSpec.
Необходимо реализовать смарт контракт, который будет вызывать байт код функции по средством голосования пользователей.
Для участия в голосовании пользователям необходимо внести токены для голосования. Вывести токены с DAO пользователи могут в любой момент, при соблюдении определенных условий. Любой пользователь может предложить свое голосование. Для участия в голосовании пользователю необходимы токены, один токен один голос. Пользователь может участвовать в голосовании одни теми же токенами, то есть пользователь внес 100 токенов он может участвовать в голосовании №1 всеми 100 токенами и в голосовании №2 тоже всеми 100 токенами.
Финишировать голосование может любой пользователь по прошествии определенного количества времени. Пользователь может делегировать свои голоса другому участнику на определенное голосование.
Обязательный функционал:
- Депозит токенов
- Добавление нового голосования обязательные поля: • description - описание предложения; • recipient - адрес контракта на который будет отправлена транзакция. • byteCode - сигнатура функции
- Голосование за конкретное предложение
- Финиширование голосования => при удачном голосование должен произойти вызов сигнатуры функции. Голосование считается успешным если число проголосовавших было больше minimumQuorum и большинство проголосовало «ЗА». Также голосование можно завершить после того как пройдет 3 дня.
- Передача права голоса по конкретному голосованию.
- Вывод токенов с DAO возможен после то