Files

29 lines
1.9 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.
# TASK — Выдавать фантики бетторам на localnet (как SOL airdrop)
Репозиторий: `smart-updown-token`, файл `relayer/src/index.ts` (+ возможно `ops.ts`).
## Проблема (обнаружено на localnet E2E)
`createBet` падает: `Tokenkeg... Transfer: insufficient funds`.
Причина: беттор имеет SOL (ренту/комиссии, `fundBettor` airdrop'ит SOL), но НЕ имеет
наших фантиков в своём ATA. Контракт верно требует средства игрока. Для localnet
нужно наливать игроку фантики (по аналогии с SOL-airdrop), потому что swap ещё не подключён.
## Что исправить (релейер)
1. В `relayer/src/ops.ts`: в `ensureBettorTokenAccount` (или рядом) при
`cfg.allowAirdrop === true` — после создания ATA наливать токен:
`mintTo(connection, admin, mint, ata, admin, startBalance)`.
- `startBalance` — например, `10_000_000_000` (10 тыс. фантиков, по модулю
`minAmount`..`maxAmount` достаточно). Логировать.
- Учесть, что `admin` — mint authority (на localnet таковым является админская keypair).
2. `relayer/src/index.ts` фандинг беттора: вызывать новую логику наливания токенов
(удобно чтобы работало через `ensureBettorTokenAccount`).
## Гейт
- `npm run typecheck` — 0 ошибок.
- `npm test` — зелёное.
- На localnet: createBet проходит (беттор имеет фантики), closeBet выплачивает.
## НЕ делать
- Не трогать контракт (`program/`).
- Не менять логику цен/ставок.
- Не коммитить.