carbon-zeta-decoder 0.12.0

Zeta Program Decoder
Documentation
use super::super::types::*;

use carbon_core::{borsh, CarbonDeserialize};

#[derive(
    CarbonDeserialize, Debug, serde::Deserialize, serde::Serialize, PartialEq, Eq, Clone, Hash,
)]
#[carbon(discriminator = "0x7911d26b6deb0e0c")]
pub struct ZetaGroup {
    pub nonce: u8,
    pub nonce_padding: [u8; 2],
    pub front_expiry_index: u8,
    pub halt_state: HaltState,
    pub underlying_mint: solana_pubkey::Pubkey,
    pub oracle: solana_pubkey::Pubkey,
    pub greeks: solana_pubkey::Pubkey,
    pub pricing_parameters: PricingParameters,
    pub margin_parameters: MarginParameters,
    #[serde(with = "serde_big_array::BigArray")]
    pub margin_parameters_padding: [u8; 104],
    #[serde(with = "serde_big_array::BigArray")]
    pub products: [Product; 46],
    #[serde(with = "serde_big_array::BigArray")]
    pub products_padding: [Product; 91],
    pub perp: Product,
    pub expiry_series: [ExpirySeries; 2],
    pub expiry_series_padding: [ExpirySeries; 4],
    pub deprecated_padding: [u8; 8],
    pub asset: Asset,
    pub expiry_interval_seconds: u32,
    pub new_expiry_threshold_seconds: u32,
    pub perp_parameters: PerpParameters,
    pub perp_sync_queue: solana_pubkey::Pubkey,
    pub oracle_backup_feed: solana_pubkey::Pubkey,
    pub perps_only: bool,
    pub flex_underlying: bool,
    #[serde(with = "serde_big_array::BigArray")]
    pub padding: [u8; 964],
}