Руководство по миграции
Миграция RainbowKit
Зависимости wagmi и viem достигли версии 2.x.x с критическими изменениями.
Следуйте инструкциям ниже для выполнения миграции.
Обновите RainbowKit, wagmi, и viem до последних версий
Установите зависимость @tanstack/react-query
С Wagmi v2, TanStack Query теперь является обязательной зависимостью.
Установите её с помощью следующей команды:
Обновите конфигурации RainbowKit и Wagmi
Проверьте наличие критических изменений в wagmi и viem
Если вы используете хуки wagmi и действия viem в своём dApp, вам необходимо следовать руководствам по миграции для версии v2:
Улучшенное поведение для кошельков EIP-6963
Кошельки, поддерживающие новый стандарт подключения EIP-6963 (включая Rainbow, MetaMask и другие), теперь будут автоматически отображаться в разделе Установленные в процессе подключения кошелька. Это обеспечивает пользователям возможность всегда находить любимые кошельки и подключаться к dApps без конфликтов или кнопок возврата.
Разработчики продолжают иметь полный контроль над настраиваемым списком кошельков, чтобы подчеркнуть предпочтительные кошельки для конечных пользователей. Рекомендуем по-прежнему включать в свой список injectedWallet и walletConnectWallet для поддержки всех платформ.
Конфигурация Wagmi с getDefaultConfig
Этот новый API упрощает процесс настройки конфигурации и заменяет необходимость в прямом использовании createConfig Wagmi. Конфигурация цепочки упрощена, включая предполагаемых публичных провайдеров для transports.
Список кошельков по умолчанию будет автоматически включен, что исключает необходимость использования getDefaultWallets и connectorsForWallets.
Вы можете создать Пользовательский список кошельков, передав импортированные или Пользовательские коннекторы кошельков в wallets. Больше не требуется создавать экземпляры кошельков и передавать projectId и chains.
RainbowKitProvider
Больше не нужно передавать chains в <RainbowKitProvider>.
Пользовательские сети
Тип Chain изменился в соответствии с Wagmi v2 и продолжает поддерживать метаданные RainbowKit iconUrl и iconBackground.
Пример с getDefaultConfig:
Пример с createConfig:
Пользовательские кошельки
Коннекторы кошелька RainbowKit подверглись значительным изменениям для поддержки Wagmi v2. Ссылка на обновленную документацию и пример коннектора для обновления любых Пользовательских Коннекторов Кошельков в вашем dApp.
Коннекторы кошельков теперь также поддерживают стандарт EIP-6963 с параметром rdns. Убедитесь, что это поле заполнено, чтобы избежать дублирования ссылок на кошельки, поддерживающие EIP-6963 в вашем списке кошельков.
wagmi зависимость уровня peer обновлена до 1.x.x.
Следуйте инструкциям ниже для выполнения миграции.
Обновите RainbowKit и wagmi до их последней версии
Установите зависимость viem второго уровня
Для работы wagmi v1 требуется зависимость viem. Установите его с помощью следующей команды:
Обеспечьте совместимость пакетировщика и полифиллов
Ссылка на наш Конфигурация Webpack Next.js образцы для руководства по настройке вашего проекта.
Дополнительные руководства по фреймворку для Vite и Remix доступны здесь.
Проверьте наличие обратно несовместимых изменений в 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.
И вы справились! 🌈