feat: пульт на HTTP-шлюз — ставки/баланс без Phantom (gwBase, пресеты кошельков)
This commit is contained in:
@@ -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»), скопирует и пришлёт нам. Из неё станет ясна причина.
|
||||
Reference in New Issue
Block a user