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;
18pub mod pump_amm;
19pub mod pump_fees;
20pub mod raydium_amm;
21pub mod raydium_clmm;
22pub mod raydium_cpmm;
23pub mod raydium_launchpad;
24pub mod utils;
25pub mod zero_copy_parser;
26
27pub use discriminator_lut::{
29 discriminator_to_name, discriminator_to_protocol, lookup_discriminator,
30 parse_with_discriminator,
31};
32pub use utils::extract_discriminator_fast;
33pub use zero_copy_parser::parse_pumpfun_trade;
34
35pub use meteora_amm::parse_log as parse_meteora_amm_log;
37pub use meteora_damm::parse_log as parse_meteora_damm_log;
38pub use meteora_dlmm::parse_log as parse_meteora_dlmm_log;
39pub use orca_whirlpool::parse_log as parse_orca_whirlpool_log;
40pub use pump::parse_log as parse_pumpfun_log;
41pub use pump_amm::parse_log as parse_pump_amm_log;
42pub use raydium_amm::parse_log as parse_raydium_amm_log;
43pub use raydium_clmm::parse_log as parse_raydium_clmm_log;
44pub use raydium_cpmm::parse_log as parse_raydium_cpmm_log;
45pub use raydium_launchpad::parse_log as parse_raydium_launchpad_log;
46
47pub use utils::*;
49
50use crate::core::clock::now_us;
51use crate::core::events::DexEvent;
52use solana_sdk::signature::Signature;
53
54#[inline(always)] pub fn parse_log(
58 log: &str,
59 signature: Signature,
60 slot: u64,
61 tx_index: u64,
62 block_time_us: Option<i64>,
63 grpc_recv_us: i64,
64 event_type_filter: Option<&crate::grpc::types::EventTypeFilter>,
65 is_created_buy: bool,
66 recent_blockhash: Option<&[u8]>,
67) -> Option<DexEvent> {
68 optimized_matcher::parse_log_optimized(
69 log,
70 signature,
71 slot,
72 tx_index,
73 block_time_us,
74 grpc_recv_us,
75 event_type_filter,
76 is_created_buy,
77 recent_blockhash,
78 )
79}
80
81#[inline(always)]
87pub fn parse_log_with_program_id(
88 log: &str,
89 signature: Signature,
90 slot: u64,
91 tx_index: u64,
92 block_time_us: Option<i64>,
93 grpc_recv_us: i64,
94 event_type_filter: Option<&crate::grpc::types::EventTypeFilter>,
95 is_created_buy: bool,
96 recent_blockhash: Option<&[u8]>,
97 program_id: Option<&solana_sdk::pubkey::Pubkey>,
98) -> Option<DexEvent> {
99 optimized_matcher::parse_log_optimized_with_program_id(
100 log,
101 signature,
102 slot,
103 tx_index,
104 block_time_us,
105 grpc_recv_us,
106 event_type_filter,
107 is_created_buy,
108 recent_blockhash,
109 program_id,
110 )
111}
112
113#[inline(always)] pub fn parse_log_unified(
116 log: &str,
117 signature: Signature,
118 slot: u64,
119 block_time_us: Option<i64>,
120) -> Option<DexEvent> {
121 let grpc_recv_us = now_us();
122 optimized_matcher::parse_log_optimized(
123 log,
124 signature,
125 slot,
126 0,
127 block_time_us,
128 grpc_recv_us,
129 None,
130 false,
131 None,
132 )
133}