carbon_tcomp_decoder/accounts/
list_state.rs

1//! This code was AUTOGENERATED using the Codama library.
2use carbon_core::CarbonDeserialize;
3use carbon_core::borsh;
4use carbon_core::deserialize::CarbonDeserialize;
5use solana_pubkey::Pubkey;
6
7#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8#[derive(Debug, Clone, borsh::BorshSerialize, CarbonDeserialize, PartialEq)]
9pub struct ListState {
10    pub version: u8,
11    pub bump: [u8; 1],
12    pub owner: Pubkey,
13    pub asset_id: Pubkey,
14    pub amount: u64,
15    pub currency: Option<Pubkey>,
16    pub expiry: i64,
17    pub private_taker: Option<Pubkey>,
18    pub maker_broker: Option<Pubkey>,
19    /// owner is the rent payer when this is PublicKey::default
20    pub rent_payer: Pubkey,
21    pub reserved: [u8; 32],
22    #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))]
23    pub reserved1: [u8; 64],
24}
25
26impl ListState {
27    pub fn decode(data: &[u8]) -> Option<Self> {
28        if data.len() < 8 {
29            return None;
30        }
31        let discriminator = &data[0..8];
32        if discriminator != &[78, 242, 89, 138, 161, 221, 176, 75] {
33            return None;
34        }
35
36        let data_slice = data;
37
38        let data_slice = &data_slice[8..];
39
40        Self::deserialize(data_slice)
41    }
42}