pump-game-ops — мета-репозиторий проекта «Бинарная ракета» (Binary Rocket)
Единая точка для сервисной документации, принятых решений и списка задач проекта мемкойн-игры на pump.fun. Кода тут нет — только то, что связывает компоненты между собой (индексация), и что не живёт в конкретных репозиториях.
Что это и зачем
У нас много компонентов (фронт, бэкенд, контракт, релейер). Здесь мы ведём:
- карту репозиториев (кто за что отвечает, где какая часть),
- журнал решений (почему так, а не иначе — ADR),
- экономику токена (свой мемкойн, курс, decimals, mint-адреса),
- список задач/статусы (трекаем весь проект тут — включая задачи, встающие на
кросс-компонентные решения:
forkable/pivotableи т.п.).
Карта репозиториев
| # | Компонент | Репозиторий | Путь (локально) | Язык/стек | Роль |
|---|---|---|---|---|---|
| 1 | Смарт-контракт (оригинал) | akovalenko/Smart-game |
~/WORK/games/Smart-game |
Rust/Anchor (Solana) | игровая логика ставок вверх/вниз, ваулт, выплата (SOL, не трогаем) |
| 1b | Смарт-контракт (фантики) | subochev/smart-updown-token |
~/WORK/games/smart-updown-token |
Rust/Anchor (Solana) | копия Smart-game для перевода на наши фантики (SPL-токен) — работаем тут |
| 2 | Бэкенд (релейер) | subochev/smart-updown-server |
~/WORK/games/smart-updown-server |
Kotlin/Spring Boot + solanaj | ретрансляция ставок, свап-клиент к pump.fun, релейер |
| 3 | Фронт (Unity) | subochev/fun-game-front2 |
~/WORK/games/fun-game-front2 |
Unity WebGL + Phantom | UI, кошелёк, подпись create_bet |
| 4 | Тестовый фронт | subochev/test-front |
~/WORK/games/test-front |
HTML/JS + Phantom | технический дашборд для ручного теста экономики (пополнение/ставка/вывод) без Unity |
| 5 | Мета-репо (этот) | subochev/pump-game-ops |
~/WORK/games/pump-game-ops |
Markdown | документация, решения, задачи |
Примечания:
- Remote-адреса:
https://git.binom.pw/<owner>/<repo>.git.- Ветки:
smart-updown-serverиfun-game-front2—main;Smart-gameсейчас наextract-sources.
Внешние зависимости (upstream)
binance-market — это не часть игры, а общий инфраструктурный сервис инвест-кластера,
который игра «Бинарная ракета» использует как upstream-провайдер цены SOL
(вместо заглушки RandomPriceSource, см. ADR-006 → ADR-007).
| Компонент | Репозиторий | Путь (локально) | Язык/стек | Роль для игры |
|---|---|---|---|---|
| binance-market (upstream цены) | subochev/binance-market |
~/common-projects/invest/binance-market |
Kotlin / Spring Boot 3.3.5 WebFlux | собирает рыночные данные с Binance (Binance WS: depth@100ms + aggTrade); выдаёт last-trade через GET /ws/price?symbol=<sym> (порт 8080) и через NATS-топик market.price.<symbol>; релейер использует это как PriceSource (см. ADR-007) |
Контракт между игрой и сервисом:
- В кластере (предпочтительно): подписка на NATS-топик
market.price.solusdt(адрес задаётся в релейере; прод-адрес см. в его конфиге). - Снаружи кластера / тест: WebSocket
ws://<binance-market-хост>:8080/ws/price?symbol=solusdt. - Покрытие символов сейчас:
btcusdt,ethusdt,solusdt(конфигbinance.symbolsв values.yaml чарта).
Принятые решения (сводка)
Ссылка на полный журнал — docs/DECISIONS.md. Ключевое:
- Свой токен на pump.fun (мемкойн Binary Rocket), не чужой.
- Курс — живой рыночный (Способ 1): ставки в фантиках, ввод/вывод через swap.
- decimals = 6, токен через Token-2022 (по доке pump.fun
create_v2). - Ставки идут фантиками через контракт → контракт переводить с SOL на SPL-токен (это ядро).
- Цена SOL — от внешнего upstream
binance-market(ADR-007), не своя оракуль-логика.
Как ходят данные (кто кому что шлёт, включая согласие/подпись игрока) — docs/FLOW.md
(sequence-диаграммы: текущий localnet-режим без Phantom и целевой боевой с pump.fun+Phantom).
Статус проекта (сводка)
Задачи и статусы — в TASKS.md (или docs/TASKS.md). Здесь — только верхи:
- Фаза 0 — экономика (токен, курс, mint) — в работе
- Фаза 1 — контракт на токене — не начато
- Фаза 4 — задействовать свап-клиент — клиент готов
- Фаза 5 — фронт (баланс/пополнение/вывод) — не начато
- Интеграция с
binance-market(NATS/WS-клиентPriceSource) — см. ADR-007
Безопасность
Открытый чек-лист — docs/SECURITY.md (пункты SEC-1…SEC-15, аудит живого стенда 2026-09-13).
Критично на сегодня (SEC-1…SEC-6): у контракта нет верхней границы окна закрытия ставки и нет
серверного авто-закрытия — момент расчёта выбирает клиент, что даёт безрисковый арбитраж. Плюс
открытые наружу /bet, /close, /faucet без авторизации.
Прочее
- Ночная экономика и mint-адреса:
docs/ECONOMY.md(создаётся в Фазе 0). - Разделы задач общего характера (например, мок/деплой/стабильность) — в
TASKS.md.