6e54e9ef4b
- README: новая секция «Внешние зависимости» — binance-market как общий инфраструктурный upstream, а не часть игры (~/common-projects/invest/binance-market, контракт: NATS market.price.solusdt или WS /ws/price). - docs/DECISIONS: добавлен ADR-007 с обоснованием; ADR-006 получил апдейт-сноску. - docs/ECONOMY: «Курс и балансы» — указано, откуда берётся реальная цена SOL. - TASKS: задачи «Цена SOL: реальный источник» (Фаза 0) и «PriceSource: реальная цена» (Фаза 2) переведены из TODO в IN_PROGRESS, со ссылкой на ADR-007 и binance-market; test-front задача тоже помечена.
70 lines
6.4 KiB
Markdown
70 lines
6.4 KiB
Markdown
# 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**
|
||
|
||
## Прочее
|
||
- Ночная экономика и mint-адреса: `docs/ECONOMY.md` (создаётся в Фазе 0).
|
||
- Разделы задач общего характера (например, мок/деплой/стабильность) — в `TASKS.md`. |