Backend-разработка

Присоединяйтесь к нашей программе обучения

Задание 7 (Практические задания по Plutus)

К выполнению заданий можно приступать после 6 лекции по Plutus из программы обучения.

Задание 1

Задания в тестнете: для понимания как выглядят скрипты, как хранятся utxo, как считаются fee и collateral

Описание заданий: https://github.com/input-output-hk/Alonzo-testnet (1, 3, 4, 5 задания)

При выполнении можно ориентироваться на https://github.com/olgaklimenko/Alonzo-testnet-solutions, но некоторые решения возможно там устарели.

Задание 2

Задание с повышенной сложностью, обязательно к выполнению.

Описание задания: создать Faucet приложение (написать faucet), которое выдаёт средства по запросу со специальными ApiKey (по одному ключу выдаем 10,000 lovelace, по другому - 100,000 lovelace). Использовать PAB, режим симуляции. Добавить тесты.

Важно: для того, чтобы использовать faucet нужно заплатить комиссию за транзакцию (сам faucet будет работать только для кошельков, которые могут оплатить комиссию). Но т.к. в симуляции используются моковые кошельки, это не проблема - на них изначально есть средства для оплаты комиссии.

Требования к выполнению:

Создать Faucet. Сделать так, чтобы какое-то определенное количество ADA было зафиксировано на каком-нибудь адресе скрипта. Сделать это через cli, сделать раздачу ADA на тестнете с помощью Cardano Wallet и PAB. Дополнительно придумать как можно ограничить выдачу ADA (кол-во) на 1 пользователя в течение ограниченного периода времени (в течение 1 часа, 1 дня, например).

Срок выполнения: 1-1,5 недели

Задание 4

NFT маркетплейс (без стейт машин)

Описание задания: реализовать NFT marketplace (PAB-приложение для минтинга и купли-продажи NFT).

Требования к выполнению:

  • Любой пользователь Cardano может сминтить NFT для любого файла (предположим, что он залил свой файл на IPFS (https://docs.ipfs.io/concepts/what-is-ipfs/) и получил уникальный IPFS contentId - его можно использовать для создания NFT).

  • Владелец NFT может выставить его на продажу, также может закрыть продажу, пока покупатель не откликнулся и вернуть NFT обратно себе.

  • Любой пользователь Cardano может купить NFT и стать его новым владельцем (например продать его по новой цене).

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

При желании можно задеплоить в тестнет и в нем прогнать, но это не обязательно.

Срок выполнения: 2-3 недели

менеджер программы обучения

По любым вопросам по программе обучения пишите Светлане в Telegram