Rainbow logo
RainbowKit
2.2.4

Проведение миграции до WalletConnect v2

Подготовьте ваш dApp к обновлению до v2 за 5 минут или меньше

Протокол WalletConnect v1 будет отключен 28 июня 2023 года, и RainbowKit поможет вам сделать этот переход очень простым.

Поддержка WalletConnect v2 теперь стандартна в RainbowKit без каких-либо изменений. Просто обновите и проконсультируйтесь с руководством ниже для получения дополнительной информации.

WalletConnect - это протокол, который позволяет пользователям подключать свои мобильные кошельки к вашему dApp, и это важная основа RainbowKit. Недавний выпуск WalletConnect v2 привносит ряд важных обновлений для улучшения взаимодействия между кошельком и dApp.

С v2 ваши пользователи теперь могут одновременно подключаться к нескольким блокчейнам, так что вы можете забыть о рукопожатии смены цепочки. Это также расширяет поддержку для большего количества сетей и вносит улучшения, которые делают вход с Ethereum еще быстрее.

Если вы уже следовали инструкциям по миграции для RainbowKit 0.12.x и 1.0.x, то вы почти там! Просто обновитесь до последней исправленной версии и попробуйте.

RainbowKit включил WalletConnect v2 по умолчанию с версией 0.12.15 и 1.0.2. Мы продолжаем поддержку для 0.12.x, если ваш dApp еще не обновлен до wagmi v1 и RainbowKit v1.

1. Обновление зависимостей

npm i @rainbow-me/rainbowkit@^1.0.2 wagmi@^1.2

Если вы используете версию RainbowKit до 0.12.x или 1.0.x, просто следуйте Руководствам по миграции, чтобы быть в курсе.

Рекомендуется, чтобы dApps версии 0.12.x начали обновляться до wagmi v1, поскольку улучшения стабильности для WalletConnect v2 будут включены только в будущих версиях wagmi.

2. Предоставление projectId

Теперь каждому dApp, который зависит от WalletConnect, необходимо получить projectId от WalletConnect Cloud. Это абсолютно бесплатно и занимает всего несколько минут.

Укажите свой projectId для getDefaultWallets и отдельных коннекторов кошелька RainbowKit следующим образом:

const projectId = 'YOUR_PROJECT_ID';
const { wallets } = getDefaultWallets({
appName: 'My RainbowKit App',
projectId,
chains,
});
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [
argentWallet({ projectId, chains }),
trustWallet({ projectId, chains }),
ledgerWallet({ projectId, chains }),
],
},
]);

RainbowKit является безопасным по типам и предупредит вас, когда projectId отсутствует. Обратитесь к нашим примерам, чтобы увидеть v2 в действии:

Обратитесь к docs для дополнительных поддерживаемых опций.