carbon_virtuals_decoder/events/
launch_event.rs1use 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 LaunchEventEvent {
7 pub vpool: Pubkey,
8 pub mint: Pubkey,
9 pub creator: Pubkey,
10}
11
12impl LaunchEventEvent {
13 pub fn decode(data: &[u8]) -> Option<Self> {
14 if data.len() < 8 {
15 return None;
16 }
17 let discriminator = &data[0..8];
18 if discriminator != [27, 193, 47, 130, 115, 92, 239, 94] {
19 return None;
20 }
21
22 let mut data_slice = data;
23
24 data_slice = &data_slice[8..];
25
26 borsh::BorshDeserialize::deserialize(&mut data_slice).ok()
27 }
28}