https://github.com/pashpiter/tron_service
Микросервис, который выводит информацию по адресу в сети трон, его bandwidth, energy, и баланс trx.
https://github.com/pashpiter/tron_service
asyncpg fastapi postgresql pytest python sqlalchemy tronpy uvicorn
Last synced: 10 months ago
JSON representation
Микросервис, который выводит информацию по адресу в сети трон, его bandwidth, energy, и баланс trx.
- Host: GitHub
- URL: https://github.com/pashpiter/tron_service
- Owner: pashpiter
- Created: 2025-04-22T13:02:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-22T14:19:18.000Z (about 1 year ago)
- Last Synced: 2025-04-23T15:16:42.028Z (about 1 year ago)
- Topics: asyncpg, fastapi, postgresql, pytest, python, sqlalchemy, tronpy, uvicorn
- Language: Python
- Homepage:
- Size: 68.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# tron_service
#### Стек: Python, FastAPI, uvicorn, sqlalchemy, tronpy, postgresql, asyncpg, pytest
## О проекте
Микросервис, который выводит информацию по адресу в сети трон, его bandwidth, energy, и баланс trx.
## Запуск проекта
🐳 Запуск через Docker (рекомендуется)
1. Установите Docker согласно инструкции с официального сайта: https://docs.docker.com/
2. Клонировать репозиторий
```
git clone git@github.com:pashpiter/tron_service.git
```
3. Перейти в папку tron_service
```
cd tron_service
```
4. В папке создайте файл `.env` с переменных окружения
```
touch .env
```
5. Заполните по примеру своими значениями как в этом [файле](example.env)
6. Для запуска проекта введите команду:
```
docker compose up -d
```
или если локально установлен Make:
```
make up
```
> **Тесты.** Проект покрыт тестами, которые выполняются при сборке контейнеров.
💻 Локальный запуск (без Docker)
1. Клонировать репозиторий
```
git clone git@github.com:pashpiter/tron_service.git
```
2. Перейти в папку tron_service
```
cd tron_service
```
3. В папке создайте файл `.env` с переменных окружения
```
touch .env
```
4. Заполните по примеру своими значениями как в этом [файле](example.env)
5. Создать и активировать вирутальное окружение
```
python3 -m venv venv
acivate .venv/bin/activate
```
6. Установить зависимости
```
pip install -r requirements.txt
```
7. Запустить приложение
```
uvicorn app.main:app --reload
```
> **Тесты.** Для запуска тестов используйте команду `pytest -v`.
## Документация
После запуска документация доступна по адресу:
```
{FASAPI_HOST}:{FASAPI_PORT}/docs
{FASAPI_HOST}:{FASAPI_PORT}/redoc
```
## Энодпоинты API
### 1. Получение информации о кошельке TRON
`POST /`
**Описание**:
Возвращает баланс TRX, bandwidth, energy и другую информацию по указанному адресу в сети TRON.
**Параметры запроса** (JSON):
```
{
"address": "TQjaZ9FD473QBTdUzMLmSyoGB6Yz1CGpux"
}
```
Пример успешного ответа:
```
{
"address": "TQjaZ9FD473QBTdUzMLmSyoGB6Yz1CGpux",
"trx_balance": 89898.03202,
"bandwidth": 600,
"energy": 0
}
```
### 2. Получение истории запросов
`GET /`
**Описание**:
Возвращает историю запросов с пагинацией.
Параметры запроса (query params):
```
offset - Количество пропускаемых элементов (default: 0)
limit - Количество элементов на странице (default: 10)
```
Пример успешного ответа:
```
{
"items": [
{
"address": "TQjaZ9FD473QBTdUzMLmSyoGB6Yz1CGpux",
"trx_balance": 1250.5,
"bandwidth": 4900,
"energy": 950,
"id": 1,
"timestamp": "2025-04-22T11:26:50.621134Z"
}
]
}
```
#### Pavel Drovnin [@pashpiter](http://t.me/pashpiter)