/NFT_interaction_service

NFT interaction service at eth blockchain

Primary LanguagePython

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-адрес будущего владельца токена

Конфигурирование и запуск

  1. Скачать и распаковать репозиторий.
  2. Отредактировать config.yml с указанием своих параметров
  3. В командной строке последовательно выполнить команды:
docker build -t nft_service .

docker run -d -p 8080:8000 -v src:/src_nft_app --name nft_app nft_service
  1. Сервис будет доступен по адресу http://localhost:8080/

Кстати, tokenURI к первому токену возвращает:

ow57Hgj

Примеры запрососов

image

image

image