В данном репозитории находятся материалы которые должны упростить процесс знакомства с Juster и предложить участникам хакатона возможные пути решения представленного челленжа.
Сервис позволяющий взаимодействовать с Juster используя информацию о событиях и ставках пользователей, например, ревард программа распределения токенов между пользователями, комбинированные ставки, арбитраж ставок
Juster это платформа позволяющая пользователям взаимодействовать на рынке рисков и ставок в различных ролях: создавая события, предоставляя ликвидность и делая ставки в отношении исходов этих событий. Принципы работы протокола описаны в документации
На момент старта хакатона Juster состоит из одного смарт-контракта развернутого в тестовой сети Tezos hangzhou2net по адресу: KT197iHRJaAGw3oGpQj21YYV1vK9Fa5ShoMn
- Event (ивент, событие) - структура данных в Juster, описывающая событие (динамика изменения курса валютной пары за определённый период), которое может иметь два результата: событие реализовано в соответствии с заданными характеристиками или нет
- Views - механизм взаимодействия между смарт-контрактами, позволяющий сторонним контрактам считывать информацию о состоянии контракта реализовавшего onchain views
Предложенная на хакатоне задача предлагает участникам сделать свой сервис который будет интегрироваться с Juster-ом используя его contract views:
getNextEventId
- позволяет получить id по которому будет доступен следующий ивент, который будет создан Juster-ом. Эта информация может использоваться для создания новых ивентов используя сторонний смарт-контракт с сохранением в нём id вновь созданных ивентовgetPosition
- позволяет получить информацию о предоставленной ликвидности и сделанных ставках по адресу пользователя и id событияgetEvent
- позволяет получить информацию о текущем статусе и характеристиках события по его idisParticipatedInEvent
- позволяет узнать участвовал ли пользователь в ивенте по его адресу и id события
- Ревард-программа вознаграждающая участников протокола за ставки и предоставление ликвидности. Награды могут быть в виде xtz, NFT или FT токенов, условия выдачи награды могут быть любыми.
- DeFi инструмент который делает ставки / предоставляет ликвидость или делает комбинированные операции при наступлении определённых условий.
- Агрегатор ликвидности пользователей.
- Арбитраж ставок с помощью смарт-контракта.
- Опубликованный репозиторий с кодом решения, включющий в себя:
- смарт-контракт интегрированный с onchain views Juster. Данный контракт должен реализовать интересную и/или полезную логику, расширяющую возможности протокола. Для написания контракта желательно использовать язык LIGO.
- приложение UI позволяющее взаимодействовать с этим контрактом
- Смарт контракт должен быть задеплоен в сети hangzhou2net
- Ссылка на работающее веб приложение позволяющее пользователям взаимодействовать с этим смарт контрактом будет преимуществом
- Наличие тестов на смарт конракт будет преимуществом
- reward.ligo - пример reward-программы использующей Juster onchain views
- reward.tz - пример скомпилированной в Michelson reward-программы. Для компиляции использовалась docker версия LIGO:
docker run --rm -v "$PWD":"$PWD" -w "$PWD" ligolang/ligo:0.33.0 compile contract contract-example/reward.ligo -e main --protocol hangzhou > contract-example/reward.tz
- test.py - пример тестов для reward-программы написанных с использованием библиотеки PyTezos. Для запуска тестов требуется также установить библиотеку pytest:
pip install wheel setuptools pkginfo cryptography
pip install pytezos
pip install pytest
pytest contract-example/test.py
- deploy.py - пример скрипта выполняющего деплой reward-программы в сети hangzhounet. Для исполнения необходимо установить PyTezos. Также для запуска требуется наличие приватного ключа с токенами в тестовой сети (скрипт его ищет под именем
key.json
), который можно получить используя faucet
python contract-example/deploy.py