Zum Hauptinhalt springen
  1. Der Lesevorgang ruft verschlüsselte Transaktionen mit speziellen RPC-Methoden aus dem Indexer ab.
  2. Nur der Benutzer oder eine von ihm autorisierte Person kann die Historie mit seinem Anzeigeschlüssel entschlüsseln.
  3. Nutze dies überall dort, wo die Wallet backfills ausführt: beim Entsperren der Wallet, Öffnen der privaten Wallet, Fortsetzen der App, erneuten Herstellen der Netzwerkverbindung, bei einer Lücke im stream oder beim Wiederherstellen der Wallet.
  1. getSignaturesForAddress gibt öffentliche Signaturen zurück.
  2. Der RPC gibt die öffentliche Historie zurück.

Erste Schritte

1

Voraussetzungen

Für die TypeScript-Beispiele benötigst du Node.js 24 oder höher, pnpm 11.18.0 und die Solana CLI.
Quelle: sdk-libs/ts
Füge einen Helius API key hinzu:
.env
Die Beispiele verwenden standardmäßig die Solana CLI wallet als Gebührenzahler. Der Gebührenzahler muss devnet SOL enthalten. Siehe So erhältst du Devnet SOL.
2

View-Tag ableiten

  • senderViewTag ist senderAddress.confidentialViewTag(), der öffentliche Solana-Schlüssel des Absenders in vertraulichen Rings. Der Indexer verwendet ihn, um passende verschlüsselte Ausgaben zurückzugeben.
3

Transaktionsausgaben aus dem Indexer abrufen

  • getShieldedTransactionsByTags ruft die verschlüsselten Ausgaben ab, die senderViewTag zugeordnet sind.
  • atSlot(depositTx.slot) wartet, bis der Indexer die Einzahlung in diesem slot erfasst hat.
  • Der Indexer gibt verschlüsselte Ausgabedaten zurück. Er entschlüsselt die private Historie nicht.
4

Private Historie entschlüsseln

  • LocalShieldedKeys.fromKeypair(sender) stellt die Schlüssel des Absenders für die lokale Entschlüsselung bereit.
  • decryptTransactions entschlüsselt übereinstimmende Ausgaben und schreibt den Verlauf in Wallet.
  • wallet.privateTransactions() liest den entschlüsselten Verlauf.
  • decryptToBalances gibt nur Guthaben zurück.
Beispiel-response:
Unter Privater Zustand und UTXOs erfährst du, wie Eigentümer-Tags und private Solana-Token-Konten funktionieren.

Vollständiges Codebeispiel

Klone das Beispiel und führe es aus:
Die Beispiele verwenden hier einen vertraulichen Ring auf local/devnet.

Verwandte Anleitungen

Read a Private Balance

Deposit

Transfer

Withdraw

Nicht gefunden, wonach du gesucht hast?

Melde dich! Telegram | E-Mail | Kontakt