casper_client/rpcs/v1_5_0/
query_balance.rs1use serde::{Deserialize, Serialize};
2
3use casper_types::{account::AccountHash, ProtocolVersion, PublicKey, URef, U512};
4
5use crate::rpcs::common::GlobalStateIdentifier;
6
7pub(crate) const QUERY_BALANCE_METHOD: &str = "query_balance";
8
9#[derive(Serialize, Deserialize, Debug, Clone)]
11#[serde(deny_unknown_fields, rename_all = "snake_case")]
12pub enum PurseIdentifier {
13 MainPurseUnderPublicKey(PublicKey),
15 MainPurseUnderAccountHash(AccountHash),
17 PurseUref(URef),
19}
20
21#[derive(Serialize, Deserialize, Debug)]
23pub struct QueryBalanceParams {
24 pub state_identifier: Option<GlobalStateIdentifier>,
26 pub purse_identifier: PurseIdentifier,
28}
29
30impl QueryBalanceParams {
31 pub(crate) fn new(
32 state_identifier: Option<GlobalStateIdentifier>,
33 purse_identifier: PurseIdentifier,
34 ) -> Self {
35 QueryBalanceParams {
36 state_identifier,
37 purse_identifier,
38 }
39 }
40}
41
42#[derive(Serialize, Deserialize, Debug)]
44pub struct QueryBalanceResult {
45 pub api_version: ProtocolVersion,
47 pub balance: U512,
49}