carbon_meteora_dlmm_decoder/events/
lb_pair_create.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 LbPairCreateEvent {
7 pub lb_pair: Pubkey,
8 pub bin_step: u16,
9 pub token_x: Pubkey,
10 pub token_y: Pubkey,
11}
12
13impl LbPairCreateEvent {
14 pub fn decode(data: &[u8]) -> Option<Self> {
15 if data.len() < 8 {
16 return None;
17 }
18 let discriminator = &data[0..8];
19 if discriminator != [185, 74, 252, 125, 27, 215, 188, 111] {
20 return None;
21 }
22
23 let mut data_slice = data;
24
25 data_slice = &data_slice[8..];
26
27 borsh::BorshDeserialize::deserialize(&mut data_slice).ok()
28 }
29}