mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-08-21 21:08:07 +00:00
feat: enhance protocol event parsers and bump to v0.3.5
- Add creator_fee support to Bonk events - Improve PumpFun/PumpSwap event parsing - Update documentation and common types
This commit is contained in:
@@ -53,6 +53,15 @@ pub struct PumpSwapBuyEvent {
|
||||
pub coin_creator_vault_authority: Pubkey,
|
||||
}
|
||||
|
||||
pub const PUMP_SWAP_BUY_EVENT_LOG_SIZE: usize = 385;
|
||||
|
||||
pub fn pump_swap_buy_event_log_decode(data: &[u8]) -> Option<PumpSwapBuyEvent> {
|
||||
if data.len() < PUMP_SWAP_BUY_EVENT_LOG_SIZE {
|
||||
return None;
|
||||
}
|
||||
borsh::from_slice::<PumpSwapBuyEvent>(&data[..PUMP_SWAP_BUY_EVENT_LOG_SIZE]).ok()
|
||||
}
|
||||
|
||||
// 使用宏生成UnifiedEvent实现,指定需要合并的字段
|
||||
impl_unified_event!(
|
||||
PumpSwapBuyEvent,
|
||||
@@ -123,6 +132,15 @@ pub struct PumpSwapSellEvent {
|
||||
pub coin_creator_vault_authority: Pubkey,
|
||||
}
|
||||
|
||||
pub const PUMP_SWAP_SELL_EVENT_LOG_SIZE: usize = 352;
|
||||
|
||||
pub fn pump_swap_sell_event_log_decode(data: &[u8]) -> Option<PumpSwapSellEvent> {
|
||||
if data.len() < PUMP_SWAP_SELL_EVENT_LOG_SIZE {
|
||||
return None;
|
||||
}
|
||||
borsh::from_slice::<PumpSwapSellEvent>(&data[..PUMP_SWAP_SELL_EVENT_LOG_SIZE]).ok()
|
||||
}
|
||||
|
||||
// 使用宏生成UnifiedEvent实现,指定需要合并的字段
|
||||
impl_unified_event!(
|
||||
PumpSwapSellEvent,
|
||||
@@ -184,6 +202,15 @@ pub struct PumpSwapCreatePoolEvent {
|
||||
pub pool_quote_token_account: Pubkey,
|
||||
}
|
||||
|
||||
pub const PUMP_SWAP_CREATE_POOL_EVENT_LOG_SIZE: usize = 325;
|
||||
|
||||
pub fn pump_swap_create_pool_event_log_decode(data: &[u8]) -> Option<PumpSwapCreatePoolEvent> {
|
||||
if data.len() < PUMP_SWAP_CREATE_POOL_EVENT_LOG_SIZE {
|
||||
return None;
|
||||
}
|
||||
borsh::from_slice::<PumpSwapCreatePoolEvent>(&data[..PUMP_SWAP_CREATE_POOL_EVENT_LOG_SIZE]).ok()
|
||||
}
|
||||
|
||||
impl_unified_event!(
|
||||
PumpSwapCreatePoolEvent,
|
||||
timestamp,
|
||||
@@ -239,6 +266,15 @@ pub struct PumpSwapDepositEvent {
|
||||
pub pool_quote_token_account: Pubkey,
|
||||
}
|
||||
|
||||
pub const PUMP_SWAP_DEPOSIT_EVENT_LOG_SIZE: usize = 248;
|
||||
|
||||
pub fn pump_swap_deposit_event_log_decode(data: &[u8]) -> Option<PumpSwapDepositEvent> {
|
||||
if data.len() < PUMP_SWAP_DEPOSIT_EVENT_LOG_SIZE {
|
||||
return None;
|
||||
}
|
||||
borsh::from_slice::<PumpSwapDepositEvent>(&data[..PUMP_SWAP_DEPOSIT_EVENT_LOG_SIZE]).ok()
|
||||
}
|
||||
|
||||
impl_unified_event!(
|
||||
PumpSwapDepositEvent,
|
||||
timestamp,
|
||||
@@ -290,6 +326,15 @@ pub struct PumpSwapWithdrawEvent {
|
||||
pub pool_quote_token_account: Pubkey,
|
||||
}
|
||||
|
||||
pub const PUMP_SWAP_WITHDRAW_EVENT_LOG_SIZE: usize = 248;
|
||||
|
||||
pub fn pump_swap_withdraw_event_log_decode(data: &[u8]) -> Option<PumpSwapWithdrawEvent> {
|
||||
if data.len() < PUMP_SWAP_WITHDRAW_EVENT_LOG_SIZE {
|
||||
return None;
|
||||
}
|
||||
borsh::from_slice::<PumpSwapWithdrawEvent>(&data[..PUMP_SWAP_WITHDRAW_EVENT_LOG_SIZE]).ok()
|
||||
}
|
||||
|
||||
impl_unified_event!(
|
||||
PumpSwapWithdrawEvent,
|
||||
timestamp,
|
||||
|
||||
Reference in New Issue
Block a user