From 9bd057768385e43b8186d70107dd621ebb7be508 Mon Sep 17 00:00:00 2001 From: 0xfnzero <0xfnzero@users.noreply.github.com> Date: Sat, 20 Jun 2026 10:48:53 +0800 Subject: [PATCH] chore: release solana-streamer-sdk 1.5.16 --- Cargo.toml | 2 +- README.md | 12 ++++++++---- README_CN.md | 12 ++++++++---- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6ad329c..f4ba803 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "solana-streamer-sdk" -version = "1.5.15" +version = "1.5.16" edition = "2021" authors = ["William ", "sgxiang ", "wei <1415121722@qq.com>"] repository = "https://github.com/0xfnzero/solana-streamer" diff --git a/README.md b/README.md index 8a9827c..8482d71 100755 --- a/README.md +++ b/README.md @@ -135,30 +135,34 @@ Add the dependency to your `Cargo.toml`: ```toml # Add to your Cargo.toml -solana-streamer-sdk = { path = "./solana-streamer", version = "1.5.15" } +solana-streamer-sdk = { path = "./solana-streamer", version = "1.5.16" } ``` ### Use crates.io ```toml # Add to your Cargo.toml -solana-streamer-sdk = "1.5.15" +solana-streamer-sdk = "1.5.16" ``` Parser backend features: ```toml # Default: sol-parser-sdk parse-borsh backend -solana-streamer-sdk = "1.5.15" +solana-streamer-sdk = "1.5.16" # Zero-copy parser backend for latency-sensitive bots -solana-streamer-sdk = { version = "1.5.15", default-features = false, features = ["sdk-parse-zero-copy"] } +solana-streamer-sdk = { version = "1.5.16", default-features = false, features = ["sdk-parse-zero-copy"] } ``` If both `sdk-parse-borsh` and `sdk-parse-zero-copy` are enabled, `sol-parser-sdk 0.5.15+` uses the zero-copy backend. ## 🔄 Migration Guide +### Upgrading to v1.5.16 + +Version 1.5.16 fixes `StreamingOrdered` delivery for transactions that parse into multiple events. Events from the same `(slot, tx_index)` are admitted as a group, the streaming watermark advances once per transaction, and stable sorting preserves parser order for equal transaction indexes. It also pins `yellowstone-grpc-proto` to the `12.4.x` API used by `sol-parser-sdk 0.5.15` so CI and clean installs do not resolve an incompatible newer proto crate. + ### Upgrading to v1.5.15 Version 1.5.15 tracks `sol-parser-sdk 0.5.15` at GitHub rev `36ec202`. Pump.fun `create_v2` now distinguishes 16-account SOL-sentinel creates from 19/20-account quote-pool creates, models Yellowstone gRPC loaded writable/readonly addresses correctly, rejects PumpFun program-account fillers as quote mints, and keeps ShredStream from guessing ALT-loaded quote mints when the static transaction keys do not contain them. gRPC/RPC inner instruction parsing now handles guarded 8-byte ordinary CPI instructions for all SDK-supported DEX parsers, so PumpSwap `create_pool` reads `is_cashback_coin` from instruction args before merging with log-derived `CreatePoolEvent` output. ShredStream remains outer-instruction only, but its outer discriminator gate is shared with the SDK parser and no longer diverges for supported DEX protocols. diff --git a/README_CN.md b/README_CN.md index 0c85e82..6644510 100644 --- a/README_CN.md +++ b/README_CN.md @@ -134,30 +134,34 @@ git clone https://github.com/0xfnzero/solana-streamer ```toml # 添加到您的 Cargo.toml -solana-streamer-sdk = { path = "./solana-streamer", version = "1.5.15" } +solana-streamer-sdk = { path = "./solana-streamer", version = "1.5.16" } ``` ### 使用 crates.io ```toml # 添加到您的 Cargo.toml -solana-streamer-sdk = "1.5.15" +solana-streamer-sdk = "1.5.16" ``` 解析后端 feature: ```toml # 默认:sol-parser-sdk parse-borsh 后端 -solana-streamer-sdk = "1.5.15" +solana-streamer-sdk = "1.5.16" # 面向低延迟 Bot 的 zero-copy 解析后端 -solana-streamer-sdk = { version = "1.5.15", default-features = false, features = ["sdk-parse-zero-copy"] } +solana-streamer-sdk = { version = "1.5.16", default-features = false, features = ["sdk-parse-zero-copy"] } ``` 如果同时启用 `sdk-parse-borsh` 和 `sdk-parse-zero-copy`,`sol-parser-sdk 0.5.15+` 会优先使用 zero-copy 后端。 ## 🔄 迁移指南 +### 升级到 v1.5.16 + +v1.5.16 修复 `StreamingOrdered` 模式下同一交易解析出多个事件时的投递问题。同一 `(slot, tx_index)` 的事件会作为一组进入缓冲,streaming watermark 每笔交易只推进一次,并用 stable sort 保留相同交易索引下的解析器输出顺序。同时将 `yellowstone-grpc-proto` 固定到 `sol-parser-sdk 0.5.15` 使用的 `12.4.x` API,避免 CI 和干净安装解析到不兼容的新 proto crate。 + ### 升级到 v1.5.15 v1.5.15 跟随 GitHub rev `36ec202` 上的 `sol-parser-sdk 0.5.15`。Pump.fun `create_v2` 现在会区分 16 账户 SOL sentinel 创建和 19/20 账户 quote-pool 创建;填充账户时会先选择实际的 create/create_v2 指令,再读取 quote 字段。gRPC/RPC inner instruction 解析现在会按 program id + discriminator 守卫解析所有 SDK 已支持 DEX 的 8-byte 普通 CPI instruction,PumpSwap `create_pool` 因此能从 instruction args 读取 `is_cashback_coin` 并与 log 事件合并。ShredStream 仍只解析外层指令,但外层 discriminator gate 已和 SDK 统一,避免支持协议之间规则分叉。