helius-wallet-kit и способы их устранения.
Настройка
Модальное окно кошелька не стилизовано или отображается неправильно
Таблица стилей SDK не загружена. Импортируйте ее один раз в корневом макете:app/layout.tsx
Значения хука не меняются (остаются на loading)
useHeliusWallet() работает только внутри HeliusWalletProvider, а провайдер должен быть клиентским компонентом. Убедитесь, что провайдер оборачивает дерево компонентов из файла, в начале которого указан "use client". См. раздел Настройка.
[HeliusWalletKit] WaaS bootstrap failed (…) в консоли
Провайдеру не удалось определить ваш проект по ключу API. Проверьте следующее:
- Переменная
NEXT_PUBLIC_HELIUS_API_KEYзадана и содержит допустимое значение. - Проект использует платный тариф, на котором включены встроенные кошельки.
- Если вы ограничили ключ по домену, текущий источник входит в список разрешенных. См. раздел Защита ключа.
Вход
Вместо кошелька пользователи попадают на экран перехода на платный тариф
Для встроенных кошельков требуется платный тариф Helius. Если определенный тариф является бесплатным, провайдер отображает предложение перейти на платный тариф, а серверная часть также отклоняет запрос. Измените тариф проекта в панели управления.Отображаются неправильные способы входа (например, доступен Google, но отсутствует внешний кошелек)
Способы входа задаются в конфигурации проекта в панели управления в разделе WaaS → Configuration. Если для проекта не настроен ни один способ, модальное окно использует настройки по умолчанию для всей организации. Задайте нужные способы в панели управления или передайтеauthMethods в config провайдера, чтобы переопределить их для отдельного окружения. См. раздел Настройка способов входа.
Не удается войти с помощью ключа доступа или появляется сообщение, что он не зарегистрирован
Ключи доступа привязаны к домену и аутентификатору, на которых они были созданы. Это ограничение WebAuthn, а не Helius. Ключ доступа или ключ безопасности, зарегистрированный на другом сайте или устройстве, не позволит пройти аутентификацию в вашем приложении. Создайте ключ доступа в тестируемом домене. Учтите, что ключ доступа, созданный наlocalhost, привязан к localhost и не будет работать в развернутом домене.
Подписание и отправка
No wallet available при подписании
Вы вызвали метод подписания до завершения подготовки встроенного кошелька. Разрешайте подписание только при наличии как status === "authenticated", так и отличного от null значения address:
… failed (HTTP 404). Set secureRpcUrl …, or mount the Helius route handler
Этот запрос на отправку или приоритетную комиссию некуда было направить: при инициализации провайдер не определил URL Secure RPC (на платных тарифах он обычно предоставляется автоматически), а серверный обработчик маршрута не подключен. Подключите обработчик маршрута по адресу /api/helius/[...path] и задайте HELIUS_API_KEY:
app/api/helius/[...path]/route.ts
getTransactions needs the Helius route handler … it isn't available in direct/secure-URL mode
История транзакций доступна только через обработчик маршрута. Добавьте его, как показано выше.
getPriorityFeeEstimate is not available
Devnet не поддерживает оценку приоритетной комиссии — эта функция доступна только в mainnet. Пропускайте получение оценки в devnet. Отправка работает и без приоритетной комиссии.
Транзакция не попадает в mainnet
Без обработчика маршрута для отправки используется стандартный RPC вместо Helius Sender, поэтому оптимизированное попадание транзакций от Sender недоступно. Для наиболее надежного попадания транзакций в mainnet подключите обработчик маршрута. Если отправка завершается ошибкой, обновите хеш блока: устаревшийrecentBlockhash быстро истекает.
Ключи и доступ
Вызовы RPC или API отклоняются (401 / 403) после ограничения ключа
В ключе с ограничением по домену отсутствует источник, из которого выполняется вызов. Добавьте все используемые источники — рабочее окружение, промежуточное окружение, предварительные развертывания иlocalhost для разработки — в разделе RPC Access Control. См. раздел Защита ключа.
Проблема не решена?
Discord
Обратитесь к сообществу и команде Helius.
Support
Свяжитесь со службой поддержки Helius.