feat: Upgrade SDK to version 0.1.4 and optimize event handling mechanism

1. Version upgrade: SDK version updated from 0.1.3 to 0.1.4
2. Remove BlockMetaEvent: Delete unnecessary block metadata event type and related code
3. Optimize event handling: Add block_time and block_time_ms fields to each event
4. Code optimization: Improve code formatting and structure
5. Example updates: Update example code and usage instructions in README
This commit is contained in:
ysq
2025-07-25 16:43:06 +08:00
parent 3b89ca381c
commit cef54e7373
6 changed files with 41 additions and 83 deletions
+8 -10
View File
@@ -2,7 +2,6 @@ use solana_streamer_sdk::{
match_event,
streaming::{
event_parser::{
core::traits::BlockMetaEvent,
protocols::{
bonk::{BonkPoolCreateEvent, BonkTradeEvent},
pumpfun::{PumpFunCreateTokenEvent, PumpFunTradeEvent},
@@ -22,7 +21,7 @@ use solana_streamer_sdk::{
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
test_grpc().await?;
// test_shreds().await?;
test_shreds().await?;
Ok(())
}
@@ -36,11 +35,11 @@ async fn test_grpc() -> Result<(), Box<dyn std::error::Error>> {
let callback = create_event_callback();
let protocols = vec![
// Protocol::PumpFun,
// Protocol::PumpSwap,
Protocol::PumpFun,
Protocol::PumpSwap,
Protocol::Bonk,
// Protocol::RaydiumCpmm,
// Protocol::RaydiumClmm,
Protocol::RaydiumCpmm,
Protocol::RaydiumClmm,
];
println!("开始监听事件,按 Ctrl+C 停止...");
@@ -74,11 +73,10 @@ async fn test_shreds() -> Result<(), Box<dyn std::error::Error>> {
fn create_event_callback() -> impl Fn(Box<dyn UnifiedEvent>) {
|event: Box<dyn UnifiedEvent>| {
match_event!(event, {
BlockMetaEvent => |e: BlockMetaEvent| {
// println!("BlockMetaEvent: {:?}", e.slot);
},
BonkPoolCreateEvent => |e: BonkPoolCreateEvent| {
// println!("BonkPoolCreateEvent: {:?}", e.base_mint_param.symbol);
// 使用grpc的时候,可以从每个事件中获取到block_time
println!("block_time: {:?}, block_time_ms: {:?}", e.metadata.block_time, e.metadata.block_time_ms);
println!("BonkPoolCreateEvent: {:?}", e.base_mint_param.symbol);
},
BonkTradeEvent => |e: BonkTradeEvent| {
println!("BonkTradeEvent: {:?}", e);