sol_parser_sdk/logs/
mod.rs1pub mod utils;
6pub mod optimized_matcher;
7pub mod raydium_launchpad;
8pub mod pumpfun;
9pub mod pump_amm;
10pub mod raydium_clmm;
11pub mod raydium_cpmm;
12pub mod raydium_amm;
13pub mod orca_whirlpool;
14pub mod meteora_amm;
15pub mod meteora_damm;
16pub mod meteora_dlmm;
17pub mod zero_copy_parser;
18pub mod perf_hints;
19
20pub use utils::extract_discriminator_fast;
22pub use zero_copy_parser::parse_pumpfun_trade;
23
24pub use raydium_launchpad::parse_log as parse_raydium_launchpad_log;
26pub use pumpfun::parse_log as parse_pumpfun_log;
27pub use pump_amm::parse_log as parse_pump_amm_log;
28pub use raydium_clmm::parse_log as parse_raydium_clmm_log;
29pub use raydium_cpmm::parse_log as parse_raydium_cpmm_log;
30pub use raydium_amm::parse_log as parse_raydium_amm_log;
31pub use orca_whirlpool::parse_log as parse_orca_whirlpool_log;
32pub use meteora_amm::parse_log as parse_meteora_amm_log;
33pub use meteora_damm::parse_log as parse_meteora_damm_log;
34pub use meteora_dlmm::parse_log as parse_meteora_dlmm_log;
35
36pub use utils::*;
38
39use solana_sdk::{signature::Signature};
40use crate::core::events::DexEvent;
41
42pub fn parse_log(
44 log: &str,
45 signature: Signature,
46 slot: u64,
47 tx_index: u64,
48 block_time: Option<i64>,
49 grpc_recv_us: i64,
50 event_type_filter: Option<&crate::grpc::types::EventTypeFilter>,
51 is_created_buy: bool,
52) -> Option<DexEvent> {
53 optimized_matcher::parse_log_optimized(log, signature, slot, tx_index, block_time, grpc_recv_us, event_type_filter, is_created_buy)
54}
55
56pub fn parse_log_unified(
58 log: &str,
59 signature: Signature,
60 slot: u64,
61 block_time: Option<i64>,
62) -> Option<DexEvent> {
63 let grpc_recv_us = unsafe {
64 let mut ts = libc::timespec { tv_sec: 0, tv_nsec: 0 };
65 libc::clock_gettime(libc::CLOCK_REALTIME, &mut ts);
66 (ts.tv_sec as i64) * 1_000_000 + (ts.tv_nsec as i64) / 1_000
67 };
68 optimized_matcher::parse_log_optimized(log, signature, slot, 0, block_time, grpc_recv_us, None, false)
69}