Skip to main content

sol_parser_sdk/grpc/
mod.rs

1//! gRPC 模块 - 支持gRPC订阅、事件过滤、账号过滤
2//!
3//! 这个模块提供了完整的Solana DEX事件gRPC流式处理功能,包括:
4//! - gRPC连接和订阅管理
5//! - 事件类型过滤
6//! - 账户和交易过滤
7//! - 多协议支持(PumpFun, RaydiumLaunchlab, Raydium等)
8//! - [`subscribe_builder`]:构造 Yellowstone `SubscribeRequest`(DEX 与 mentions 监控共用)
9//! - [`transaction_meta`]:原始 `Transaction` / `TransactionStatusMeta` 工具(转账分析等)
10
11pub mod buffers;
12pub mod client;
13pub mod config;
14pub mod event_parser;
15pub mod filter;
16pub mod geyser_connect;
17pub mod instruction_parser; // 增强的 instruction 解析器
18pub(crate) mod log_instr_dedup;
19pub mod program_ids;
20pub mod subscribe_builder;
21pub mod transaction_meta;
22pub mod types;
23pub mod yellowstone_tx_parse;
24
25// 重新导出主要API
26pub use client::YellowstoneGrpc;
27pub use geyser_connect::{connect_yellowstone_geyser, GeyserConnectConfig};
28pub use subscribe_builder::{
29    build_subscribe_request, build_subscribe_request_with_commitment,
30    build_subscribe_request_with_event_filter, build_subscribe_transaction_filters_named,
31};
32pub use transaction_meta::{
33    collect_account_keys_bs58, collect_watch_transfer_counterparty_pairs,
34    heuristic_sol_counterparties_for_watched_keys, lamport_balance_deltas,
35    spl_token_counterparty_by_owner, token_balance_raw_amount, try_yellowstone_signature,
36    yellowstone_message_version, YellowstoneMessageVersion,
37};
38pub use types::{
39    account_filter_memcmp, AccountFilter, ClientConfig, EventType as StreamingEventType,
40    EventTypeFilter, OrderMode, Protocol, SlotFilter, TransactionFilter,
41};
42pub use yellowstone_tx_parse::{
43    parse_subscribe_update_transaction, parse_subscribe_update_transaction_low_latency,
44};
45
46/// Criterion-only access to the internal log/instruction deduplicator.
47#[cfg(feature = "perf-stats")]
48#[doc(hidden)]
49pub fn benchmark_dedupe_log_instruction_events(
50    log_events: Vec<crate::DexEvent>,
51    instr_events: Vec<crate::DexEvent>,
52) -> Vec<crate::DexEvent> {
53    log_instr_dedup::dedupe_log_instruction_events(log_events, instr_events)
54}
55
56// 事件解析器重新导出
57pub use event_parser::*;
58
59// 兼容性别名
60pub use StreamingEventType as EventType;