inf_circle_sdk/near/
dto.rs1use near_primitives::hash::CryptoHash;
7use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Clone, Copy, PartialEq, Eq)]
11pub enum NearNetwork {
12 Mainnet,
13 Testnet,
14}
15
16impl NearNetwork {
17 pub fn rpc_url(&self) -> &'static str {
19 match self {
20 NearNetwork::Mainnet => "https://rpc.mainnet.near.org",
21 NearNetwork::Testnet => "https://rpc.testnet.near.org",
22 }
23 }
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct NearAccountBalance {
29 pub total: String,
31 pub available: String,
33 pub staked: String,
35 #[serde(skip_serializing_if = "Option::is_none")]
37 pub state_hash: Option<String>,
38 #[serde(skip_serializing_if = "Option::is_none")]
40 pub block_hash: Option<CryptoHash>,
41 #[serde(skip_serializing_if = "Option::is_none")]
43 pub block_height: Option<u64>,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48pub struct NearTokenBalance {
49 pub contract_id: String,
51 pub balance: String,
53 #[serde(skip_serializing_if = "Option::is_none")]
55 pub metadata: Option<NearTokenMetadata>,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
60pub struct NearTokenMetadata {
61 pub symbol: String,
63 pub name: String,
65 pub decimals: u8,
67 #[serde(skip_serializing_if = "Option::is_none")]
69 pub icon: Option<String>,
70 #[serde(skip_serializing_if = "Option::is_none")]
72 pub reference: Option<String>,
73}