Что переносится, а что нет
- Переносится (ваша интеграция): провайдер, хук, конфигурация входа и RPC. Это замена кода, описанная в шагах ниже, которая обычно занимает несколько часов.
- Не переносится (кошельки ваших пользователей): существующие кошельки Privy, ключи и балансы. Turnkey не может импортировать их, поэтому каждый пользователь создает новый встроенный кошелек Helius при первом входе.
Соответствие компонентов Privy и Helius WaaS
Перенос интеграции
Выполните следующие шаги, чтобы заменить Privy на Helius в своем коде. Они не затрагивают кошельки конечных пользователей — это описано ниже.1
Swap the provider
Замените
PrivyProvider на HeliusWalletProvider и передайте ключ API Helius вместо appId от Privy. См. раздел Настройка.2
Swap the hook
Замените вызовы
usePrivy() / useSolanaWallets() на useHeliusWallet(). login, logout, user и exportWallet имеют прямые аналоги; функции подписи доступны через тот же хук (signTransaction, signAndSendTransaction, signMessage).3
Move auth config to the dashboard
Настройте способы входа в панели управления в разделе WaaS → Configuration, а не в свойствах провайдера. См. раздел Настройка способов входа.
4
Point RPC at Helius
Отправка уже выполняется через Helius. Удалите конфигурацию отдельного провайдера RPC и используйте
connection / rpcUrl из хука либо добавьте обработчик маршрута для оптимизированного через Sender включения транзакций в блок.Кошельки и средства пользователей
При первом входе после выпуска обновления каждый пользователь получает совершенно новый встроенный кошелек Helius с нулевым балансом и адресом, отличным от адреса кошелька Privy. Старые кошельки Privy и средства в них остаются без изменений. Если пользователям нужно сохранить существующие балансы, запланируйте окно миграции:1
Surface the new address
Покажите каждому вошедшему пользователю его новый адрес Helius (
address из useHeliusWallet()).2
Have users move their funds
Пользователи переводят средства из старого кошелька Privy на новый адрес Helius. Каждый пользователь должен выполнить это действие самостоятельно. Ни Helius, ни Turnkey не могут перевести средства от его имени.
3
Retire the old integration
После перехода пользователей на кошельки Helius удалите SDK Privy.
Могут ли пользователи просто продолжить использовать существующий кошелек? Нет, он не может
заменить встроенный кошелек. Внешний кошелек предлагается как
способ входа: он аутентифицирует пользователя для доступа к встроенному кошельку Helius, но
не управляет ключами внешнего кошелька напрямую. Подписание непосредственно через
внешний кошелек полностью обходит Helius — без подписания Turnkey и учета использования,
поэтому он не заменяет встроенный кошелек, на котором работает ваше приложение.