39 lines
2.3 KiB
Markdown
39 lines
2.3 KiB
Markdown
# 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»), скопирует и пришлёт нам. Из неё станет ясна причина. |