Metode RPC getInflationReward memungkinkan Anda meminta informasi tentang imbalan inflasi (umumnya dikenal sebagai imbalan staking) yang dikreditkan ke satu atau beberapa alamat untuk epoch tertentu.
Metode ini berguna untuk memverifikasi imbalan yang diterima oleh akun stake atau akun lain yang mungkin telah menerima imbalan inflasi.
Hindari Pemrosesan Batch untuk Performa yang Lebih BaikPemrosesan metode arsip secara batch meningkatkan latensi secara signifikan. Batch yang berisi lebih dari 10 permintaan tidak diizinkan.
Kasus Penggunaan Umum
- Verifikasi Imbalan Staking: Periksa apakah akun stake menerima imbalan yang diharapkan untuk epoch sebelumnya.
- Lacak Riwayat Imbalan: Minta informasi imbalan untuk beberapa epoch guna menyusun riwayat suatu alamat.
- Audit Pembayaran Validator: Validator dapat menggunakan metode ini untuk memverifikasi distribusi imbalan (meskipun imbalan dibayarkan ke akun stake, bukan langsung ke identitas validator).
Parameter Permintaan
Metode ini menerima dua parameter utama:
addresses (larik string): Daftar kunci publik yang dikodekan dengan base-58 untuk akun yang ingin Anda minta informasinya. Jumlah maksimum alamat yang diizinkan dapat berbeda-beda tergantung penyedia RPC (misalnya, Helius mengizinkan hingga 1005 untuk paket berbayar).
config (objek, opsional): Objek konfigurasi dengan bidang opsional berikut:
commitment (string, opsional): Menentukan tingkat komitmen. Nilai default-nya adalah finalized jika tidak diberikan.
epoch (bilangan bulat, opsional): Nomor epoch yang imbalannya ingin diambil. Jika dihilangkan, node RPC biasanya akan menggunakan epoch terakhir yang telah selesai dan imbalannya telah didistribusikan.
minContextSlot (bilangan bulat, opsional): Slot minimum tempat permintaan dapat dievaluasi. Ini memastikan kueri dilakukan terhadap status ledger yang telah diproses setidaknya hingga slot ini.
Struktur Respons
Bidang result dalam respons JSON-RPC akan berupa larik yang sesuai dengan larik input addresses. Setiap elemen dalam larik hasil akan berupa salah satu dari berikut ini:
- Sebuah objek yang berisi detail imbalan inflasi jika alamat tersebut menerima imbalan untuk epoch yang ditentukan.
null jika alamat tersebut tidak menerima imbalan inflasi untuk epoch tersebut atau jika akunnya tidak ada.
Objek imbalan memiliki bidang berikut:
epoch (u64): Epoch saat imbalan ini dikreditkan.
effectiveSlot (u64): Slot tempat imbalan diterapkan dan mulai berlaku.
amount (u64): Jumlah imbalan dalam lamport.
postBalance (u64): Saldo akun dalam lamport setelah imbalan dikreditkan.
commission (u8 | undefined): Untuk akun voting, ini adalah persentase komisi (0-100) yang diambil oleh validator saat imbalan dikreditkan. Nilainya akan berupa undefined untuk akun non-voting.
Contoh
1. Dapatkan Imbalan Inflasi untuk Satu Alamat (Epoch Sebelumnya)
Contoh ini mengambil imbalan inflasi untuk alamat tertentu pada epoch terakhir yang telah selesai.
2. Dapatkan Imbalan Inflasi untuk Beberapa Alamat pada Epoch Tertentu
Tips untuk Developer
- Ketepatan Epoch: Imbalan dikreditkan satu kali per epoch. Pastikan Anda meminta informasi untuk nomor epoch yang benar.
- Waktu Pemberian Imbalan: Imbalan inflasi dihitung pada akhir epoch dan diterapkan pada awal epoch berikutnya.
effectiveSlot menunjukkan kapan hal ini terjadi.
- Hasil Null: Hasil
null untuk suatu alamat berarti tidak ada imbalan yang ditemukan bagi alamat tersebut dalam epoch yang ditentukan. Hal ini mungkin terjadi karena akun tidak memenuhi syarat (misalnya, bukan akun stake dengan jumlah staking yang memadai), nilai imbalannya nol, atau akun tersebut belum ada pada saat itu.
- Batas Laju: Perhatikan batas laju penyedia RPC, terutama saat meminta informasi untuk banyak alamat.
Panduan ini membantu Anda menggunakan metode getInflationReward untuk mengambil dan memverifikasi imbalan staking secara akurat di jaringan Solana.