https://github.com/lowfie/smartcontractapi
Implementation of a backend service that interacts with an ERC-721 standard contract in the Ethereum blockchain
https://github.com/lowfie/smartcontractapi
docker dockercompose fastapi postgresql tortoise-orm web3py
Last synced: 6 months ago
JSON representation
Implementation of a backend service that interacts with an ERC-721 standard contract in the Ethereum blockchain
- Host: GitHub
- URL: https://github.com/lowfie/smartcontractapi
- Owner: lowfie
- Created: 2023-03-10T15:49:19.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-14T15:48:30.000Z (almost 3 years ago)
- Last Synced: 2025-01-11T02:18:02.843Z (12 months ago)
- Topics: docker, dockercompose, fastapi, postgresql, tortoise-orm, web3py
- Language: Python
- Homepage:
- Size: 160 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SmartContract
Реализован бэкенд-сервис, который взаимодействует с контрактом стандарта ERC-721 в блокчейне Ethereum.
Суть разрабатываемого сервиса заключается в том, чтобы производить операции с NFT-токеном, используя REST API.
Целью задачи является интеграция с NFT токеном, и написание сервиса по взаимодействию с ним.
NFT-токен - это неделимый цифровой актив в блокчейн-сети. В общем понимании, такой токен - это объект с определенным набором параметров, и при этом, все единицы такого обьекта - являются уникальными между собой.
В техническом понимании, такой токен представлен в виде смарт-контракта в блокчейн сети - т.е. некоторого модуля, имеющего функции на чтение и запись.
## Запуск проекта
1. `git clone https://github.com/lowfie/SmartContract.git`
2. Создание `.env` файла *Ниже файл описан
### Локально:
- *Для этого способа вы должны подключить базу данных вручную, введя данные в `.env`
3. Установка зависимостей
```
pip install --upgrade pip
pip install git+https://github.com/ethereum/web3.py.git
pip install -r requirements.txt
```
4. Перейдите в корневую дирректорию и запустите проект `python main.py`
### Docker:
3. `docker compose build`
4. `docker compose up`
## .env файл
```
USER_POSTGRES=postgres
PASSWORD_POSTGRES=123
HOST_POSTGRES=postgres
PORT_POSTGRES=5432
DATABASE_POSTGRES=postgres
INFURA_PROVIDER=
METAMASK_PRIVATE_KEY=
CONTRACT_ADDRESS=
CONTRACT_ABI=
```
## Стек технологий
- python3.10+ (я использовал 3.11.2)
- fastapi+pydantic
- web3py
- tortoise-orm+pydantic
- postgresql
- poetry
- docker, docker-compose
## Backlog:
- добавить logging