Skip to main content

carbon_pumpfun_decoder/events/
trade_event.rs

1//! This code was AUTOGENERATED using the Codama library.
2use {crate::types::Shareholder, solana_pubkey::Pubkey};
3
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5#[derive(Debug, Clone, borsh::BorshSerialize, borsh::BorshDeserialize, PartialEq)]
6pub struct TradeEventEvent {
7    pub mint: Pubkey,
8    pub sol_amount: u64,
9    pub token_amount: u64,
10    pub is_buy: bool,
11    pub user: Pubkey,
12    pub timestamp: i64,
13    pub virtual_sol_reserves: u64,
14    pub virtual_token_reserves: u64,
15    pub real_sol_reserves: u64,
16    pub real_token_reserves: u64,
17    pub fee_recipient: Pubkey,
18    pub fee_basis_points: u64,
19    pub fee: u64,
20    pub creator: Pubkey,
21    pub creator_fee_basis_points: u64,
22    pub creator_fee: u64,
23    pub track_volume: bool,
24    pub total_unclaimed_tokens: u64,
25    pub total_claimed_tokens: u64,
26    pub current_sol_volume: u64,
27    pub last_update_timestamp: i64,
28    pub ix_name: String,
29    pub mayhem_mode: bool,
30    pub cashback_fee_basis_points: u64,
31    pub cashback: u64,
32    pub buyback_fee_basis_points: u64,
33    pub buyback_fee: u64,
34    pub shareholders: Vec<Shareholder>,
35    pub quote_mint: Pubkey,
36    pub quote_amount: u64,
37    pub virtual_quote_reserves: u64,
38    pub real_quote_reserves: u64,
39}
40
41impl TradeEventEvent {
42    pub fn decode(data: &[u8]) -> Option<Self> {
43        if data.len() < 8 {
44            return None;
45        }
46        let discriminator = &data[0..8];
47        if discriminator != [189, 219, 127, 211, 78, 230, 97, 238] {
48            return None;
49        }
50
51        let mut data_slice = data;
52
53        data_slice = &data_slice[8..];
54
55        borsh::BorshDeserialize::deserialize(&mut data_slice).ok()
56    }
57}