feat: bridge streamer to sol-parser-sdk

This commit is contained in:
0xfnzero
2026-05-15 05:09:29 +08:00
parent e29a2e4f5a
commit ab84249f4a
85 changed files with 6350 additions and 1362 deletions
+19 -22
View File
@@ -28,21 +28,20 @@ async fn main() -> Result<()> {
let event_counter = Arc::new(AtomicU64::new(0));
let counter = event_counter.clone();
let callback =
move |event: solana_streamer_sdk::streaming::event_parser::DexEvent| {
let count = counter.fetch_add(1, Ordering::Relaxed);
let callback = move |event: solana_streamer_sdk::streaming::event_parser::DexEvent| {
let count = counter.fetch_add(1, Ordering::Relaxed);
let protocol = match event.metadata().event_type {
EventType::PumpFunBuy | EventType::PumpFunSell => "PumpFun",
EventType::RaydiumCpmmSwapBaseInput | EventType::RaydiumCpmmSwapBaseOutput => {
"RaydiumCpmm"
}
_ => "Unknown",
};
println!("Event #{}: {:11} - {:.8}...", count + 1, protocol, event.metadata().signature);
let protocol = match event.metadata().event_type {
EventType::PumpFunBuy | EventType::PumpFunSell => "PumpFun",
EventType::RaydiumCpmmSwapBaseInput | EventType::RaydiumCpmmSwapBaseOutput => {
"RaydiumCpmm"
}
_ => "Unknown",
};
println!("Event #{}: {:11} - {:.8}...", count + 1, protocol, event.metadata().signature);
};
println!("\n=== Phase 1: PumpFun only ===");
let pumpfun_filter = TransactionFilter {
account_include: vec![PUMPFUN_PROGRAM_ID.to_string()],
@@ -58,6 +57,7 @@ async fn main() -> Result<()> {
EventType::RaydiumCpmmSwapBaseInput,
EventType::RaydiumCpmmSwapBaseOutput,
],
..Default::default()
};
if let Err(e) = client
@@ -324,8 +324,7 @@ async fn main() -> Result<()> {
println!("\n=== Subscription enforcement ===");
let test_callback =
|_event: solana_streamer_sdk::streaming::event_parser::DexEvent| {};
let test_callback = |_event: solana_streamer_sdk::streaming::event_parser::DexEvent| {};
match client
.subscribe_events_immediate(
@@ -355,10 +354,9 @@ async fn main() -> Result<()> {
let client2_counter = Arc::new(AtomicU64::new(0));
let counter2 = client2_counter.clone();
let client2_callback =
move |_event: solana_streamer_sdk::streaming::event_parser::DexEvent| {
counter2.fetch_add(1, Ordering::Relaxed);
};
let client2_callback = move |_event: solana_streamer_sdk::streaming::event_parser::DexEvent| {
counter2.fetch_add(1, Ordering::Relaxed);
};
match client2
.subscribe_events_immediate(
@@ -444,10 +442,9 @@ async fn main() -> Result<()> {
let client4_counter = Arc::new(AtomicU64::new(0));
let counter4 = client4_counter.clone();
let client4_callback =
move |_event: solana_streamer_sdk::streaming::event_parser::DexEvent| {
counter4.fetch_add(1, Ordering::Relaxed);
};
let client4_callback = move |_event: solana_streamer_sdk::streaming::event_parser::DexEvent| {
counter4.fetch_add(1, Ordering::Relaxed);
};
match client4
.subscribe_events_immediate(