sol_parser_sdk/logs/
mod.rs1#![allow(dead_code)]
7#![allow(unused_imports)]
8#![allow(unused_variables)]
9
10pub mod discriminator_lut;
11pub mod meteora_amm;
12pub mod meteora_damm;
13pub mod meteora_dlmm;
14pub mod optimized_matcher;
15pub mod orca_whirlpool;
16pub mod perf_hints;
17pub mod pump_amm;
18pub mod pump;
19pub mod raydium_amm;
20pub mod raydium_clmm;
21pub mod raydium_cpmm;
22pub mod raydium_launchpad;
23pub mod utils;
24pub mod zero_copy_parser;
25
26pub use utils::extract_discriminator_fast;
28pub use zero_copy_parser::parse_pumpfun_trade;
29pub use discriminator_lut::{lookup_discriminator, discriminator_to_name, discriminator_to_protocol, parse_with_discriminator};
30
31pub 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;
35pub use orca_whirlpool::parse_log as parse_orca_whirlpool_log;
36pub use pump_amm::parse_log as parse_pump_amm_log;
37pub use pump::parse_log as parse_pumpfun_log;
38pub use raydium_amm::parse_log as parse_raydium_amm_log;
39pub use raydium_clmm::parse_log as parse_raydium_clmm_log;
40pub use raydium_cpmm::parse_log as parse_raydium_cpmm_log;
41pub use raydium_launchpad::parse_log as parse_raydium_launchpad_log;
42
43pub use utils::*;
45
46use crate::core::events::DexEvent;
47use solana_sdk::signature::Signature;
48use crate::core::clock::now_us;
49
50#[inline(always)] pub fn parse_log(
54 log: &str,
55 signature: Signature,
56 slot: u64,
57 tx_index: u64,
58 block_time_us: Option<i64>,
59 grpc_recv_us: i64,
60 event_type_filter: Option<&crate::grpc::types::EventTypeFilter>,
61 is_created_buy: bool,
62 recent_blockhash: Option<&[u8]>,
63) -> Option<DexEvent> {
64 optimized_matcher::parse_log_optimized(
65 log,
66 signature,
67 slot,
68 tx_index,
69 block_time_us,
70 grpc_recv_us,
71 event_type_filter,
72 is_created_buy,
73 recent_blockhash,
74 )
75}
76
77#[inline(always)] pub fn parse_log_unified(
80 log: &str,
81 signature: Signature,
82 slot: u64,
83 block_time_us: Option<i64>,
84) -> Option<DexEvent> {
85 let grpc_recv_us = now_us();
86 optimized_matcher::parse_log_optimized(
87 log,
88 signature,
89 slot,
90 0,
91 block_time_us,
92 grpc_recv_us,
93 None,
94 false,
95 None,
96 )
97}