2025-09-14 01:13:11 +08:00
|
|
|
use crate::streaming::event_parser::{
|
2026-05-16 06:45:35 +08:00
|
|
|
common::EventMetadata, core::EventDispatcher, DexEvent, Protocol,
|
2025-07-19 23:46:42 +08:00
|
|
|
};
|
2025-09-14 01:13:11 +08:00
|
|
|
use solana_sdk::pubkey::Pubkey;
|
2025-07-19 23:46:42 +08:00
|
|
|
|
2026-05-16 06:45:35 +08:00
|
|
|
pub use sol_parser_sdk::instr::program_ids::PUMPFUN_PROGRAM_ID;
|
2025-07-19 23:46:42 +08:00
|
|
|
|
2025-11-03 23:58:19 +08:00
|
|
|
pub fn parse_pumpfun_instruction_data(
|
|
|
|
|
discriminator: &[u8],
|
|
|
|
|
data: &[u8],
|
|
|
|
|
accounts: &[Pubkey],
|
|
|
|
|
metadata: EventMetadata,
|
|
|
|
|
) -> Option<DexEvent> {
|
2026-05-16 06:45:35 +08:00
|
|
|
EventDispatcher::dispatch_instruction(
|
|
|
|
|
Protocol::PumpFun,
|
|
|
|
|
discriminator,
|
|
|
|
|
data,
|
|
|
|
|
accounts,
|
|
|
|
|
metadata,
|
|
|
|
|
)
|
2025-11-03 23:58:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn parse_pumpfun_inner_instruction_data(
|
|
|
|
|
discriminator: &[u8],
|
|
|
|
|
data: &[u8],
|
|
|
|
|
metadata: EventMetadata,
|
|
|
|
|
) -> Option<DexEvent> {
|
2026-05-16 06:45:35 +08:00
|
|
|
EventDispatcher::dispatch_inner_instruction(Protocol::PumpFun, discriminator, data, metadata)
|
2025-11-03 23:58:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn parse_pumpfun_account_data(
|
|
|
|
|
discriminator: &[u8],
|
|
|
|
|
account: &crate::streaming::grpc::AccountPretty,
|
2026-05-16 06:45:35 +08:00
|
|
|
metadata: EventMetadata,
|
2025-10-12 22:00:15 +08:00
|
|
|
) -> Option<DexEvent> {
|
2026-05-16 06:45:35 +08:00
|
|
|
EventDispatcher::dispatch_account(Protocol::PumpFun, discriminator, account, metadata)
|
2025-09-14 01:13:11 +08:00
|
|
|
}
|