getTokenAccountBalance RPC-Methode gibt den Token-Saldo eines bestimmten SPL Token-Kontos zurück. Dies ist unerlässlich für Anwendungen, die die Menge eines bestimmten Tokens anzeigen oder verifizieren müssen, die von einem Token-Konto gehalten wird.
Häufige Anwendungsfälle
- Anzeigen von Nutzertokenständen: Anzeigen, wie viel von einem bestimmten Token der Benutzer in seiner Wallet (zugehörige Token-Konten) besitzt.
- Überprüfung der Token-Verfügbarkeit: Überprüfen, ob ein Token-Konto ausreichend Guthaben hat, bevor ein Transfer oder eine andere Aktion versucht wird.
- Portfolio-Tracking: Aggregieren von Token-Bilanzen für einen Benutzer über verschiedene Token-Konten hinweg.
- Interaktionen mit Smart Contracts: Smart Contracts können Token-Bilanzen als Teil ihrer Logik abfragen (obwohl On-Chain-Programme diese Daten normalerweise direkt aus den Kontoinformationen abrufen).
Anforderungsparameter
- Öffentlicher Schlüssel des Token-Kontos (string, erforderlich): Der Base-58-kodierte öffentliche Schlüssel des SPL Token-Kontos, das Sie abfragen möchten.
- Konfigurationsobjekt (object, optional): Ein optionales Objekt, das das folgende Feld enthalten kann:
commitment(string, optional): Gibt die Commitment-Stufe für die Abfrage an. Wenn weggelassen, wird das Standard-Commitment des RPC-Knotens verwendet (normalerweisefinalized).
Antwortstruktur
Das Feldresult in der JSON-RPC-Antwort enthält ein Objekt mit einem context- und einem value-Feld. Das value-Objekt enthält die Balance-Informationen:
amount(string): Der Rohsaldo des Token-Kontos als Zeichenkette. Dies ist eine Ganzzahl, die die kleinste Einheit des Tokens repräsentiert (z. B., wenn ein Token 6 Dezimalstellen hat, bedeutet ein Betrag von “1000000” 1 Token).decimals(u8): Die Anzahl der Dezimalstellen, die für diesen Tokentyp (durch sein Mint) definiert sind.uiAmount(number | null): Der Saldo, formatiert als Gleitkommazahl, unter Berücksichtigung vondecimals. Dieses Feld könntenulloder in einigen Kontexten zugunsten vonuiAmountStringveraltet sein.uiAmountString(string): Der Saldo formatiert als Zeichenkette, unter Berücksichtigung vondecimals. Dies wird oft zur Anzeige bevorzugt, um potenzielle Gleitkomma-Ungenauigkeiten zu vermeiden.
Code-Beispiele
Entwicklertipps
- Token-Konto vs. Mint-Konto vs. Inhaberkonto: Stellen Sie sicher, dass Sie den öffentlichen Schlüssel des SPL Token-Kontos angeben, nicht die Mint-Adresse des Tokens oder die Wallet-Adresse des Inhabers. Sie erhalten normalerweise Token-Konten für einen Inhaber mit
getTokenAccountsByOwner. - Dezimalstellen: Verwenden Sie immer das
decimals-Feld, um dasamountkorrekt zu interpretieren. DasuiAmountStringist im Allgemeinen sicherer zur Anzeige alsuiAmount, um Gleitkomma-Präzisionsprobleme zu vermeiden. - Nicht existierende Konten: Wenn der angegebene öffentliche Schlüssel keinem bestehenden Token-Konto entspricht, kann das Verhalten je nach RPC-Anbieter oder Bibliothek leicht variieren, aber oft wird das
valuein der Antwortnullsein oder ein Fehler wird ausgelöst. Das JavaScript-Beispiel enthält eine grundlegende Überprüfung fürbalance.value. - Commitment-Level: Die Verwendung verschiedener Commitment-Level kann beeinflussen, wie schnell Sie Guthabenänderungen sehen, insbesondere für sehr aktuelle Transaktionen.
finalizedist am sichersten, hat aber die längste Latenz.
getTokenAccountBalance verwenden.
Verwandte Methoden
getTokenAccountsByOwner
Alle Token-Konten für einen Eigentümer abrufen
getTokenSupply
Den Gesamtsupply eines Token-Mints abrufen