mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-08-23 13:58:06 +00:00
feat: bridge streamer to sol-parser-sdk
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user