Skip to main content

light_client/indexer/types/
mod.rs

1mod account;
2mod interface;
3mod proof;
4mod queue;
5mod signature;
6mod token;
7mod tree;
8
9pub use account::CompressedAccount;
10pub use interface::{
11    AccountInterface, ColdContext, ColdData, InterfaceTreeInfo, SolanaAccountData,
12    TokenAccountInterface,
13};
14pub use proof::{
15    AccountProofInputs, AddressProofInputs, AddressWithTree, MerkleProof, MerkleProofWithContext,
16    NewAddressProofWithContext, RootIndex, ValidityProofWithContext,
17};
18pub use queue::{
19    AddressQueueData, InputQueueData, OutputQueueData, QueueElementsResult, StateQueueData,
20};
21pub use signature::SignatureWithMetadata;
22pub use token::{CompressedTokenAccount, OwnerBalance, TokenBalance};
23pub use tree::{AddressMerkleTreeAccounts, NextTreeInfo, StateMerkleTreeAccounts, TreeInfo};
24
25pub struct ProofOfLeaf {
26    pub leaf: [u8; 32],
27    pub proof: Vec<[u8; 32]>,
28}
29
30pub type Address = [u8; 32];
31pub type Hash = [u8; 32];
32
33#[derive(Debug, Clone, PartialEq)]
34pub struct QueueInfo {
35    pub tree: solana_pubkey::Pubkey,
36    pub queue: solana_pubkey::Pubkey,
37    pub queue_type: u8,
38    pub queue_size: u64,
39}
40
41#[derive(Debug, Clone, PartialEq, Default)]
42pub struct QueueInfoResult {
43    pub queues: Vec<QueueInfo>,
44    pub slot: u64,
45}