getTokenAccountBalance gibt den token-Bestand eines bestimmten SPL Token Account zurück. Dies ist unverzichtbar für Anwendungen, die die Menge eines bestimmten token in einem Token Account anzeigen oder überprüfen müssen.
Häufige Anwendungsfälle
- token-Bestände von Benutzern anzeigen: Zeige Benutzern, wie viel eines bestimmten token sie in ihrer Wallet besitzen (zugehörige Token Accounts).
- token-Verfügbarkeit prüfen: Prüfe vor einer Übertragung oder einem anderen Vorgang, ob ein Token Account über ausreichend Guthaben verfügt.
- Portfolio-Tracking: Fasse die token-Bestände eines Benutzers aus verschiedenen Token Accounts zusammen.
- Interaktionen mit Smart Contracts: Smart Contracts können token-Bestände als Teil ihrer Logik abfragen. On-Chain-Programme greifen jedoch normalerweise direkt über die Account-Informationen auf diese Daten zu.
Request-Parameter
- Öffentlicher Schlüssel des Token Account (string, erforderlich): Der Base58-codierte öffentliche Schlüssel des SPL Token Account, den du abfragen möchtest.
- Konfigurationsobjekt (object, optional): Ein optionales Objekt, das das folgende Feld enthalten kann:
commitment(string, optional): Gibt den commitment-Level für die Abfrage an. Wenn du ihn weglässt, wird das standardmäßige commitment des RPC node verwendet (normalerweisefinalized).
Response-Struktur
Das Feldresult in der JSON-RPC-response enthält ein Objekt mit den Feldern context und value. Das Objekt value enthält die Informationen zum Bestand:
amount(string): Der Rohbestand des Token Account als String. Dies ist eine Ganzzahl, die die kleinste Einheit des token darstellt. Hat ein token beispielsweise 6 Dezimalstellen, entspricht der Betrag „1000000“ einem token.decimals(u8): Die Anzahl der für diesen token-Typ definierten Dezimalstellen, die durch seine Mint festgelegt wird.uiAmount(number | null): Der unter Berücksichtigung vondecimalsals Gleitkommazahl formatierte Bestand. Dieses Feld kann in manchen Kontextennulloder zugunsten vonuiAmountStringveraltet sein.uiAmountString(string): Der unter Berücksichtigung vondecimalsals String formatierte Bestand. Dieses Format wird für die Anzeige oft bevorzugt, um mögliche Ungenauigkeiten bei Gleitkommazahlen zu vermeiden.
Codebeispiele
Tipps für Entwickler
- Token Account vs. Mint Account vs. Owner Account: Stelle sicher, dass du den öffentlichen Schlüssel des SPL Token Account angibst, nicht die Mint-Adresse des token oder die Wallet-Adresse des Besitzers. Token Accounts eines Besitzers rufst du normalerweise mit
getTokenAccountsByOwnerab. - Dezimalstellen: Verwende immer das Feld
decimals, umamountkorrekt zu interpretieren. Für die Anzeige istuiAmountStringim Allgemeinen sicherer alsuiAmount, da es Probleme mit der Gleitkommagenauigkeit vermeidet. - Nicht vorhandene Accounts: Wenn der angegebene öffentliche Schlüssel keinem vorhandenen Token Account entspricht, kann das Verhalten je nach RPC-Anbieter oder Bibliothek leicht variieren. Häufig ist
valuein der response jedochnulloder es wird ein Fehler ausgelöst. Das JavaScript-Beispiel enthält eine einfache Prüfung aufbalance.value. - Commitment-Level: Verschiedene commitment-Level können beeinflussen, wie schnell du Änderungen am Bestand siehst. Das gilt besonders für sehr aktuelle Transaktionen.
finalizedist am sichersten, hat aber die höchste Latenz.
getTokenAccountBalance korrekt abzurufen und zu interpretieren.
Verwandte Methoden
getTokenAccountsByOwner
Rufe alle Token Accounts eines Besitzers ab
getTokenSupply
Rufe den Gesamtbestand einer token-Mint ab