NFT interaction service
Стек:
- Язык: Python 3.11
- Web framework: Django 3+ & DRF
- Database: SQLite
- Blockchain framework: Web3.py
- Blockchain: Ethereum (Goerli Testnet)
- Контейнеризация: Docker
- Документация: Swagger - drf-yasg
Реализовано
-
Модель БД
- id - primary key
- unique_hash - уникальный хэш
- tx_hash - хэш транзакции создания токена
- media_url - урл с произвольным изображением
- owner - адрес пользователя в сети Ethereum
-
API /tokens/list Метод запроса: GET. Это API должно выдавать список всех обьектов модели Token
-
API /tokens/total_supply Метод запроса: GET Это API должно обращаться к контракту в блокчейне и выдавать в ответе информацию о текущем Total supply токена - общем числе находящихся токенов в сети. Форма ответа - произвольная, в JSON-формате. Минимальный базовый пример ответа - {"result": 10000}
-
API /tokens/create Метод запроса: POST Это API должно создавать новый уникальный токен в блокчейне и записывать параметры запроса в БД. Запрос должен принимать:
- media_url - урл с произвольным изображением
- owner - Ethereum-адрес будущего владельца токена
Конфигурирование и запуск
- Скачать и распаковать репозиторий.
- Отредактировать
config.yml
с указанием своих параметров - В командной строке последовательно выполнить команды:
docker build -t nft_service .
docker run -d -p 8080:8000 -v src:/src_nft_app --name nft_app nft_service
- Сервис будет доступен по адресу
http://localhost:8080/