solscan_api/structs/
spl_transfer.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct SplTransfer {
5    pub total: Option<i64>,
6    pub data: Option<Vec<Datum>>,
7}
8
9#[derive(Debug, Serialize, Deserialize)]
10pub struct Datum {
11    #[serde(rename = "_id")]
12    pub id: Option<String>,
13    pub address: Option<String>,
14    pub signature: Option<Vec<String>>,
15    #[serde(rename = "changeType")]
16    pub change_type: Option<ChangeType>,
17    pub decimals: Option<i64>,
18    #[serde(rename = "changeAmount")]
19    pub change_amount: Option<ChangeAmount>,
20    #[serde(rename = "postBalance")]
21    pub post_balance: Option<String>,
22    #[serde(rename = "preBalance")]
23    pub pre_balance: Option<ChangeAmount>,
24    #[serde(rename = "tokenAddress")]
25    pub token_address: Option<String>,
26    #[serde(rename = "blockTime")]
27    pub block_time: Option<i64>,
28    pub slot: Option<i64>,
29    pub fee: Option<i64>,
30    pub owner: Option<String>,
31    pub balance: Option<Balance>,
32    #[serde(skip_serializing_if = "Option::is_none")]
33    pub symbol: Option<String>,
34}
35
36#[derive(Debug, Serialize, Deserialize)]
37pub struct Balance {
38    pub amount: Option<String>,
39    pub decimals: Option<i64>,
40}
41
42#[derive(Debug, Serialize, Deserialize)]
43#[serde(untagged)]
44pub enum ChangeAmount {
45    Integer(i64),
46    String(String),
47}
48
49#[derive(Debug, Serialize, Deserialize)]
50pub enum ChangeType {
51    #[serde(rename = "dec")]
52    Dec,
53    #[serde(rename = "inc")]
54    Inc,
55}