Files
Caffeine b8c040dedc docs: привести README и API.md в соответствие с живым стендом
Оба файла описывали состояние, которого больше нет, и содержали ошибки,
из-за которых внешний разработчик не собрал бы рабочий фронт:

- README описывал Phantom, swap ввод/вывод (POST /api/pump/swap), STUB-ключи
  и Фазу 1 — ничего этого в index.html нет. Указан нерабочий API base
  (smart-updown.binom.pw вместо testfront.binom.pw) и адрес контракта FMM….
  «Ставка через поллинг» — поллинга нет, события по WS.
- API.md держал раздел «часть ставок зависает без исхода» со статусом
  «не исправлено» — баг закрыт 14.09.2026 в контракте. По этой доке писали бы
  обходной код под проблему, которой нет.

README переписан под фактический index.html: HTTP-шлюз без Phantom,
сценарий кошелёк→фаусет→ставка→WS-исход, три исхода, правило 409.
Секция API.md заменена на «Ничья при exitPrice == entryPrice» (штатный
исход, доля ~трети), историческая сноска на SEC-9 сохранена.

Проверено: полный сценарий снаружи по новой доке проходит
(кошелёк → фаусет 10000 → ставка id=44 → исход по балансу).
2026-09-14 02:24:53 +03:00

46 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# test-front — технический тестовый фронт (Binary Rocket)
Чисто технический веб-дашборд для **ручной проверки механики** через HTTP-шлюз:
кнопки + лог. Без Phantom, без swap, без вывода средств — только постановка ставок
фантиками и наблюдение за событиями.
## Зачем
Технический пульт для проверки контракта «вручную»: быстро прогнать сценарий
«создать кошелёк → пополнить тестовым фаусетом → поставить → дождаться исхода».
Полный контракт API (HTTP + WS, поля событий, коды ошибок) — **[API.md](API.md)**.
## Возможности
- Поля в шапке: **Шлюз (API)**, **WS URL**, **Адрес**.
- **Создать кошелёк** — генерирует новый custodial-адрес через шлюз.
- **Пополнить кошелёк** — тестовый фаусет: наливает SOL и фантики.
- **Сделать ставку** — `POST /api/bet` (`side` `UP`/`DOWN`, `amountUnits`).
- События по **WebSocket** (`price`, `bet_open`, `bet_closed`) — поллинга нет.
- Лог всех действий + кнопки «Копировать» / «Очистить».
## Как пользоваться
1. Открыть `https://testfront.binom.pw/` — `index.html` отдаётся из куба
(namespace `game`). Поле «Шлюз (API)» можно оставить пустым — фронт возьмёт
свой адрес.
2. Нажать **Создать кошелёк** — в поле «Адрес» появится custodial-адрес.
3. Нажать **Пополнить кошелёк** — тестовый фаусет нальёт SOL и фантики.
4. Выбрать сторону (`UP` / `DOWN`) и сумму (в пределах `minAmountHuman` /
`maxAmountHuman` из `/api/state`: `100` … `10000` фантиков) → **Сделать ставку**.
5. Результат придёт сам по WS примерно через `expirySeconds` (15 с).
Три возможных исхода ставки:
- **выиграл** — `statusName: "payout_done"`, выплата с множителем;
- **проиграл** — `statusName: "house_won"`, ставка остаётся в ваулте;
- **возврат при ничьей** — `statusName: "refunded"`, залог возвращён ровно
суммой ставки без множителя (подробнее — [API.md](API.md), раздел
«Ничья при `exitPrice == entryPrice`»).
> Правило: **одна открытая ставка на адрес** — вторая ставка с того же адреса
> получит `409`. Дождитесь `bet_closed` по WS, прежде чем ставить снова.
## Статус
- [x] каркас: кошелёк, фаусет, ставка, события по WS
- [x] контракт: возврат при ничьей (`exitPrice == entryPrice`)