Skip to main content

sol_parser_sdk/
lib.rs

1#![allow(clippy::too_many_arguments)]
2
3// 核心模块 - 扁平化结构
4pub mod accounts; // 账户解析器
5pub mod common;
6pub mod core;
7pub mod instr; // 指令解析器
8pub mod logs; // 日志解析器
9pub mod stonkfun_registry;
10pub mod transaction_cost;
11pub mod transaction_route;
12pub mod utils;
13pub mod warmup; // 预热模块
14
15// gRPC 模块 - 支持gRPC订阅和过滤
16pub mod grpc;
17
18// ShredStream 模块 - 支持 Jito ShredStream 订阅
19pub mod shredstream;
20
21// RPC 解析模块 - 支持直接从RPC解析交易
22pub mod rpc_parser;
23
24// 兼容性别名
25pub mod parser {
26    pub use crate::core::*;
27}
28
29// 重新导出主要API - 简化的单一入口解析器
30pub use core::{
31    parse_logs_only,
32    parse_logs_streaming,
33    // 主要解析函数
34    parse_transaction_events,
35    // 流式解析函数
36    parse_transaction_events_streaming,
37    parse_transaction_with_listener,
38    parse_transaction_with_streaming_listener,
39    // 事件类型
40    DexEvent,
41    // 事件监听器
42    EventListener,
43    EventMetadata,
44    ParsedEvent,
45    StreamingEventListener,
46};
47
48// 导出预热函数
49pub use warmup::warmup_parser;
50
51// 导出 RPC 解析函数
52pub use grpc::{yellowstone_message_version, YellowstoneMessageVersion};
53pub use rpc_parser::{
54    convert_rpc_to_grpc, parse_rpc_transaction, parse_rpc_transaction_cost_with_signature,
55    parse_rpc_transaction_with_cost, parse_transaction_from_rpc, ParseError, ParsedRpcTransaction,
56};
57pub use stonkfun_registry::{StonkFunGraduatedPool, StonkFunPoolRegistry};
58pub use transaction_cost::{
59    parse_rpc_transaction_cost, parse_shred_transaction_cost, parse_yellowstone_transaction_cost,
60    SwqosProvider, SwqosTipAccountGroup, TipPayment, TransactionCost, SWQOS_TIP_ACCOUNT_GROUPS,
61};
62pub use transaction_route::{
63    analyze_rpc_transaction_routes, analyze_yellowstone_transaction_routes, InstructionPosition,
64    NativeTokenAction, RouteNativeTokenAction, RouteSwapLeg, RouteTokenTransfer,
65    RouteUnknownInvocation, SwapProtocol, TransactionRoute,
66};
67
68// 账户 / RPC 工具(非 DEX 业务)
69pub use accounts::{rpc_resolve_user_wallet_pubkey, user_wallet_pubkey_for_onchain_account};