# 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/`). - Не менять логику цен/ставок. - Не коммитить.