Wie kann ich WalletConnect mit mehreren Wallets gleichzeitig verwenden?

Melden
  1. Einleitung und Grundprinzip
  2. Verwaltung mehrerer Sitzungen
  3. Implementierungsdetails
  4. Praktisches Beispiel mit JavaScript
  5. Herausforderungen und Best Practices
  6. Fazit

Einleitung und Grundprinzip

WalletConnect ist ein Protokoll, das es ermöglicht, eine Verbindung zwischen dezentralen Applikationen (DApps) und unterschiedlichen Wallets herzustellen. Normalerweise wird eine Session zwischen einer DApp und einer Wallet aufgebaut, die dann über einen Connector verwaltet wird. Um mehrere Wallets gleichzeitig zu verwenden, muss man das WalletConnect-Protokoll so nutzen, dass für jedes Wallet eine eigene Verbindung (Session) eingerichtet und verwaltet wird.

Verwaltung mehrerer Sitzungen

Jede WalletConnect-Verbindung wird durch eine eigene Session identifiziert. Das bedeutet für die Implementierung, dass man mehrere Instanzen des WalletConnect-Clients benötigt, die jeweils eine eigene Session verwalten. Diese Sessions können parallel laufen, und jede Instanz kommuniziert mit ihrer jeweils verbundenen Wallet.

Implementierungsdetails

In der Praxis erzeugen Sie für jedes Wallet, das verbunden werden soll, eine neue WalletConnect-Client-Instanz. Jede dieser Instanzen initialisiert eine separate Verbindung und hält ihre Sessiondaten (z.B. Session-Status, Accounts, ChainId) isoliert. Dabei ist es wichtig, die Sitzungen zu speichern und zu verwalten, beispielsweise in einem lokalen Speicher oder im Zustand des Frontends, damit auch nach einem Reload die verschiedenen Verbindungen erhalten bleiben.

Der Ablauf für mehrere Wallets könnte so aussehen: Nutzer initiiert Verbindungsaufbau für Wallet A, es wird eine WalletConnect-Instanz erstellt und verbunden. Danach initiiert der Nutzer Verbindungsaufbau für Wallet B, es wird eine weitere Instanz erstellt und verbunden. Beide Sitzungen laufen unabhängig und können auch unabhängig voneinander Transaktionen signieren.

Praktisches Beispiel mit JavaScript

Zum Beispiel mit der WalletConnect v1 oder v2 JavaScript SDK können Sie wie folgt vorgehen:

Sie erstellen eine Klasse oder ein Objekt, das jeweils eine einzelne WalletConnect-Verbindung handhabt. Für mehrere Wallets verwalten Sie mehrere dieser Objekte in einer Datenstruktur, z.B. einem Array oder Map.

Dies erleichtert auch den Umgang mit mehreren QR-Codes, da für jede Verbindung ein eigener QR-Code generiert wird und separat angezeigt wird.

Herausforderungen und Best Practices

Der gleichzeitige Betrieb mehrerer WalletConnect-Sessions erfordert ein gutes Management der Sessions und der UI. Es ist wichtig, deutlich anzuzeigen, welches Wallet aktuell für welche Aktion verwendet wird. Außerdem sollte man die Sessions sicher speichern, damit Nutzer nicht bei jedem Besuch die Verbindung neu herstellen müssen.

Ein weiterer Punkt ist das Ressourcenmanagement: Je mehr Sessions aktiv sind, desto höher ist die Last auf der Applikation und auf dem Netzwerk. Daher empfiehlt es sich, inaktive Sessions zu erkennen und gegebenenfalls zu schließen.

Fazit

WalletConnect unterstützt von Haus aus den Aufbau mehrerer Sessions, sodass mehrere Wallets gleichzeitig verbunden sein können. Dies erfordert vor allem in der Applikation eine strukturierte Verwaltung mehrerer Instanzen und Sessions sowie eine übersichtliche Benutzerführung. Durch separate WalletConnect-Client-Instanzen pro Wallet können Sie problemlos mehrere Wallets parallel nutzen und so die Flexibilität und Funktionalität Ihrer DApp erweitern.

0

Kommentare