Guide de migration
Migration de RainbowKit
Les dépendances wagmi et viem ont atteint la version 2.x.x avec des changements significatifs.
Suivez les étapes ci-dessous pour effectuer la migration.
1. Mettez à jour RainbowKit, wagmi, et viem à leurs dernières versions
2. Installez la dépendance @tanstack/react-query
Avec Wagmi v2, TanStack Query est désormais une dépendance requise.
Installez-la avec la commande suivante :
3. Mettez à jour vos configurations RainbowKit et Wagmi
4. Vérifiez les changements importants 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 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 autres) apparaîtront automatiquement dans une section Installé lors de l'expérience de connexion au portefeuille. Cela garantit que les utilisateurs puissent toujours trouver leurs portefeuilles préférés et se connecter aux dApps sans conflits ni boutons de secours.
Les développeurs conservent un contrôle total sur la Liste de portefeuilles personnalisés pour mettre en avant les portefeuilles préférés des utilisateurs finaux. Il est recommandé de continuer à inclure injectedWallet et walletConnectWallet dans votre liste pour prendre en charge toutes les plateformes.
2. Configuration Wagmi avec getDefaultConfig
Cette nouvelle API simplifie l'expérience de configuration et remplace la nécessité d'utiliser directement le createConfig de Wagmi. La configuration de chaîne est simplifiée, y compris les fournisseurs publics déduits pour les transports.
La liste de portefeuilles par défaut sera automatiquement incluse, supprimant ainsi le besoin d'utiliser getDefaultWallets et connectorsForWallets.
Vous pouvez créer une Liste de portefeuilles personnalisés en passant des connecteurs de portefeuille importés ou personnalisés à wallets. L'instanciation des connecteurs de portefeuille et le passage de projectId et chains ne sont plus nécessaires.
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 prendre en charge 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 des changements importants pour prendre en charge Wagmi v2. Consultez les documents mis à jour et un exemple de connecteur pour mettre à jour tous les connecteurs de portefeuilles 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 soit rempli pour éviter les duplications de références aux portefeuilles prenant en charge EIP-6963 dans votre liste de portefeuilles.
La dépendance wagmi a été mise à jour vers 1.x.x.
Suivez les étapes ci-dessous pour effectuer la migration.
1. Mettez à jour RainbowKit et wagmi à leur dernière version
2. Installez la dépendance viem
wagmi v1 nécessite la dépendance viem. Installez-la avec la commande suivante :
3. Assurez la compatibilité du bundler et du polyfill
Référez-vous à notre échantillon de configuration Webpack pour Next.js pour des conseils de configuration pour votre projet.
Des guides de framework supplémentaires pour Vite et Remix sont disponibles ici.
4. Vérifiez les changements importants dans wagmi
Si vous utilisez les hooks wagmi dans votre application, vous devrez suivre le guide de migration de wagmi vers v1.
Vous pouvez voir leur guide de migration ici.
La dépendance wagmi a été mise à jour à 0.12.x.
RainbowKit a adopté le connecteur WalletConnectLegacyConnector dans wagmi pour continuer à prendre en charge WalletConnect v1. La prise en charge de WalletConnect v2 et du WalletConnectConnector sera bientôt disponible avec un correctif, sans changements importants.
Les portefeuilles seront automatiquement transitionnés dans les futures versions.
Chaque dApp doit désormais fournir un projectId de WalletConnect Cloud pour activer WalletConnect v2. Cela doit être complété avant que les serveurs de pont de WalletConnect v1 ne soient arrêtés le 28 juin 2023. RainbowKit préférera tranquillement v1 pour tous les portefeuilles si projectId n'est pas spécifié.
Suivez les étapes ci-dessous pour effectuer la migration.
Chaque dApp qui repose sur 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 RainbowKit individuels comme suit :
La dépendance wagmi a été mise à jour à 0.11.x.
Suivez les étapes ci-dessous pour effectuer la migration.
Si vous utilisez les hooks wagmi dans votre application, vous devrez vérifier si votre application a été affectée par les changements importants dans wagmi.
Vous pouvez voir leur guide de migration ici.
La dépendance wagmi a été mise à jour à 0.10.x.
Suivez les étapes ci-dessous pour effectuer la migration.
Si vous utilisez les hooks wagmi dans votre application, vous devrez vérifier si votre application a été affectée par les changements importants dans wagmi.
Vous pouvez voir leur guide de migration ici.
La dépendance wagmi a été mise à jour à 0.9.x.
Suivez les étapes ci-dessous pour effectuer la migration.
Si vous utilisez les hooks wagmi dans votre application, vous devrez vérifier si votre application a été affectée par les changements importants dans wagmi.
Vous pouvez voir leur guide de migration ici.
La dépendance wagmi a été mise à jour à 0.8.x.
Suivez les étapes ci-dessous pour effectuer la migration.
Si vous utilisez les hooks wagmi dans votre application, vous devrez vérifier si votre application a été affectée par les changements importants dans wagmi.
Vous pouvez voir leur guide de migration ici.
Si vous créez une liste de portefeuilles personnalisés, vous devez maintenant importer chaque portefeuille individuellement pour réduire la taille du bundle. Notez que depuis que les portefeuilles ne sont plus nommés via l'objet wallet, tous les portefeuilles ont maintenant un suffixe Wallet.
Notez également que la couche de compatibilité avec les anciens portefeuilles 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 effectuer la migration.
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 importants dans wagmi.
Vous pouvez voir leur guide de migration ici.
Le paramètre chainId a été supprimé 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 affecte uniquement les consommateurs qui ont créé/consommé des portefeuilles personnalisés.
Si vous dériviez auparavant les URL RPC à partir du chainId sur createConnector, vous pouvez désormais supprimer cette logique car wagmi gère désormais les URL RPC en interne lorsqu'il est utilisé avec configureChains.
RainbowKit a mis à jour la dépendance wagmi à ^0.4.
Suivez les étapes ci-dessous pour effectuer la migration.
Mettez à jour RainbowKit et wagmi à leur dernière version
Importez configureChains de wagmi au lieu de RainbowKit :
RainbowKit n'exporte plus de apiProvider API. 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à ! 🌈