Инициализация мета-репо: карта репозиториев, решения (ADR), экономика токена, трекер задач
This commit is contained in:
@@ -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`.
|
||||
@@ -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`
|
||||
@@ -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 — чей счёт.
|
||||
- Эмиссия: разовая (скрипт) или постоянная (рабочий процесс эмиссии в бэкенде).
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user