feat: пульт на HTTP-шлюз — ставки/баланс без Phantom (gwBase, пресеты кошельков)

This commit is contained in:
Caffeine
2026-09-10 04:33:41 +03:00
parent 32470d89b2
commit 22bf74eb1f
3 changed files with 219 additions and 169 deletions
+39
View File
@@ -0,0 +1,39 @@
# TASK — Усилить диагностику при connect() к Phantom
Репозиторий: `test-front`, файл `index.html`.
## Задача
При клике «Подключить Phantom» (`connect()`, стока 103-108) Phantom бросает
generic «Unexpected error». Нужно вытащить **настоящую** ошибку, чтобы понять
причину (сеть/кластер/конфиг Phantom).
## Что сделать (только `index.html`, `connect()` и `getProvider`)
1. ОБЕРНУТЬ точку ошибки: вместо `log.err('connect: '+e.message)` логировать БОЛЬШЕ:
- `e.message`
- `JSON.stringify(e)` (если сериализуется) — обернуть в try
- `e.toString()`
- стек: `e.stack` если есть
Разделить в лог как несколько строк / один блок.
2. В `getProvider`: вернуть не только `window.solana`, но и **версию Phantom** и
**доступные методы** (чтобы понять, что Phantom умеет):
- если `w.solana`: залогировать `typeof w.solana.connect`, `typeof w.solana.signTransaction`,
`typeof w.solana.isConnected`, `w.solana` перечислить ключи (только названия).
Это не сломает — просто диагностический вывод в лог при подключении.
3. НЕ менять логику (не «чинить») — только ЛОГИРОВАТЬ детали, чтобы прислать
пользователю полную картину. Это диагностика.
## Гейт
- JS-синтаксис валиден (`node --check` извлечённого script).
- Страница открывается.
## НЕ делать
- Не менять ставку/балансы/swap.
- Не виполнять Phantom насильно.
- Не коммитить.
## Результат
Пользователь обновит страницу, нажмёт «Подключить», в логе увидит ПОЛНУЮ ошибку
(не только «Unexpected error»), скопирует и пришлёт нам. Из неё станет ясна причина.