Migrations-Handbuch
RainbowKit migrieren
Die wagmi und viem Peer-Abhängigkeiten haben 2.x.x mit brechenden Änderungen erreicht.
Folgen Sie den untenstehenden Schritten, um die Migration durchzuführen.
1. Aktualisieren Sie RainbowKit, wagmi und viem auf die neuesten Versionen
2. Installieren Sie die @tanstack/react-query Peer-Abhängigkeit
Mit Wagmi v2 ist TanStack Query jetzt eine erforderliche Peer-Abhängigkeit.
Installieren Sie es mit dem folgenden Befehl:
3. Aktualisieren Sie Ihre RainbowKit- und Wagmi-Konfigurationen
4. Prüfen Sie auf Breaking Changes in wagmi und viem
Wenn Sie wagmi-Hooks und viem-Aktionen in Ihrer dApp verwenden, müssen Sie die Migrationshandbücher für v2 befolgen:
1. Verbessertes Verhalten für EIP-6963 Wallets
Wallets, die den neuen EIP-6963-Verbindungsstandard unterstützen (einschließlich Rainbow, MetaMask und mehr), erscheinen jetzt automatisch in einem Installierte Abschnitt während der Wallet-Verbindungserfahrung. Dies stellt sicher, dass Benutzer immer ihre bevorzugten Wallets finden und ohne Konflikte oder Fallback-Buttons zu dApps verbinden können.
Entwickler haben weiterhin die volle Kontrolle über die benutzerdefinierte Wallet-Liste, um bevorzugte Wallets für Endbenutzer hervorzuheben. Es wird empfohlen, dass Sie die injectedWallet und walletConnectWallet in Ihre Liste aufnehmen, um alle Plattformen zu unterstützen.
2. Wagmi Konfiguration mit getDefaultConfig
Diese neue API vereinfacht die Konfigurationserfahrung und ersetzt die Notwendigkeit, Wagmis createConfig direkt zu verwenden. Die Konfiguration der Chains wird vereinfacht, einschließlich automatisch abgeleiteter öffentlicher Anbieter für transports.
Die Standard-Wallet-Liste wird automatisch enthalten sein, wodurch die Notwendigkeit entfällt, getDefaultWallets und connectorsForWallets zu verwenden.
Sie können eine benutzerdefinierte Wallet-Liste erstellen, indem Sie importierte oder benutzerdefinierte Wallet-Connectors an wallets übergeben. Die Instanziierung von Wallet-Connectors und die Übergabe von projectId und chains sind nicht mehr erforderlich.
3. RainbowKitProvider
Sie müssen keine chains mehr an <RainbowKitProvider> übergeben.
4. Benutzerdefinierte Chains
Der Chain-Typ hat sich gemäß Wagmi v2 geändert und unterstützt weiterhin RainbowKits iconUrl und iconBackground Metadaten.
Beispiel mit getDefaultConfig:
Beispiel mit createConfig:
5. Benutzerdefinierte Wallets
RainbowKit Wallet-Connectors haben erhebliche Änderungen durchlaufen, um Wagmi v2 zu unterstützen. Verweisen Sie auf die aktualisierten Dokumentationen und einen Beispiel-Connector, um alle benutzerdefinierten Wallet-Connectors in Ihrer dApp zu aktualisieren.
Wallet-Connectors unterstützen jetzt auch den EIP-6963-Standard mit der rdns-Eigenschaft. Stellen Sie sicher, dass diese ausgefüllt ist, um doppelte Referenzen auf EIP-6963 unterstützende Wallets in Ihrer Wallet-Liste zu verhindern.
Die wagmi Peer-Abhängigkeit wurde auf 1.x.x aktualisiert.
Folgen Sie den untenstehenden Schritten, um die Migration durchzuführen.
1. Aktualisieren Sie RainbowKit und wagmi auf die neuesten Versionen
2. Installieren Sie die viem Peer-Abhängigkeit
wagmi v1 benötigt die viem Peer-Abhängigkeit. Installieren Sie es mit dem folgenden Befehl:
3. Stellen Sie die Kompatibilität des Bundlers und der Polyfills sicher
Verweisen Sie auf unsere Next.js Webpack Config-Beispiel für eine Anleitung zur Konfiguration Ihres Projekts.
Weitere Framework-Anleitungen für Vite und Remix sind hier verfügbar.
4. Prüfen Sie auf Breaking Changes in wagmi
Wenn Sie wagmi Hooks in Ihrer Anwendung verwenden, müssen Sie dem Migrationsleitfaden von wagmi zu v1 folgen.
Sie können deren Migrationsleitfaden hier einsehen.
Die wagmi Peer-Abhängigkeit wurde auf 0.12.x aktualisiert.
RainbowKit hat den WalletConnectLegacyConnector in wagmi übernommen, um weiterhin WalletConnect v1 zu unterstützen. Die Unterstützung für WalletConnect v2 und den WalletConnectConnector wird bald als Patch-Veröffentlichung ohne Breaking Changes verfügbar sein.
Wallets werden in zukünftigen Veröffentlichungen automatisch migriert.
Jede dApp muss jetzt eine WalletConnect Cloud projectId bereitstellen, um WalletConnect v2 zu aktivieren. Dies muss vor dem Abschalten der WalletConnect v1 Bridge-Server am 28. Juni 2023 erledigt sein. RainbowKit bevorzugt stillschweigend v1 für alle Wallets, wenn projectId nicht angegeben ist.
Folgen Sie den untenstehenden Schritten, um die Migration durchzuführen.
Jede dApp, die auf WalletConnect angewiesen ist, muss jetzt eine projectId von WalletConnect Cloud erhalten. Dies ist absolut kostenlos und dauert nur wenige Minuten.
Geben Sie die projectId an getDefaultWallets und einzelne RainbowKit Wallet-Connectors wie folgt:
Die wagmi Peer-Abhängigkeit wurde auf 0.11.x aktualisiert.
Folgen Sie den untenstehenden Schritten, um die Migration durchzuführen.
Wenn Sie wagmi Hooks in Ihrer Anwendung verwenden, müssen Sie prüfen, ob Ihre Anwendung von den Breaking Changes in wagmi betroffen ist.
Sie können deren Migrationsleitfaden hier einsehen.
Die wagmi Peer-Abhängigkeit wurde auf 0.10.x aktualisiert.
Folgen Sie den untenstehenden Schritten, um die Migration durchzuführen.
Wenn Sie wagmi Hooks in Ihrer Anwendung verwenden, müssen Sie prüfen, ob Ihre Anwendung von den Breaking Changes in wagmi betroffen ist.
Sie können deren Migrationsleitfaden hier einsehen.
Die wagmi Peer-Abhängigkeit wurde auf 0.9.x aktualisiert.
Folgen Sie den untenstehenden Schritten, um die Migration durchzuführen.
Wenn Sie wagmi Hooks in Ihrer Anwendung verwenden, müssen Sie prüfen, ob Ihre Anwendung von den Breaking Changes in wagmi betroffen ist.
Sie können deren Migrationsleitfaden hier einsehen.
Die wagmi Peer-Abhängigkeit wurde auf 0.8.x aktualisiert.
Folgen Sie den untenstehenden Schritten, um die Migration durchzuführen.
Wenn Sie wagmi Hooks in Ihrer Anwendung verwenden, müssen Sie prüfen, ob Ihre Anwendung von den Breaking Changes in wagmi betroffen ist.
Sie können deren Migrationsleitfaden hier einsehen.
Wenn Sie eine benutzerdefinierte Wallet-Liste erstellen, müssen Sie jetzt jedes Wallet einzeln importieren, um die Bundle-Größe zu reduzieren. Da Wallets nicht mehr über das wallet-Objekt namespacesiert sind, haben jetzt alle Wallets ein Wallet-Suffix.
Beachten Sie auch, dass die Steakwallet-Rückwärtskompatibilitätsschicht entfernt wurde. Omni sollte stattdessen verwendet werden.
RainbowKit hat die wagmi Peer-Abhängigkeit auf 0.5.x aktualisiert.
Folgen Sie den untenstehenden Schritten, um die Migration durchzuführen.
Aktualisieren Sie RainbowKit und wagmi auf die neuesten Versionen
Wenn Sie wagmi Hooks in Ihrer Anwendung verwenden, müssen Sie prüfen, ob Ihre Anwendung von den Breaking Changes in wagmi betroffen ist.
Sie können deren Migrationsleitfaden hier einsehen.
Der chainId-Parameter wurde von createConnector auf dem Wallet-Typ entfernt.
Bitte beachten Sie, dass alle eingebauten Wallets die neue API verwenden. Die meisten Kunden sind davon nicht betroffen. Diese Änderung betrifft nur Nutzer, die benutzerdefinierte Wallets erstellt/verwendet haben.
Haben Sie zuvor RPC-URLs von der chainId auf createConnector abgeleitet, können Sie diese Logik jetzt entfernen, da wagmi jetzt RPC-URLs intern behandelt, wenn es mit configureChains verwendet wird.
RainbowKit hat die wagmi Peer-Abhängigkeit auf ^0.4 aktualisiert.
Folgen Sie den untenstehenden Schritten, um die Migration durchzuführen.
Aktualisieren Sie RainbowKit und wagmi auf die neuesten Versionen
Importieren Sie configureChains von wagmi anstatt von RainbowKit:
RainbowKit exportiert keine apiProvider API mehr. Ersetzen Sie sie durch Ihren gewünschten Provider von wagmi.
Importieren Sie alchemyProvider von wagmi/providers/alchemy.
Importieren Sie infuraProvider von wagmi/providers/infura.
Importieren Sie jsonRpcProvider von wagmi/providers/jsonRpc.
Importieren Sie publicProvider von wagmi/providers/public.
Benennen Sie WagmiProvider in WagmiConfig um.
Und das war's! 🌈