Руководство по миграции
Миграция RainbowKit
Пиринговые зависимости wagmi и viem достигли версии 2.x.x
с критическими изменениями.
Следуйте шагам ниже для миграции.
1. Обновите RainbowKit, wagmi
и viem
до последних версий
**2. Установите зависимость @tanstack/react-query
С выходом Wagmi v2, TanStack Query теперь является обязательной зависимостью однорангового уровня.
Установите его следующей командой:
3. Обновите конфигурации RainbowKit и Wagmi
4. Проверьте наличие критических изменений в wagmi
и viem
Если вы используете хуки wagmi
и действия viem
в вашем dApp, вам потребуется следовать руководствам по миграции для v2:
1. Улучшенное поведение для кошельков EIP-6963
Кошельки, поддерживающие новый стандарт подключения EIP-6963 (включая Rainbow, MetaMask и другие), теперь будут автоматически отображаться в разделе Установленные
в процессе подключения кошелька. Это гарантирует, что пользователи всегда смогут найти свои любимые кошельки и подключиться к dApps без конфликтов или использования кнопок возврата.
Разработчики по-прежнему имеют полный контроль над Списком пользовательских кошельков, чтобы акцентировать внимание на предпочтительных кошельках для конечных пользователей. Рекомендуется продолжать включать injectedWallet
и walletConnectWallet
в ваш список для поддержки всех платформ.
2. Конфигурация Wagmi с getDefaultConfig
Этот новый API упрощает процесс настройки и заменяет необходимость прямого использования createConfig
от Wagmi. Конфигурация сети стала проще, включая автоматическое определение публичных провайдеров для transports
.
Список стандартных кошельков будет включен автоматически, что делает ненужным использование getDefaultWallets
и connectorsForWallets
.
Вы можете создать Свой Список Кошельков, передавая импортированные или Свои Коннекторы Кошельков в wallets
. Теперь не требуется создание экземпляров коннекторов кошельков и передача projectId
и chains
.
3. RainbowKitProvider
Вам больше не нужно передавать chains
в <RainbowKitProvider>
.
4. Пользовательские Сети
Тип Chain
изменился в соответствии с Wagmi v2 и продолжает поддерживать метаданные iconUrl
и iconBackground
от RainbowKit.
Пример с getDefaultConfig
:
Пример с createConfig
:
5. Пользовательские кошельки
Коннекторы кошельков RainbowKit претерпели значительные изменения для поддержки Wagmi v2. Ссылка на обновленную документацию и пример коннектора для обновления любых Пользовательских Коннекторов Кошельков в вашем dApp.
Коннекторы кошельков теперь также поддерживают стандарт EIP-6963 с помощью свойства rdns
. Убедитесь, что это свойство заполнено, чтобы избежать дублирования ссылок на кошельки, поддерживающие EIP-6963, в списке ваших кошельков.
wagmi зависимость уровня peer обновлена до 1.x.x
.
Следуйте шагам ниже для миграции.
1. Обновите RainbowKit и wagmi
до их последней версии
2. Установите зависимость второго уровня viem
wagmi v1
требует зависимость второго уровня viem
. Установите его следующей командой:
**3. **Обеспечьте совместимость пакетировщика и полифилла**
В предыдущих версиях wagmi, которые полагались на ethers, модули fs
, net
и tls
, требуемые WalletConnect, автоматически полифилировались. Теперь это уже не так с RainbowKit v1 + wagmi v1, которые построены на viem.
Ссылка на наш Конфигурация Webpack Next.js и Полифиллы Create React App образцы для руководства по настройке вашего проекта.
Дополнительные руководства по фреймворку для Vite и Remix доступны here.
4. Проверьте наличие критических изменений в wagmi
Если вы используете хуки wagmi
в вашем приложении, вам нужно будет следовать руководству по миграции wagmi
к v1.
Вы можете посмотреть их руководство по миграции здесь.
Версия wagmi для одноранговых зависимостей была обновлена до 0.12.x
.
RainbowKit принял коннектор WalletConnectLegacyConnector
в wagmi
для продолжения поддержки WalletConnect v1. Поддержка WalletConnect v2 и WalletConnectConnector
скоро будет доступна в виде патч-релиза, без нарушения обратной совместимости.
Кошельки будут автоматически переведены на последующие релизы.
Теперь каждому dApp необходимо предоставить projectId
от WalletConnect Cloud для включения WalletConnect v2. Это должно быть выполнено до того, как серверы моста WalletConnect v1 будут отключены 28 июня 2023 года. RainbowKit будет молча предпочитать v1 для всех кошельков, если projectId
не указан.
Следуйте шагам ниже для миграции.
Теперь каждому dApp, который зависит от WalletConnect, необходимо получить projectId
от WalletConnect Cloud. Это абсолютно бесплатно и занимает всего несколько минут.
Предоставьте projectId
для getDefaultWallets
и индивидуальных соединителей кошелька RainbowKit следующим образом:
Зависимость wagmi была обновлена до 0.11.x
.
Следуйте шагам ниже для миграции.
Если вы используете хуки wagmi
в своем приложении, вам потребуется проверить, затронули ли критические изменения в wagmi
ваше приложение.
Здесь вы можете увидеть их руководство по миграции.
Зависимость wagmi была обновлена до 0.10.x
.
Следуйте шагам ниже для миграции.
Если вы используете хуки wagmi
в своем приложении, вам потребуется проверить, затронули ли критические изменения в wagmi
ваше приложение.
Здесь вы можете увидеть их руководство по миграции.
Зависимость wagmi была обновлена до 0.9.x
.
Следуйте шагам ниже для миграции.
Если вы используете хуки wagmi
в своем приложении, вам потребуется проверить, затронули ли критические изменения в wagmi
ваше приложение.
Здесь вы можете увидеть их руководство по миграции.
Версия wagmi для одноранговых зависимостей была обновлена до 0.8.x
.
Следуйте шагам ниже для миграции.
Если вы используете хуки wagmi
в своем приложении, вам потребуется проверить, затронули ли критические изменения в wagmi
ваше приложение.
Здесь вы можете увидеть их руководство по миграции.
Если вы создаете пользовательский список кошельков, теперь вам необходимо импортировать каждый кошелек индивидуально, чтобы уменьшить размер пакета. Обратите внимание, что поскольку кошельки больше не запоминаются с помощью объекта wallet
, все кошельки теперь имеют суффикс Wallet
.
Также обратите внимание, что слой обратной совместимости Steakwallet был удален. Вместо этого следует использовать Omni.
RainbowKit обновил зависимость уровня wagmi
до 0.5.x
.
Следуйте шагам ниже для миграции.
Обновите RainbowKit и wagmi до их последней версии
Если вы используете хуки wagmi
в своем приложении, вам потребуется проверить, затронули ли критические изменения в wagmi
ваше приложение.
Вы можете посмотреть их руководство по миграции здесь.
Удален параметр chainId
из createConnector
в типе Wallet
.
Обратите внимание, что все встроенные кошельки используют новый API. Большинство пользователей не заметят изменений. Это изменение коснулось только пользователей, создавших или использовавших кастомные кошельки.
Если вы ранее получали URL-ы RPC из chainId
на createConnector
, теперь вы можете удалить эту логику, поскольку wagmi
теперь обрабатывает URL-ы RPC внутренне при использовании с configureChains
.
RainbowKit обновил пир-зависимость wagmi
до ^0.4
.
Следуйте шагам ниже для миграции.
Обновите RainbowKit и wagmi до их последней версии
Импорт configureChains
из wagmi вместо RainbowKit:
RainbowKit больше не экспортирует API apiProvider
. Замените его на выбранный вами провайдер из wagmi.
Импортируйте alchemyProvider
из wagmi/providers/alchemy
.
Импортируйте infuraProvider
из wagmi/providers/infura
.
Импортируйте jsonRpcProvider
из wagmi/providers/jsonRpc
.
Импортируйте publicProvider
из wagmi/providers/public
.
Переименуйте WagmiProvider
в WagmiConfig
.
И вы справились! 🌈