Guide de migration
Migration de RainbowKit
Les dépendances parallèles wagmi et viem ont atteint 2.x.x
avec des changements incompatibles.
Suivez les étapes ci-dessous pour migrer.
1. Mettez à jour RainbowKit, wagmi
, et viem
vers leurs dernières versions
2. Installez la dépendance parallèle @tanstack/react-query
Avec Wagmi v2, TanStack Query est maintenant une dépendance parallèle obligatoire.
Installez-le avec la commande suivante :
3. Mettez à jour vos configurations RainbowKit et Wagmi
4. Vérifiez les changements incompatibles dans wagmi
et viem
Si vous utilisez les hooks wagmi
et les actions viem
dans votre dApp, vous devrez suivre les guides de migration pour la v2 :
1. Comportement amélioré pour les portefeuilles EIP-6963
Les portefeuilles qui prennent en charge la nouvelle norme de connexion EIP-6963 (y compris Rainbow, MetaMask et d'autres) apparaîtront désormais automatiquement dans une section Installée
lors de l'expérience de connexion au portefeuille. Cela garantit que les utilisateurs peuvent toujours trouver leurs portefeuilles préférés et se connecter aux dApps sans conflits ni boutons de repli.
Les développeurs continuent d'avoir un contrôle total sur la Liste de Portefeuilles Personnalisée pour mettre en avant les portefeuilles préférés des utilisateurs finaux. Il est conseillé de continuer à inclure injectedWallet
et walletConnectWallet
dans votre liste pour prendre en charge toutes les plateformes.
2. Configuration de Wagmi avec getDefaultConfig
Cette nouvelle API simplifie l'expérience de configuration et remplace le besoin d'utiliser directement createConfig
de Wagmi. La configuration de la chaîne est simplifiée, y compris les fournisseurs publics inférés pour les transports
.
La liste des portefeuilles par défaut sera automatiquement incluse, rendant obsolète le besoin d'utiliser getDefaultWallets
et connectorsForWallets
.
Vous pouvez créer une liste de portefeuilles personnalisée en passant des connecteurs de portefeuilles importés ou personnalisés à wallets
. Il n'est plus nécessaire d'instancier les connecteurs de portefeuilles et de passer projectId
et chains
.
3. RainbowKitProvider
Vous n'avez plus besoin de passer chains
à <RainbowKitProvider>
.
4. Chaînes Personnalisées
Le type Chain
a changé conformément à Wagmi v2, et continue de supporter les métadonnées iconUrl
et iconBackground
de RainbowKit.
Exemple avec getDefaultConfig
:
Exemple avec createConfig
:
5. Portefeuilles personnalisés
Les connecteurs de portefeuille RainbowKit ont subi d'importantes modifications pour prendre en charge Wagmi v2. Consultez la documentation mise à jour et un exemple de connecteur pour mettre à niveau les connecteurs de portefeuille personnalisés dans votre dApp.
Les connecteurs de portefeuille prennent également désormais en charge la norme EIP-6963 avec la propriété rdns
. Assurez-vous que cela est renseigné pour éviter les références en double aux portefeuilles prenant en charge l'EIP-6963 dans votre liste de portefeuilles.
La dépendance pair à pair wagmi a été mise à jour pour 1.x.x
.
Suivez les étapes ci-dessous pour migrer.
1. Mettez à jour RainbowKit et wagmi
vers leur dernière version
2. Installer la dépendance pair à pair viem
wagmi v1 nécessite la dépendance pair à pair viem
. Installez-le avec la commande suivante :
Remarque : wagmi n'utilise plus le paquet ethers
en interne. Mais si vous comptez sur l'API Authentication, siwe
nécessitera toujours ethers
en tant que dépendance équivalente.
3. Assurez la compatibilité du regroupeur et du polyfill
Dans les versions précédentes de wagmi qui dépendaient de ethers, les modules fs
, net
, et tls
requis par WalletConnect étaient automatiquement polyfillés. Ce n'est plus le cas avec RainbowKit v1 + wagmi v1, qui sont construits sur viem.
Consultez notre Config Next.js Webpack et les exemples de polyfills de Create React App pour obtenir des conseils de configuration pour votre projet.
Des guides supplémentaires pour le framework Vite et Remix sont disponibles ici.
4. Vérifiez les changements majeurs dans wagmi
Si vous utilisez les crochets wagmi
dans votre application, vous devrez suivre le guide de migration wagmi
vers v1.
Vous pouvez voir leur guide de migration ici.
La dépendance pair à pair de wagmi a été mise à jour vers 0.12.x
.
RainbowKit a adopté le connecteur WalletConnectLegacyConnector
dans wagmi
pour un support continu de WalletConnect v1. Le support pour WalletConnect v2 et WalletConnectConnector
sera bientôt disponible dans une mise à jour mineure, sans changements de rupture.
Les portefeuilles seront automatiquement mis à jour dans les futures versions.
Chaque dApp doit maintenant fournir un projectId
WalletConnect Cloud pour permettre WalletConnect v2. Ceci doit être fait avant que les serveurs de pont WalletConnect v1 ne soient arrêtés le 28 juin 2023. RainbowKit préférera discrètement v1 pour tous les portefeuilles si le projectId
n'est pas spécifié.
Suivez les étapes ci-dessous pour migrer.
Toute dApp qui dépend de WalletConnect doit maintenant obtenir un projectId
de WalletConnect Cloud. C'est absolument gratuit et ne prend que quelques minutes.
Fournissez le projectId
à getDefaultWallets
et aux connecteurs de portefeuille individuels RainbowKit comme suit :
La dépendance pair à pair de wagmi a été mise à jour vers 0.11.x
.
Suivez les étapes ci-dessous pour migrer.
Si vous utilisez les hooks wagmi
dans votre application, vous devrez vérifier si votre application a été affectée par les changements majeurs dans wagmi
.
Vous pouvez voir leur guide de migration ici.
La dépendance pair à pair de wagmi a été mise à jour vers 0.10.x
.
Suivez les étapes ci-dessous pour migrer.
Si vous utilisez les hooks wagmi
dans votre application, vous devrez vérifier si votre application a été affectée par les changements majeurs dans wagmi
.
Vous pouvez voir leur guide de migration ici.
La dépendance pair à pair de wagmi a été mise à jour vers 0.9.x
.
Suivez les étapes ci-dessous pour migrer.
Si vous utilisez les hooks wagmi
dans votre application, vous devrez vérifier si votre application a été affectée par les changements majeurs dans wagmi
.
Vous pouvez voir leur guide de migration ici.
La dépendance pair à pair de wagmi a été mise à jour à 0.8.x
.
Suivez les étapes ci-dessous pour migrer.
Si vous utilisez les hooks wagmi
dans votre application, vous devrez vérifier si votre application a été affectée par les changements majeurs dans wagmi
.
Vous pouvez voir leur guide de migration ici.
Si vous créez une liste de portefeuilles personnalisée, vous devez maintenant importer chaque portefeuille individuellement afin de réduire la taille du bundle. Notez que puisque les portefeuilles ne sont plus espacés de noms via l'objet wallet
, tous les portefeuilles ont maintenant un suffixe Wallet
.
Notez également que la couche de compatibilité vers l'arrière de Steakwallet a été supprimée. Omni doit être utilisé à la place.
RainbowKit a mis à jour la dépendance wagmi
à 0.5.x
.
Suivez les étapes ci-dessous pour migrer.
Mettez à jour RainbowKit et wagmi à leur dernière version
Si vous utilisez les hooks wagmi
dans votre application, vous devrez vérifier si votre application a été affectée par les changements majeurs dans wagmi
.
Vous pouvez consulter leur guide de migration ici.
Suppression du paramètre chainId
de createConnector
sur le type Wallet
.
Notez que tous les portefeuilles intégrés utilisent la nouvelle API. La plupart des consommateurs ne seront pas affectés. Ce changement n'affecte que les consommateurs qui ont créé/consommé des portefeuilles personnalisés.
Si vous avez précédemment dérivé des URL RPC à partir de chainId
sur createConnector
, vous pouvez maintenant supprimer cette logique car wagmi
gère maintenant les URL RPC en interne lorsqu'il est utilisé avec configureChains
.
RainbowKit a mis à jour la dépendance homologue wagmi
à ^0.4
.
Suivez les étapes ci-dessous pour migrer.
Mettez à jour RainbowKit et wagmi à leur dernière version
Importez configureChains
de wagmi au lieu de RainbowKit:
RainbowKit n'exporte plus une API apiProvider
. Remplacez-le par votre fournisseur souhaité de wagmi.
Importez alchemyProvider
de wagmi/providers/alchemy
.
Importez infuraProvider
de wagmi/providers/infura
.
Importez jsonRpcProvider
de wagmi/providers/jsonRpc
.
Importez publicProvider
de wagmi/providers/public
.
Renommez WagmiProvider
en WagmiConfig
.
Et voilà! 🌈