mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-07-27 17:37:45 +00:00
feat: upgrade to v1.1.0
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-streamer-sdk"
|
||||
version = "1.0.0"
|
||||
version = "1.1.0"
|
||||
edition = "2021"
|
||||
authors = ["William <byteblock6@gmail.com>", "sgxiang <sgxiang@gmail.com>", "wei <1415121722@qq.com>"]
|
||||
repository = "https://github.com/0xfnzero/solana-streamer"
|
||||
|
||||
+11
-11
@@ -1,4 +1,4 @@
|
||||
# Migration Guide: v0.5.x to v1.0.0
|
||||
# Migration Guide: v0.5.x to v1.x.x
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -11,7 +11,7 @@ Version 1.0.0 introduces a significant architectural improvement by transitionin
|
||||
|
||||
## Breaking Changes Summary
|
||||
|
||||
| Component | v0.5.x | v1.0.0 |
|
||||
| Component | v0.5.x | v1.x.x |
|
||||
| ------------------ | --------------------------- | --------------------------- |
|
||||
| Event Type | `Box<dyn UnifiedEvent>` | `DexEvent` (enum) |
|
||||
| Callback Signature | `Fn(Box<dyn UnifiedEvent>)` | `Fn(DexEvent)` |
|
||||
@@ -33,7 +33,7 @@ let callback = |event: Box<dyn UnifiedEvent>| {
|
||||
};
|
||||
```
|
||||
|
||||
**After (v1.0.0):**
|
||||
**After (v1.x.x):**
|
||||
|
||||
```rust
|
||||
use solana_streamer_sdk::streaming::event_parser::DexEvent;
|
||||
@@ -60,7 +60,7 @@ match_event!(event, {
|
||||
});
|
||||
```
|
||||
|
||||
**After (v1.0.0):**
|
||||
**After (v1.x.x):**
|
||||
|
||||
```rust
|
||||
match event {
|
||||
@@ -85,7 +85,7 @@ let slot = event.slot();
|
||||
let protocol = event.protocol();
|
||||
```
|
||||
|
||||
**After (v1.0.0):**
|
||||
**After (v1.x.x):**
|
||||
|
||||
```rust
|
||||
let event_type = event.metadata().event_type;
|
||||
@@ -111,7 +111,7 @@ use solana_streamer_sdk::{
|
||||
};
|
||||
```
|
||||
|
||||
**After (v1.0.0):**
|
||||
**After (v1.x.x):**
|
||||
|
||||
```rust
|
||||
use solana_streamer_sdk::streaming::event_parser::{
|
||||
@@ -183,7 +183,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
}
|
||||
```
|
||||
|
||||
### After (v1.0.0)
|
||||
### After (v1.x.x)
|
||||
|
||||
```rust
|
||||
use solana_streamer_sdk::streaming::{
|
||||
@@ -241,7 +241,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
### Pattern 1: Event Filtering with Match
|
||||
|
||||
**v1.0.0:**
|
||||
**v1.x.x:**
|
||||
|
||||
```rust
|
||||
let callback = |event: DexEvent| {
|
||||
@@ -260,7 +260,7 @@ let callback = |event: DexEvent| {
|
||||
|
||||
### Pattern 2: Generic Event Processing
|
||||
|
||||
**v1.0.0:**
|
||||
**v1.x.x:**
|
||||
|
||||
```rust
|
||||
fn process_event(event: DexEvent) {
|
||||
@@ -282,7 +282,7 @@ fn process_event(event: DexEvent) {
|
||||
|
||||
### Pattern 3: Event Type Categorization
|
||||
|
||||
**v1.0.0:**
|
||||
**v1.x.x:**
|
||||
|
||||
```rust
|
||||
fn categorize_event(event: &DexEvent) -> &'static str {
|
||||
@@ -319,7 +319,7 @@ parser.parse_encoded_confirmed_transaction_with_status_meta(
|
||||
).await?;
|
||||
```
|
||||
|
||||
**After (v1.0.0):**
|
||||
**After (v1.x.x):**
|
||||
|
||||
```rust
|
||||
EventParser::parse_encoded_confirmed_transaction_with_status_meta(
|
||||
|
||||
+11
-11
@@ -1,4 +1,4 @@
|
||||
# 迁移指南:v0.5.x 到 v1.0.0
|
||||
# 迁移指南:v0.5.x 到 v1.x.x
|
||||
|
||||
## 概述
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
## 破坏性变更摘要
|
||||
|
||||
| 组件 | v0.5.x | v1.0.0 |
|
||||
| 组件 | v0.5.x | v1.x.x |
|
||||
|-----------|--------|--------|
|
||||
| 事件类型 | `Box<dyn UnifiedEvent>` | `DexEvent`(枚举) |
|
||||
| 回调签名 | `Fn(Box<dyn UnifiedEvent>)` | `Fn(DexEvent)` |
|
||||
@@ -32,7 +32,7 @@ let callback = |event: Box<dyn UnifiedEvent>| {
|
||||
};
|
||||
```
|
||||
|
||||
**之后 (v1.0.0):**
|
||||
**之后 (v1.x.x):**
|
||||
```rust
|
||||
use solana_streamer_sdk::streaming::event_parser::DexEvent;
|
||||
|
||||
@@ -57,7 +57,7 @@ match_event!(event, {
|
||||
});
|
||||
```
|
||||
|
||||
**之后 (v1.0.0):**
|
||||
**之后 (v1.x.x):**
|
||||
```rust
|
||||
match event {
|
||||
DexEvent::PumpFunTradeEvent(e) => {
|
||||
@@ -80,7 +80,7 @@ let slot = event.slot();
|
||||
let protocol = event.protocol();
|
||||
```
|
||||
|
||||
**之后 (v1.0.0):**
|
||||
**之后 (v1.x.x):**
|
||||
```rust
|
||||
let event_type = event.metadata().event_type;
|
||||
let signature = event.metadata().signature;
|
||||
@@ -104,7 +104,7 @@ use solana_streamer_sdk::{
|
||||
};
|
||||
```
|
||||
|
||||
**之后 (v1.0.0):**
|
||||
**之后 (v1.x.x):**
|
||||
```rust
|
||||
use solana_streamer_sdk::streaming::event_parser::{
|
||||
DexEvent,
|
||||
@@ -175,7 +175,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
}
|
||||
```
|
||||
|
||||
### 之后 (v1.0.0)
|
||||
### 之后 (v1.x.x)
|
||||
|
||||
```rust
|
||||
use solana_streamer_sdk::streaming::{
|
||||
@@ -233,7 +233,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
### 模式 1:使用 Match 进行事件过滤
|
||||
|
||||
**v1.0.0:**
|
||||
**v1.x.x:**
|
||||
```rust
|
||||
let callback = |event: DexEvent| {
|
||||
// 只处理特定事件类型
|
||||
@@ -251,7 +251,7 @@ let callback = |event: DexEvent| {
|
||||
|
||||
### 模式 2:通用事件处理
|
||||
|
||||
**v1.0.0:**
|
||||
**v1.x.x:**
|
||||
```rust
|
||||
fn process_event(event: DexEvent) {
|
||||
let metadata = event.metadata();
|
||||
@@ -272,7 +272,7 @@ fn process_event(event: DexEvent) {
|
||||
|
||||
### 模式 3:事件类型分类
|
||||
|
||||
**v1.0.0:**
|
||||
**v1.x.x:**
|
||||
```rust
|
||||
fn categorize_event(event: &DexEvent) -> &'static str {
|
||||
match event {
|
||||
@@ -307,7 +307,7 @@ parser.parse_encoded_confirmed_transaction_with_status_meta(
|
||||
).await?;
|
||||
```
|
||||
|
||||
**之后 (v1.0.0):**
|
||||
**之后 (v1.x.x):**
|
||||
```rust
|
||||
EventParser::parse_encoded_confirmed_transaction_with_status_meta(
|
||||
&protocols,
|
||||
|
||||
@@ -109,19 +109,19 @@ Add the dependency to your `Cargo.toml`:
|
||||
|
||||
```toml
|
||||
# Add to your Cargo.toml
|
||||
solana-streamer-sdk = { path = "./solana-streamer", version = "1.0.0" }
|
||||
solana-streamer-sdk = { path = "./solana-streamer", version = "1.1.0" }
|
||||
```
|
||||
|
||||
### Use crates.io
|
||||
|
||||
```toml
|
||||
# Add to your Cargo.toml
|
||||
solana-streamer-sdk = "1.0.0"
|
||||
solana-streamer-sdk = "1.1.0"
|
||||
```
|
||||
|
||||
## 🔄 Migration Guide
|
||||
|
||||
### Migrating from v0.5.x to v1.0.0
|
||||
### Migrating from v0.5.x to v1.x.x
|
||||
|
||||
Version 1.0.0 introduces a major architectural change from trait-based event handling to enum-based events. This provides better type safety, improved performance, and simpler code patterns.
|
||||
|
||||
@@ -142,7 +142,7 @@ let callback = |event: Box<dyn UnifiedEvent>| {
|
||||
println!("Event: {:?}", event.event_type());
|
||||
};
|
||||
|
||||
// New (v1.0.0)
|
||||
// New (v1.x.x)
|
||||
let callback = |event: DexEvent| {
|
||||
println!("Event: {:?}", event.metadata().event_type);
|
||||
};
|
||||
|
||||
+4
-4
@@ -108,19 +108,19 @@ git clone https://github.com/0xfnzero/solana-streamer
|
||||
|
||||
```toml
|
||||
# 添加到您的 Cargo.toml
|
||||
solana-streamer-sdk = { path = "./solana-streamer", version = "1.0.0" }
|
||||
solana-streamer-sdk = { path = "./solana-streamer", version = "1.1.0" }
|
||||
```
|
||||
|
||||
### 使用 crates.io
|
||||
|
||||
```toml
|
||||
# 添加到您的 Cargo.toml
|
||||
solana-streamer-sdk = "1.0.0"
|
||||
solana-streamer-sdk = "1.1.0"
|
||||
```
|
||||
|
||||
## 🔄 迁移指南
|
||||
|
||||
### 从 v0.5.x 迁移到 v1.0.0
|
||||
### 从 v0.5.x 迁移到 v1.x.x
|
||||
|
||||
版本 1.0.0 引入了从基于 trait 的事件处理到基于 enum 的事件的重大架构变更。这提供了更好的类型安全性、改进的性能和更简单的代码模式。
|
||||
|
||||
@@ -141,7 +141,7 @@ let callback = |event: Box<dyn UnifiedEvent>| {
|
||||
println!("Event: {:?}", event.event_type());
|
||||
};
|
||||
|
||||
// 新版 (v1.0.0)
|
||||
// 新版 (v1.x.x)
|
||||
let callback = |event: DexEvent| {
|
||||
println!("Event: {:?}", event.metadata().event_type);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user