Guía de Migración
Migrando RainbowKit
La dependencia de pares wagmi y viem han llegado a 2.x.x
con cambios disruptivos.
Sigue los pasos abajo para migrar.
1. Actualice RainbowKit, wagmi
, y viem
a sus últimas versiones
2. Instalar la dependencia paralela @tanstack/react-query
Con Wagmi v2, TanStack Query ahora es una dependencia par necesaria.
Instálala con el siguiente comando:
3. Actualice sus configuraciones de RainbowKit y Wagmi
4. Verifique los cambios radicales en wagmi
Si utiliza hooks de wagmi
y acciones de viem
en su dApp, necesitará seguir las guías de migración para la v2:
1. Comportamiento mejorado para billeteras EIP-6963
Las billeteras que soportan el nuevo estándar de conexión EIP-6963 (incluyendo Rainbow, MetaMask y más) ahora aparecerán automáticamente en una sección Instalado
durante la experiencia de Conectar Billetera. Esto asegura que los usuarios siempre puedan encontrar sus billeteras favoritas y conectarse a dApps sin conflictos o botones de reserva.
Los desarrolladores continúan teniendo control total sobre la Lista de Billeteras Personalizadas para enfatizar las billeteras preferidas por los usuarios finales. Se recomienda que continúe incluyendo el injectedWallet
y el walletConnectWallet
en su lista para soportar todas las plataformas.
2. Configuración de Wagmi con getDefaultConfig
Esta nueva API simplifica la experiencia de configuración y reemplaza la necesidad de usar directamente el createConfig
de Wagmi. La configuración de la cadena se simplifica, incluyendo proveedores públicos inferidos para transports
.
La lista de carteras predeterminada se incluirá automáticamente, dejando sin efecto la necesidad de usar getDefaultWallets
y connectorsForWallets
.
Puedes crear una Lista Personalizada de Carteras pasando conectores importados o conectores de Carteras Personalizadas a wallets
. Ya no es necesario instanciar conectores de carteras ni pasar projectId
y chains
.
3. RainbowKitProvider
Ya no necesitas pasar chains
a <RainbowKitProvider>
.
4. Cadenas Personalizadas
El tipo Chain
ha cambiado de acuerdo con Wagmi v2, y continúa soportando los metadatos iconUrl
e iconBackground
de RainbowKit.
Ejemplo con getDefaultConfig
:
Ejemplo con createConfig
:
5. Billeteras personalizadas
RainbowKit wallet connectors han sufrido cambios sustanciales para soportar Wagmi v2. Consulta la documentación actualizada y un conector de ejemplo para actualizar cualquier Conector de Cartera Personalizado en tu dApp.
Los conectores de billetera ahora también soportan el estándar EIP-6963 con la propiedad rdns
. Asegúrese de que esto esté poblado para evitar referencias duplicadas a billeteras que soportan EIP-6963 en su lista de billeteras.
La dependencia (peer) de wagmi ha sido actualizada a 1.x.x
.
Sigue los pasos abajo para migrar.
1. Actualice RainbowKit y wagmi
a su última versión
2. Instale la dependencia peer viem
wagmi v1 requiere la dependencia peer viem
. Instálala con el siguiente comando:
3. Asegure la compatibilidad del empaquetador y polyfill
En versiones anteriores de wagmi que confiaban en ethers, los módulos fs
, net
y tls
requeridos por WalletConnect se rellenaban automáticamente. Este ya no es el caso con RainbowKit v1 + wagmi v1, que están construidos sobre viem.
Consulta nuestra Configuración de Webpack de Next.js y ejemplos de polyfill de Create React App para obtener orientación en la configuración de tu proyecto.
Guías adicionales del marco para Vite y Remix están disponibles aquí.
4. Busque cambios significativos en wagmi
y viem
Si utilizas los hooks de wagmi
en tu aplicación, necesitarás seguir la guía de migración de wagmi
a v1.
Puedes ver su guía de migración aquí.
La dependencia peer de wagmi ha sido actualizada a 0.12.x
.
RainbowKit ha adoptado el conector WalletConnectLegacyConnector
en wagmi
para continuar con el soporte de WalletConnect v1. El soporte para WalletConnect v2 y WalletConnectConnector
pronto estará disponible como una versión de parche, sin cambios disruptivos.
Las carteras se actualizarán automáticamente en futuras versiones.
Cada dApp debe ahora proporcionar un projectId
de WalletConnect Cloud para habilitar WalletConnect v2. Esto debe completarse antes de que los servidores de puente WalletConnect v1 se cierren el 28 de junio de 2023. RainbowKit preferirá silenciosamente la v1 para todas las carteras si projectId
no se especifica.
Sigue los pasos abajo para migrar.
Cada dApp que depende de WalletConnect ahora necesita obtener un projectId
de WalletConnect Cloud. Esto es absolutamente gratuito y solo lleva unos minutos.
Proporcione el projectId
a getDefaultWallets
y a los conectores de billetera individuales de RainbowKit como el siguiente:
La dependencia peer de wagmi ha sido actualizada a 0.11.x
.
Sigue los pasos abajo para migrar.
Si usas los hooks de wagmi
en tu aplicación, tendrás que verificar si tu aplicación ha sido afectada por los cambios disruptivos en wagmi
.
Puedes ver su guía de migración aquí.
La dependencia peer de wagmi ha sido actualizada a 0.10.x
.
Sigue los pasos abajo para migrar.
Si usas los hooks de wagmi
en tu aplicación, tendrás que verificar si tu aplicación ha sido afectada por los cambios disruptivos en wagmi
.
Puedes ver su guía de migración aquí.
La dependencia peer de wagmi ha sido actualizada a 0.9.x
.
Sigue los pasos abajo para migrar.
Si usas los hooks de wagmi
en tu aplicación, tendrás que verificar si tu aplicación ha sido afectada por los cambios disruptivos en wagmi
.
Puedes ver su guía de migración aquí.
La dependencia peer de wagmi ha sido actualizada a 0.8.x
.
Sigue los pasos abajo para migrar.
Si usas los hooks de wagmi
en tu aplicación, tendrás que verificar si tu aplicación ha sido afectada por los cambios disruptivos en wagmi
.
Puedes ver su guía de migración aquí.
Si estás creando una lista personalizada de monederos, ahora debes importar cada monedero individualmente para reducir el tamaño del paquete. Observa que, como los monederos ya no están agrupados en el objeto wallet
, todos los monederos ahora tienen un sufijo Wallet
.
También observa que se ha eliminado la capa de compatibilidad con versiones anteriores de Steakwallet. En su lugar, se debería usar Omni.
RainbowKit ha actualizado la dependencia peer wagmi
a 0.5.x
.
Sigue los pasos abajo para migrar.
Actualiza RainbowKit y wagmi a su última versión
Si usas los hooks de wagmi
en tu aplicación, tendrás que verificar si tu aplicación ha sido afectada por los cambios disruptivos en wagmi
.
Puedes ver su guía de migración aquí.
Se eliminó el parámetro chainId
de createConnector
en el tipo Wallet
.
Tenga en cuenta que todas las billeteras incorporadas están utilizando la nueva API. La mayoría de los consumidores no se verán afectados. Este cambio solo afecta a los consumidores que han creado / consumido billeteras personalizadas.
Si anteriormente derivaste URL de RPC a partir de chainId
en createConnector
, ahora puedes eliminar esa lógica ya que wagmi
maneja internamente las URL de RPC cuando se usa con configureChains
.
RainbowKit ha actualizado la dependencia paritaria wagmi
a ^0.4
.
Sigue los pasos abajo para migrar.
Actualiza RainbowKit y wagmi a su última versión
Importa configureChains
de wagmi en lugar de RainbowKit:
RainbowKit ya no exporta una API apiProvider
. Reemplázalo con tu proveedor deseado de wagmi.
Importa alchemyProvider
de wagmi/providers/alchemy
.
Importa infuraProvider
de wagmi/providers/infura
.
Importa jsonRpcProvider
de wagmi/providers/jsonRpc
.
Importa publicProvider
de wagmi/providers/public
.
Renombra WagmiProvider
a WagmiConfig
.
¡Y ya terminaste! 🌈