Инициализация мета-репо: карта репозиториев, решения (ADR), экономика токена, трекер задач

This commit is contained in:
Caffeine
2026-09-09 18:11:34 +03:00
commit ed7d85b3dd
4 changed files with 172 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
# pump-game-ops — мета-репозиторий проекта «Бинарная ракета» (Binary Rocket)
Единая точка для **сервисной документации, принятых решений и списка задач** проекта
мемкойн-игры на pump.fun. Кода тут нет — только то, что связывает компоненты между собой
(индексация), и что не живёт в конкретных репозиториях.
## Что это и зачем
У нас много компонентов (фронт, бэкенд, контракт, релейер). Здесь мы ведём:
- **карту репозиториев** (кто за что отвечает, где какая часть),
- **журнал решений** (почему так, а не иначе — ADR),
- **экономику токена** (свой мемкойн, курс, decimals, mint-адреса),
- **список задач/статусы** (трекаем весь проект тут — включая задачи, встающие на
кросс-компонентные решения: `forkable`/`pivotable` и т.п.).
## Карта репозиториев
| # | Компонент | Репозиторий | Путь (локально) | Язык/стек | Роль |
|---|---|---|---|---|---|
| 1 | **Смарт-контракт** | `akovalenko/Smart-game` | `~/WORK/games/Smart-game` | Rust/Anchor (Solana) | игровая логика ставок вверх/вниз, ваулт, выплата |
| 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 | **Мета-репо (этот)** | *(новый)* | `~/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`.
## Принятые решения (сводка)
Ссылка на полный журнал — `docs/DECISIONS.md`. Ключевое:
- **Свой токен** на pump.fun (мемкойн Binary Rocket), не чужой.
- **Курс — живой рыночный** (Способ 1): ставки в фантиках, ввод/вывод через swap.
- **decimals = 6**, токен через **Token-2022** (по доке pump.fun `create_v2`).
- Ставки идут **фантиками через контракт** → контракт переводить с SOL на SPL-токен (это ядро).
## Статус проекта (сводка)
Задачи и статусы — в `TASKS.md` (или `docs/TASKS.md`). Здесь — только верхи:
- [ ] Фаза 0 — экономика (токен, курс, mint) — **в работе**
- [ ] Фаза 1 — контракт на токене — **не начато**
- [ ] Фаза 4 — задействовать свап-клиент — **клиент готов**
- [ ] Фаза 5 — фронт (баланс/пополнение/вывод) — **не начато**
## Прочее
- Ночная экономика и mint-адреса: `docs/ECONOMY.md` (создаётся в Фазе 0).
- Разделы задач общего характера (например, мок/деплой/стабильность) — в `TASKS.md`.
+47
View File
@@ -0,0 +1,47 @@
# TASKS.md — список задач (трекер проекта)
Здесь живёт **весь** список задач — не только мои. Трекаем проект целиком. Бинарные составляющие:
- фаркул/pivotable-задачи (что можно отложить или развернуть иначе) помечаются `[pivotable]`;
- общие/инфра (деплой, стабильность, мок) — `[pump.meta]`.
**Статусы:** `TODO` / `IN_PROGRESS` / `DONE` / `BLOCKED`.
---
## Фаза 0 — Экономика и спека (кросс)
- [ ] **TODO** ADR-002 зафиксирован, документировать `ECONOMY.md`: токен, курс (Способ 1), decimals=6, mint-адреса — `[pump.meta]`
- [ ] **TODO** Решить цену «вверх/вниз» (бенчмарк для контракта) — `[BLOCKED на решение]`
- [ ] **TODO** Кто держит ликвидность swap и комиссии — `[pump.meta]`
- [ ] **TODO** Эмиссия: разовая vs постоянная — `[pump.meta]`
## Фаза 1 — Контракт на токене (ядро)
- [ ] **TODO** Перевести `smart-updown` с SOL (lamports) на SPL-токен (Token-2022) в `create_bet`
- [ ] **TODO** Выплата в `close_bet` фантиками из ATA-ваулта
- [ ] **TODO** `min/max_amount`, `amount` — в токен-единицах (decimals)
- [ ] **TODO** Обновить IDL + Anchor-тесты, `anchor test` зелёный на localnet
## Фаза 2 — Релейер и цена
- [ ] **TODO** SolanaClient: подписывать/отправлять токеновую ставку (ATA + ваулт)
- [ ] **TODO** PriceSource: реальная цена (вместо RandomPriceSource)
- [ ] **TODO** Интеграционный тест релейера на токеновом флоу
## Фаза 4 — Бэкенд: задействовать swap
- [ ] **DONE** Ktor `PumpApiClient` + `POST /agents/swap` + DTO + заготовка (в `smart-updown-server`)
- [ ] **TODO** Проверить реальный swap на devnet (не мок)
- [ ] **TODO** Обвязать `GameService`: ввод/вывод фантиков через swap
## Фаза 5 — Фронт (Unity)
- [ ] **TODO** Кнопки «Пополнить»/«Вывести», баланс в фантиках
- [ ] **TODO** SolanaBridge.jslib: подпись токеновой create_bet (ATA игрока в ключах)
- [ ] **TODO** Wallet.cs: баланс в фантиках (ATA + getTokenAccountBalance), CanAfford по токену
## Фаза 6 — E2E и деплой
- [ ] **TODO** Полный круг на devnet: создать токен → swap ввод → ставка токеном → раунд → вывод
- [ ] **TODO** Обновить `API.md`/`INTEGRATION.md`, развернуть на mainnet
- [ ] **TODO** Стабильность: версионировать конфиги, mint-адрес в конфиге
---
## Ссылки
- Решения/экономика: `docs/DECISIONS.md`, `docs/ECONOMY.md`
- Карта репозиториев: `README.md`
+51
View File
@@ -0,0 +1,51 @@
# DECISIONS.md — журнал решений (ADR)
Каждое решение — короткая запись, чтобы потом не гадать, почему всё устроено так.
Формат: дата, статус (принято/рассмотрение/заменено), суть, аргументы за/против, результат.
---
## ADR-001 — Используем свой токен на pump.fun (мемкойн Binary Rocket)
- **Дата:** 2026-09-09
- **Статус:** принято
- **Суть:** выпускаем СВОЙ токен на pump.fun, а не пользуемся чужим.
- **За:** бренд/маркетинг, контроль экономики, стимул игрокам, единая валюта ставок.
- **Против:** надо эмитировать и следить за курсом; чужой токен дал бы меньше работы.
- **Решение:** свой токен. decimals = 6, Token-2022, создание через `create_v2` (по доке pump.fun).
## ADR-002 — Курс живой рыночный (Способ 1)
- **Дата:** 2026-09-09
- **Статус:** принято
- **Суть:** вне игры баланс — в фантиках, курс берётся с рынка (bonding curve/AMM pump.fun).
Ввод = swap SOL→фантики, вывод = swap фантики→SOL. Никакой фикс-привязки/стейблока.
- **За:** нативно pump.fun, привычно игроку-трейдеру, технически проще, маркетинг (рост/падение токена).
- **Против:** баланс «гуляет» с рынком; определённым аудиториям неудобно.
- **Решение:** Способ 1. (Это и диктует, что ставки идут фантиками через контракт.)
## ADR-003 — Ставки идут фантиками через контракт
- **Дата:** 2026-09-09
- **Статус:** принято (вытекает из ADR-002)
- **Суть:** игрок ставит токен, контракт держит фантики в своём ATA-ваулте и платит фантиками.
- **Следствие:** контракт переводится с нативного SOL (lamports) на SPL-токен — это ядро Фазы 1.
- **Против:** трогаем хорошо работающий контракт; но без этого сценарий ввода-игры-вывода не работает.
## ADR-004 — Ввод/вывод через pump.fun swap (`POST /agents/swap`)
- **Дата:** 2026-09-09
- **Статус:** принято
- **Суть:** пополнение = `inputMint: NATIVE_MINT(SOL), outputMint: наш_mint`; вывод = наоборот.
Клиент на бэкенде (Ktor `PumpApiClient`) уже готов в `smart-updown-server`.
- **За:** возвращает готовую подписанную swap-транзакцию, бэкенд не держит ликвидность.
- **Против:** весь ввод/вывод завязан на доступность pump.fun API.
## ADR-05 (идея) — мета-репозиторий для документации и трекинга
- **Дата:** 2026-09-09
- **Статус:** принято
- **Суть:** создать `pump-game-ops`, где живут карта репозиториев, решения, экономика и список задач.
- **За:** единая точка оркестрации, не плаваем по чату. **Против:** риск превратиться во второй трекер.
---
### Развилки, которые ещё предстоит решить (не закрыты)
- **Цена «вверх/вниз»:** контракт сравнивает entry/exit_price — что это: цена нашего фантика, цена SOL или отдельный бенчмарк? (нуждается в решении до Фазы 1).
- **Кто держит ликвидность swap** на старте и межторговая комиссия pump.fun — чей счёт.
- Эмиссия: разовая (скрипт) или постоянная (рабочий процесс эмиссии в бэкенде).
+27
View File
@@ -0,0 +1,27 @@
# ECONOMY.md — экономика игрового токена (заполняется в Фазе 0)
Пока это заготовка. Цель — зафиксировать **все ключевые параметры токена и экономики**,
чтобы дальше ссылаться на них, а не вспоминать в чате.
## Токен
- **Название:** Binary Rocket (уточнить финальное имя/символ)
- **Тип:** свой мемкойн на pump.fun, Solid SPL / **Token-2022**
- **decimals:** `6` (по доке pump.fun `create_v2`)
- **Эмитент:** наш адрес (кошелёк/программа)
- **Mint-адрес:** *(заполнить после создания — в Фазе 4)*
- **Bonding curve:** *(заполнить после создания)*
- **URI метаданных:** *(IPFS)*
## Курс и балансы
- **Курс:** живой рыночный (ADR-002). Ввод/вывод через swap pump.fun; баланс игрока — в фантиках.
- **Фантик = 1 токен-единица/10^6.**
- **Баланс игрока:** в ATA (Associated Token Account) на mint; читается `getTokenAccountBalance`.
## Вход/выход денег
- **Пополнение:** `POST /agents/swap`, `inputMint=NATIVE_MINT(SOL)`, `outputMint=наш_mint`.
- **Вывод:** `POST /agents/swap`, `inputMint=наш_mint`, `outputMint=NATIVE_MINT(SOL)`.
- Комиссия pump.fun — *(решить, чей счёт)*.
- Ликвидность на старте — *(решить)*.
## Что стоит фиксированно
- mint-адрес, bonding-curve, decimals, эмитент — версионируются в конфиге бэкенда + в git.