photon_api/models/
account_v2.rs

1/*
2 * photon-indexer
3 *
4 * Solana indexer for general compression
5 *
6 * The version of the OpenAPI document: 0.50.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12
13#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
14pub struct AccountV2 {
15    /// A Solana public key represented as a base58 string.
16    #[serde(rename = "address", skip_serializing_if = "Option::is_none")]
17    pub address: Option<String>,
18    #[serde(rename = "data", skip_serializing_if = "Option::is_none")]
19    pub data: Option<Box<models::AccountData>>,
20    /// A 32-byte hash represented as a base58 string.
21    #[serde(rename = "hash")]
22    pub hash: String,
23    #[serde(rename = "lamports")]
24    pub lamports: u64,
25    #[serde(rename = "leafIndex")]
26    pub leaf_index: u32,
27    #[serde(rename = "merkleContext")]
28    pub merkle_context: Box<models::MerkleContextV2>,
29    /// A Solana public key represented as a base58 string.
30    #[serde(rename = "owner")]
31    pub owner: String,
32    #[serde(rename = "proveByIndex")]
33    pub prove_by_index: bool,
34    #[serde(rename = "seq", skip_serializing_if = "Option::is_none")]
35    pub seq: Option<u64>,
36    #[serde(rename = "slotCreated")]
37    pub slot_created: u64,
38}
39
40impl AccountV2 {
41    pub fn new(
42        hash: String,
43        lamports: u64,
44        leaf_index: u32,
45        merkle_context: models::MerkleContextV2,
46        owner: String,
47        prove_by_index: bool,
48        slot_created: u64,
49    ) -> AccountV2 {
50        AccountV2 {
51            address: None,
52            data: None,
53            hash,
54            lamports,
55            leaf_index,
56            merkle_context: Box::new(merkle_context),
57            owner,
58            prove_by_index,
59            seq: None,
60            slot_created,
61        }
62    }
63}