circles_types/
token.rs

1use alloy_primitives::{Address, TxHash, U256};
2use serde::{Deserialize, Serialize};
3
4/// Token balance information
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct TokenBalance {
7    pub token_address: Address,
8    pub token_id: U256,
9    pub token_owner: Address,
10    pub token_type: String,
11    pub version: u32,
12    pub atto_circles: U256,
13    pub circles: f64,
14    pub static_atto_circles: U256,
15    pub static_circles: f64,
16    pub atto_crc: U256,
17    pub crc: f64,
18    pub is_erc20: bool,
19    pub is_erc1155: bool,
20    pub is_wrapped: bool,
21    pub is_inflationary: bool,
22    pub is_group: bool,
23}
24
25/// Token information
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct TokenInfo {
28    pub block_number: u64,
29    pub timestamp: u64,
30    pub transaction_index: u32,
31    pub log_index: u32,
32    pub transaction_hash: TxHash,
33    pub version: u32,
34    #[serde(rename = "type")]
35    pub info_type: Option<String>,
36    pub token_type: String,
37    pub token: Address,
38    pub token_owner: Address,
39}
40
41/// Token holder information from V_CrcV2_BalancesByAccountAndToken
42#[derive(Debug, Clone, Serialize, Deserialize)]
43pub struct TokenHolder {
44    pub account: Address,
45    pub token_address: Address,
46    pub demurraged_total_balance: String,
47}