# TASKS.md — список задач (трекер проекта) Здесь живёт **весь** список задач — не только мои. Трекаем проект целиком. Бинарные составляющие: - фаркул/pivotable-задачи (что можно отложить или развернуть иначе) помечаются `[pivotable]`; - общие/инфра (деплой, стабильность, мок) — `[pump.meta]`. **Статусы:** `TODO` / `IN_PROGRESS` / `DONE` / `BLOCKED`. --- ## ⭐ Актуальное состояние (2026-09-09) **Где мы:** Фаза 1 (контракт переведён на фантики) — **DONE**. Сейчас вход в **Фазу 2 (релейер под токен)**. **Готово:** - Контракт `smart-updown-token` — переведён на SPL-токен (фантики), IDL+тесты обновлены. Коммит `45d64d4`. - Ktor swap-клиент в бэкенде (ввод/вывод) — заготовка. - Тестовый фронт `test-front` — каркас (Phantom, балансы, пополнение/вывод). **В работе / вперёд:** - **Фаза 2 (активная):** релейер перевести с SOL на токен (ops/pda/config). После неё + E2E на localnet. - **Веха «первый щуп»:** 👉 *как только релейер на фантиках + E2E на localnet прогнаны — через `test-front` вы самостоятельно щупаете: пополнить фантики → ставка → результат.* Это первый реальный user-тест (без Unity). **Параллельные TODO (не блокируют Фазу 2):** реальная цена (вместо `RandomPriceSource` — источник выбран: `binance-market`, ADR-007, остаётся интеграция), эмиссия, ликвидность/комиссии swap. --- ## Фаза 0 — Экономика и спека (кросс) - [ ] **TODO** ADR-002 зафиксирован, документировать `ECONOMY.md`: токен, курс (Способ 1), decimals=6, mint-адреса — `[pump.meta]` - [x] **DONE** Решить «вверх/вниз» — предмет ставки = цена SOL (ADR-006), валюта = фантики - [ ] **IN_PROGRESS** Цена SOL: реальный источник (ADR-007) — `subochev/binance-market` (NATS `market.price.solusdt` или WS `/ws/price?symbol=solusdt`); остаётся интеграция `PriceSource` в релейере - [ ] **TODO** Кто держит ликвидность swap и комиссии — `[pump.meta]` - [ ] **TODO** Эмиссия: разовая vs постоянная — `[pump.meta]` ## Фаза 1 — Контракт на токене (ядро) — репо `smart-updown-token` (копия Smart-game) - [x] **DONE** Создана копия контракта `smart-updown-token` (ветка main, чистый) — работаем тут - [x] **DONE** Перевести `create_bet` с SOL (lamports) на SPL-токен: приём фантиков с ATA игрока на ваулт - [x] **DONE** Выплата в `close_bet` фантиками из ATA-ваулта на ATA игрока - [x] **DONE** `state`/`constants`: единицы = token units (decimals=6), + VAULT_SEED - [x] **DONE** Обновить IDL (idl/ + relayer/idl/) + Anchor-тесты (10/10) — коммит 45d64d4 - [ ] **TODO** Развернуть/поднять localnet стенд для E2E токен-флоу (приёмка на железе) ## Фаза 2 — Релейер и цена (АКТИВНАЯ — следующий шаг) - [ ] **IN_PROGRESS** SolanaClient/ops: подписывать/отправлять токеновую ставку (ATA + ваулт) — перевести релейер с SOL на токен - [ ] **TODO** readGlobal: баланс vault_token вместо SOL; ensureVaultFunded — наливать токен в vault - [ ] **IN_PROGRESS** PriceSource: реальная цена (вместо `RandomPriceSource`) — интеграция с `binance-market` (ADR-007); реализация NATS-консьюмера `market.price.solusdt` - [ ] **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 по токену ## Фаза 5b — Тестовый фронт (`test-front`, для ручной гонки экономики без Unity) - [x] **DONE** Каркас: Phantom, балансы (фантики+SOL), swap пополнение/вывод через `/api/pump/swap` - [x] **DONE** Ставка вверх/вниз через контракт с поллингом до SETTLED - [ ] **TODO** Перевести подпись под токеновую версию контракта (после Фазы 1) - [ ] **TODO** Реальный провайдер цены вместо RandomPriceSource (за нами) → `binance-market` (ADR-007) - [ ] **TODO** Развернуть / дать постоянный URL (nginx/podman) — удобно открывать ## Фаза 6 — E2E и деплой - [ ] **TODO** Полный круг на devnet: создать токен → swap ввод → ставка токеном → раунд → вывод - [ ] **TODO** Обновить `API.md`/`INTEGRATION.md`, развернуть на mainnet - [ ] **TODO** Стабильность: версионировать конфиги, mint-адрес в конфиге --- ## Ссылки - Решения/экономика: `docs/DECISIONS.md`, `docs/ECONOMY.md` - Карта репозиториев: `README.md`