rango_sdk/check/
balance.rs

1use serde::{Deserialize, Serialize};
2
3use crate::{error::SdkErr, quote::Asset};
4
5#[derive(Debug, Serialize)]
6pub struct BalanceRequest {
7    pub blockchain: String,
8    pub address: String,
9}
10
11impl BalanceRequest {
12    pub fn into_qs(&self) -> Result<String, SdkErr> {
13        let qs = serde_urlencoded::to_string(self)?;
14
15        Ok(qs)
16    }
17}
18
19#[derive(Debug, Deserialize)]
20pub struct Amount {
21    pub amount: String,
22    pub decimals: u32,
23}
24
25#[derive(Debug, Deserialize)]
26pub struct AssetAndAmount {
27    pub amount: Amount,
28    pub asset: Asset,
29}
30
31#[derive(Debug, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct WalletDetail {
34    pub failed: bool,
35    pub block_chain: String,
36    pub address: String,
37    pub balances: Option<Vec<AssetAndAmount>>,
38    pub explorer_url: String,
39}
40
41#[derive(Debug, Deserialize)]
42pub struct BalanceResponse {
43    pub wallets: Vec<WalletDetail>,
44}