carbon-tcomp-decoder 0.12.1

Rust decoder for Tensor cNFT Compressed program on Solana
Documentation
//! This code was AUTOGENERATED using the Codama library.
use carbon_core::CarbonDeserialize;
use carbon_core::borsh;
use carbon_core::deserialize::CarbonDeserialize;
use solana_pubkey::Pubkey;

#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, borsh::BorshSerialize, CarbonDeserialize, PartialEq)]
pub struct ListState {
    pub version: u8,
    pub bump: [u8; 1],
    pub owner: Pubkey,
    pub asset_id: Pubkey,
    pub amount: u64,
    pub currency: Option<Pubkey>,
    pub expiry: i64,
    pub private_taker: Option<Pubkey>,
    pub maker_broker: Option<Pubkey>,
    /// owner is the rent payer when this is PublicKey::default
    pub rent_payer: Pubkey,
    pub reserved: [u8; 32],
    #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))]
    pub reserved1: [u8; 64],
}

impl ListState {
    pub fn decode(data: &[u8]) -> Option<Self> {
        if data.len() < 8 {
            return None;
        }
        let discriminator = &data[0..8];
        if discriminator != &[78, 242, 89, 138, 161, 221, 176, 75] {
            return None;
        }

        let data_slice = data;

        let data_slice = &data_slice[8..];

        Self::deserialize(data_slice)
    }
}