getBalance là một cách đơn giản để tra cứu số dư SOL gốc của bất kỳ tài khoản nào trên blockchain Solana. Phương thức này trả về số dư bằng lamport (1 SOL = 1.000.000.000 lamport).
Phương thức này nhẹ hơn getAccountInfo nếu bạn chỉ cần số dư SOL và không cần thông tin tài khoản nào khác.
Trường hợp sử dụng chính
- Kiểm tra nhanh lượng SOL nắm giữ của một tài khoản: Mục đích chính là xác định lượng SOL mà một tài khoản (ví, chương trình, v.v.) đang nắm giữ.
Tham số
-
publicKey(chuỗi, bắt buộc): Khóa công khai được mã hóa base-58 của tài khoản cần truy vấn. -
config(đối tượng, không bắt buộc): Đối tượng cấu hình có các trường sau:commitment(chuỗi, không bắt buộc): Chỉ định mức cam kết dùng cho truy vấn. Giá trị mặc định làfinalized.finalized: Nút sẽ truy vấn khối mới nhất đã được cam kết vĩnh viễn. Nên ưu tiên giá trị này cho mã mới.confirmed: Trong Alpenglow, tương đương vớifinalized; được giữ lại để đảm bảo khả năng tương thích.processed: Nút sẽ truy vấn khối mới nhất của nó. Lưu ý rằng khối này có thể chưa hoàn chỉnh.
minContextSlot(số, không bắt buộc): Slot tối thiểu mà tại đó yêu cầu có thể được đánh giá.
Phản hồi
Trườngresult của phản hồi JSON-RPC sẽ là một đối tượng chứa:
context(đối tượng):slot(số): Slot tại đó số dư được truy xuất.apiVersion(chuỗi, không bắt buộc): Phiên bản API RPC (có thể không xuất hiện từ tất cả các nút).
value(số): Số dư của tài khoản tính bằng lamport (số nguyên 64 bit không dấu).
getBalance thường sẽ trả về giá trị 0 lamport.
Ví dụ: Truy xuất số dư tài khoản
Hãy kiểm tra số dư SOL của ID Serum Program V3 (9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin) trên mạng chính. Bản thân tài khoản chương trình này giữ SOL để được miễn tiền thuê.
Lưu ý: Thay YOUR_API_KEY bằng khóa API Helius thực tế của bạn trong các ví dụ bên dưới.
Mẹo dành cho nhà phát triển
- Đơn giản khi truy vấn số dư SOL: Nếu bạn chỉ cần số dư SOL của một tài khoản và không cần dữ liệu nào khác trên chuỗi (như chủ sở hữu, dữ liệu hoặc trạng thái thực thi),
getBalancehiệu quả hơngetAccountInfovì truy xuất ít dữ liệu hơn. - Tài khoản không tồn tại: Nếu một tài khoản không tồn tại trên chuỗi (chưa từng được khởi tạo hoặc chưa từng có SOL),
getBalancesẽ trả về0. Đây có thể là cách nhanh chóng để kiểm tra sự tồn tại của tài khoản nếu bạn chỉ quan tâm đến số dư SOL của tài khoản đó. - Lamport và SOL: Hãy nhớ rằng số dư được trả về bằng lamport. Bạn cần chia cho
LAMPORTS_PER_SOL(1.000.000.000) để chuyển đổi sang SOL. - Mức cam kết:
processedcó thể hiển thị một số dư sau đó bị hoàn tác. Trong Alpenglow,confirmedvàfinalizedcung cấp cùng một bảo đảm hoàn tất vĩnh viễn tại cùng một thời điểm; nên ưu tiênfinalizedcho mã mới. - Gom nhóm bằng
getMultipleAccounts: Mặc dùgetBalancedùng cho một tài khoản, nếu cần số dư của nhiều tài khoản, việc sử dụnggetMultipleAccountsrồi trích xuất số dư lamport từ thông tin của từng tài khoản có thể mang lại hiệu suất cao hơn so với nhiều lệnh gọigetBalanceriêng lẻ.
Phương thức liên quan
getAccountInfo
Lấy đầy đủ thông tin tài khoản, bao gồm dữ liệu, chủ sở hữu và trạng thái thực thi
getMultipleAccounts
Truy xuất hàng loạt nhiều tài khoản trong một yêu cầu duy nhất