feat: Add block metadata event support

- Implement BlockMetaEvent and SDKSystemEventParser
- Support block metadata subscription and processing
- Optimize event handling with separate tokio tasks
- Add commitment parameter support
- Upgrade version to 0.1.3
This commit is contained in:
ysq
2025-07-24 19:37:34 +08:00
parent a5269bb1ff
commit a4987b9a3e
8 changed files with 143 additions and 35 deletions
+6 -3
View File
@@ -33,14 +33,14 @@ Add the dependency to your `Cargo.toml`:
```toml
# Add to your Cargo.toml
solana-streamer-sdk = { path = "./solana-streamer", version = "0.1.2" }
solana-streamer-sdk = { path = "./solana-streamer", version = "0.1.3" }
```
### Use crates.io
```toml
# Add to your Cargo.toml
solana-streamer-sdk = "0.1.2"
solana-streamer-sdk = "0.1.3"
```
## Usage Examples
@@ -87,7 +87,7 @@ async fn test_grpc() -> Result<(), Box<dyn std::error::Error>> {
];
println!("Listening for events, press Ctrl+C to stop...");
grpc.subscribe_events(protocols, None, None, None, callback)
grpc.subscribe_events(protocols, None, None, None, None, None, callback)
.await?;
Ok(())
@@ -117,6 +117,9 @@ 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);
},