fix: vault как ATA + фандинг беттора; E2E на localnet ok
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# 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/`).
|
||||
- Не менять логику цен/ставок.
|
||||
- Не коммитить.
|
||||
Reference in New Issue
Block a user