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