Telegram Mini App для новогодней ёлки с токенами MALINKA. Пользователи могут зажигать огоньки, вешать шарики, ставить свечи и дарить гифки, переводя токены MALINKA на аккаунт malinkatrees в блокчейне EOS.
frontend/- Telegram Mini App (React + TypeScript + Vite + Tailwind)backend/- Node.js сервер + парсер транзакций EOS + Express API
- React 18 + TypeScript
- Vite
- Tailwind CSS
- Telegram Web App SDK
- Lucide React (иконки)
- Node.js + TypeScript
- Express.js
- Supabase (PostgreSQL + Realtime)
- Axios (EOS Hyperion API)
- EOS транзакции парсинг
# Установка всех зависимостей
npm run install:all
# Или отдельно:
cd frontend && npm install
cd ../backend && npm install- Создайте проект на supabase.com
- Перейдите в SQL Editor
- Выполните SQL из
backend/supabase-schema.sql - Скопируйте URL и Anon Key из Settings → API
cd backend
cp env.example .envОтредактируйте .env:
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_anon_key
PORT=3000
NODE_ENV=developmentВариант 1: Из корня проекта
npm run dev # Frontend (localhost:5173)
npm run dev:backend # Backend (localhost:3000)Вариант 2: Отдельно
# Terminal 1 - Frontend
cd frontend
npm run dev
# Terminal 2 - Backend
cd backend
npm run devBackend автоматически:
- Подключается к EOS Hyperion API
- Опрашивает транзакции каждые 10 секунд
- Ищет переводы токена MALINKA на аккаунт
malinkatrees - Парсит memo и создаёт украшения:
light→ Огонёкball Имя→ Шарик с именемcandle Текст→ Свеча с пожеланием (до 200 символов)gift https://url.gif→ Подарок (гифка)
- Сохраняет в Supabase
- Отправляет realtime обновления
Переведите 1 MALINKA на malinkatrees с одним из memo:
light- зажечь огонёкball Ваше Имя- повесить шарикcandle С Новым Годом!- поставить свечуgift https://example.com/gift.gif- подарить гифку
GET /api/decorations- все украшения (последние 30 дней)GET /api/donors?limit=10- топ дарителей
- Подключите репозиторий к Railway
- Добавьте переменные окружения из
.env - Railway автоматически определит
railway.jsonи задеплоит
cd backend
docker build -t malinkatrees .
docker run -p 3000:3000 --env-file .env malinkatreescd frontend
npm run build
# Файлы будут в backend/public/Таблица decorations:
id- уникальный IDtype- тип (light, ball, candle, gift)from_account- аккаунт отправителяusername- имя для шарика (опционально)text- текст для свечи (опционально)image_url- URL для подарка (опционально)amount- сумма переводаtx_id- ID транзакции EOS (уникальный)created_at- время создания
- Hot reload на
localhost:5173 - Сборка в
backend/public/
- Hot reload через
tsx watch - Парсер запускается автоматически
- Логи в консоли
MIT