getInflationReward kannst du die Inflationsbelohnungen abfragen, die einer oder mehreren Adressen für eine bestimmte Epoche gutgeschrieben wurden. Diese werden allgemein als Staking-Belohnungen bezeichnet.
Damit kannst du die Belohnungen prüfen, die Stake-Konten oder andere Konten mit möglichen Inflationsbelohnungen erhalten haben.
Häufige Anwendungsfälle
- Staking-Belohnungen prüfen: Prüfe, ob ein Stake-Konto die erwarteten Belohnungen für eine vergangene Epoche erhalten hat.
- Belohnungsverlauf verfolgen: Frage Belohnungen für mehrere Epochen ab, um einen Verlauf für eine Adresse zu erstellen.
- Auszahlungen von Validatoren prüfen: Validatoren können damit die Verteilung von Belohnungen prüfen. Die Belohnungen werden allerdings an Stake-Konten und nicht direkt an Validatoridentitäten ausgezahlt.
Parameter für den request
Die Methode akzeptiert zwei Hauptparameter:addresses(Array aus Strings): Eine Liste base-58-codierter öffentlicher Schlüssel für die Konten, die du abfragen möchtest. Die maximal zulässige Anzahl von Adressen hängt möglicherweise vom RPC-Anbieter ab. Helius erlaubt bei kostenpflichtigen Tarifen beispielsweise bis zu 1005 Adressen.config(Objekt, optional): Ein Konfigurationsobjekt mit den folgenden optionalen Feldern:commitment(String, optional): Gibt die Stufe für das commitment an. Standardmäßig wirdfinalizedverwendet, wenn du keinen Wert angibst.epoch(Integer, optional): Die Nummer der Epoche, deren Belohnungen abgerufen werden sollen. Wenn du sie weglässt, verwendet der RPC node normalerweise die zuletzt abgeschlossene Epoche, für die Belohnungen verteilt wurden.minContextSlot(Integer, optional): Der minimale slot, an dem der request ausgewertet werden kann. So wird sichergestellt, dass die Abfrage einen Ledger-Stand verwendet, der mindestens bis zu diesem slot verarbeitet wurde.
Struktur der response
Das Feldresult der JSON-RPC-response enthält ein Array, das dem Eingabe-Array addresses entspricht. Jedes Element im Ergebnis-Array ist entweder:
- Ein Objekt mit den Details zur Inflationsbelohnung, wenn die Adresse für die angegebene Epoche eine Belohnung erhalten hat.
null, wenn die Adresse für diese Epoche keine Inflationsbelohnung erhalten hat oder das Konto nicht existierte.
epoch(u64): Die Epoche, für die diese Belohnung gutgeschrieben wurde.effectiveSlot(u64): Der slot, in dem die Belohnung angewendet und wirksam wurde.amount(u64): Die Höhe der Belohnung in Lamports.postBalance(u64): Der Kontostand in Lamports, nachdem die Belohnung gutgeschrieben wurde.commission(u8 | undefined): Bei Vote-Konten ist dies der Provisionssatz (0–100), den der Validator zum Zeitpunkt der Gutschrift einbehalten hat. Bei anderen Konten lautet der Wertundefined.
Beispiele
1. Inflationsbelohnung für eine einzelne Adresse abrufen (vorherige Epoche)
Dieses Beispiel ruft die Inflationsbelohnung für eine bestimmte Adresse und die zuletzt abgeschlossene Epoche ab.2. Inflationsbelohnungen für mehrere Adressen und eine bestimmte Epoche abrufen
Tipps für Entwickler
- Bestimmte Epoche: Belohnungen werden einmal pro Epoche gutgeschrieben. Stelle sicher, dass du die richtige Epochennummer abfragst.
- Zeitpunkt der Belohnungen: Inflationsbelohnungen werden am Ende einer Epoche berechnet und zu Beginn der nächsten angewendet.
effectiveSlotgibt an, wann dies geschieht. - Null-Ergebnisse: Das Ergebnis
nullfür eine Adresse bedeutet, dass für diese Adresse in der angegebenen Epoche keine Belohnung gefunden wurde. Möglicherweise war das Konto nicht berechtigt, etwa weil nicht genügend SOL gestakt waren. Es kann auch sein, dass die Belohnung null betrug oder das Konto zu diesem Zeitpunkt nicht existierte. - Rate Limits: Beachte die rate limits des RPC-Anbieters, insbesondere wenn du eine große Anzahl von Adressen abfragst.
getInflationReward Staking-Belohnungen im Solana-Netzwerk präzise abrufst und prüfst.