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>,
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)
}
}