# 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//.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=` (порт 8080) и через NATS-топик `market.price.`; релейер использует это как **`PriceSource`** (см. ADR-007) | Контракт между игрой и сервисом: - **В кластере (предпочтительно):** подписка на NATS-топик `market.price.solusdt` (адрес задаётся в релейере; прод-адрес см. в его конфиге). - **Снаружи кластера / тест:** WebSocket `ws://: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`** (15 пунктов: 6 критичных, 3 по экономике, 3 по инфраструктуре, 3 отложенных; аудит живого стенда 2026-09-13). Критично на сегодня: у контракта нет верхней границы окна закрытия ставки и нет серверного авто-закрытия — момент расчёта выбирает клиент, что даёт безрисковый арбитраж. Плюс открытые наружу `/bet`, `/close`, `/faucet` без авторизации. ## Прочее - Ночная экономика и mint-адреса: `docs/ECONOMY.md` (создаётся в Фазе 0). - Разделы задач общего характера (например, мок/деплой/стабильность) — в `TASKS.md`.