Migrationsleitfaden
RainbowKit migrieren
Die wagmi und viem Peer-Abhängigkeiten haben 2.x.x
mit Breaking Changes erreicht.
Befolgen Sie die Schritte unten, um zu migrieren.
1. RainbowKit, wagmi
und viem
auf die neuesten Versionen aktualisieren
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. Überprüfen Sie wagmi
und viem
auf Breaking Changes
Wenn Sie wagmi
Hooks und viem
Aktionen in Ihrem dApp verwenden, müssen Sie die Migrationsanleitungen 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), werden nun automatisch in einem Abschnitt Installiert
während des Connect Wallet-Erlebnisses erscheinen. Dies stellt sicher, dass Benutzer immer ihre bevorzugten Wallets finden und ohne Konflikte oder Fallback-Buttons mit dApps verbinden können.
Entwickler behalten volle Kontrolle über die benutzerdefinierte Wallet-Liste, um bevorzugte Wallets für Endbenutzer hervorzuheben. Es wird empfohlen, weiterhin das injectedWallet
und das walletConnectWallet
in Ihre Liste aufzunehmen, 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 Kettenkonfiguration wird vereinfacht, einschließlich der abgeleiteten öffentlichen Anbieter für transports
.
Die Standard-Wallet-Liste wird automatisch einbezogen, was die Notwendigkeit zur Verwendung von getDefaultWallets
und connectorsForWallets
überflüssig macht.
Sie können eine benutzerdefinierte Wallet-Liste erstellen, indem Sie importierte oder benutzerdefinierte Wallet-Connectoren an wallets
übergeben. Die Instanziierung von Wallet-Connectors und das Übergeben von projectId
und chains
ist nicht mehr erforderlich.
3. RainbowKitProvider
Es ist nicht mehr erforderlich, chains
an <RainbowKitProvider>
zu übergeben.
4. Benutzerdefinierte Chains
Der Chain
-Typ hat sich in Übereinstimmung mit 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 erfahren, um Wagmi v2 zu unterstützen. Verweisen Sie auf die aktualisierten Dokumente und einen Beispiel-Connector, um alle benutzerdefinierten Wallet-Connectoren in Ihrer dApp zu aktualisieren.
Wallet-Connectors unterstützen jetzt auch den EIP-6963 Standard mit dem rdns
-Prop. Stellen Sie sicher, dass dies ausgefüllt ist, um doppelte Referenzen zu EIP-6963 unterstützenden Wallets in Ihrer Wallet-Liste zu vermeiden.
Die wagmi Peer-Abhängigkeit wurde auf 1.x.x
aktualisiert.
Befolgen Sie die Schritte unten, um zu migrieren.
1. Aktualisieren Sie RainbowKit und wagmi
auf die neueste Version
2. Installieren Sie die viem
Peer-Abhängigkeit
wagmi v1 erfordert die viem
Peer-Abhängigkeit. Installieren Sie es mit dem folgenden Befehl:
3. Stellen Sie Kompatibilität mit Bundler und Polyfill sicher
In früheren Versionen von wagmi, die auf ethers basierten, wurden die von WalletConnect benötigten Module fs
, net
und tls
automatisch polyfilled. Dies ist nicht mehr der Fall bei RainbowKit v1 + wagmi v1, die auf viem aufgebaut sind.
Verweisen Sie auf unsere Next.js Webpack-Konfiguration und Create React App Polyfills Beispiele zur Konfiguration Ihrer Projekte.
Zusätzliche Framework-Leitfäden für Vite und Remix sind hier verfügbar.
4. Überprüfen Sie auf breaking changes in wagmi
Wenn Sie wagmi
-Hooks in Ihrer Anwendung verwenden, müssen Sie dem wagmi
-Migrationsleitfaden 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
-Connector in wagmi
für die fortgesetzte Unterstützung von WalletConnect v1 übernommen. Unterstützung für WalletConnect v2 und WalletConnectConnector
wird bald als Patch-Release verfügbar sein, ohne breaking changes.
Wallets werden in zukünftigen Versionen automatisch umgestellt.
Jede dApp muss nun eine WalletConnect Cloud projectId
angeben, um WalletConnect v2 zu aktivieren. Dies muss abgeschlossen sein, bevor die WalletConnect v1-Bridge-Server am 28. Juni 2023 abgeschaltet werden. RainbowKit wird stillschweigend v1 für alle Wallets bevorzugen, wenn projectId
nicht angegeben ist.
Befolgen Sie die Schritte unten, um zu migrieren.
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.
Befolgen Sie die Schritte unten, um zu migrieren.
Wenn Sie wagmi
-Hooks in Ihrer Anwendung verwenden, müssen Sie überprü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.
Befolgen Sie die Schritte unten, um zu migrieren.
Wenn Sie wagmi
-Hooks in Ihrer Anwendung verwenden, müssen Sie überprü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.
Befolgen Sie die Schritte unten, um zu migrieren.
Wenn Sie wagmi
-Hooks in Ihrer Anwendung verwenden, müssen Sie überprü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.
Befolgen Sie die Schritte unten, um zu migrieren.
Wenn Sie wagmi
-Hooks in Ihrer Anwendung verwenden, müssen Sie überprü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. Beachten Sie, dass Wallets nicht mehr über das wallet
-Objekt namensbasiert sind und nun alle ein Wallet
-Suffix haben.
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.
Befolgen Sie die Schritte unten, um zu migrieren.
Aktualisieren Sie RainbowKit und wagmi auf ihre neueste Version
Wenn Sie wagmi
-Hooks in Ihrer Anwendung verwenden, müssen Sie überprüfen, ob Ihre Anwendung von den breaking changes in wagmi
betroffen ist.
Sie können deren Migrationsanleitung hier sehen.
Entfernt den chainId
Parameter von createConnector
im Wallet
Typ.
Bitte beachten Sie, dass alle integrierten Wallets die neue API verwenden. Die meisten Nutzer werden nicht betroffen sein. Diese Änderung betrifft nur Nutzer, die benutzerdefinierte Wallets erstellt/verwendet haben.
Wenn Sie zuvor RPC-URLs aus der chainId
auf createConnector
abgeleitet haben, können Sie diese Logik jetzt entfernen, da wagmi
jetzt RPC-URLs intern verwaltet, wenn es mit configureChains
verwendet wird.
RainbowKit hat die wagmi
Peerdependency auf ^0.4
aktualisiert.
Befolgen Sie die Schritte unten, um zu migrieren.
Aktualisieren Sie RainbowKit und wagmi auf ihre neueste Version
Importieren Sie configureChains
von wagmi anstelle von RainbowKit:
RainbowKit exportiert keine apiProvider
API mehr. Ersetzen Sie es durch den gewünschten Anbieter von wagmi.
Importieren Sie alchemyProvider
aus wagmi/providers/alchemy
.
Importieren Sie infuraProvider
aus wagmi/providers/infura
.
Importieren Sie jsonRpcProvider
aus wagmi/providers/jsonRpc
.
Importieren Sie publicProvider
aus wagmi/providers/public
.
Benenne WagmiProvider
in WagmiConfig
um.
Und fertig! 🌈