mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-11-02 07:16:31 +00:00
fix: populate Pump creation transaction version on Shred paths
This commit is contained in:
@@ -301,7 +301,7 @@ instruction args, while log-only `CreatePoolEvent` payloads keep the default
|
||||
account value is also available from
|
||||
`PumpSwapPoolAccountEvent.pool.is_cashback_coin`.
|
||||
|
||||
`PumpFunCreateTokenEvent.transaction_version` reports the transaction message version as `Some(YellowstoneMessageVersion::Legacy)`, `V0` or `V1` on gRPC/RPC. JSON uses `"legacy"`, `"v0"` and `"v1"`. It remains `None` without transaction context (including standalone Shred parsing). This is independent of the Pump instruction name in `ix_name`.
|
||||
`PumpFunCreateTokenEvent.transaction_version` reports the transaction message version as `Some(YellowstoneMessageVersion::Legacy)`, `V0` or `V1` on Shred/gRPC/RPC. JSON uses `"legacy"`, `"v0"` and `"v1"`. It remains `None` without transaction context (for example, parsing an isolated event log). This is independent of the Pump instruction name in `ix_name`.
|
||||
|
||||
<a id="trade-provenance-and-parsing-boundaries"></a>
|
||||
|
||||
|
||||
+1
-1
@@ -281,7 +281,7 @@ log-only 的 `CreatePoolEvent` payload 因为 IDL 不包含该字段,会保持
|
||||
`false`。账户里的权威值也可通过
|
||||
`PumpSwapPoolAccountEvent.pool.is_cashback_coin` 读取。
|
||||
|
||||
`PumpFunCreateTokenEvent.transaction_version` 在 gRPC/RPC 路径下表示交易消息版本:`Some(YellowstoneMessageVersion::Legacy)`、`V0` 或 `V1`,JSON 分别为 `"legacy"`、`"v0"`、`"v1"`。缺少交易上下文时(包括独立 Shred 解析)为 `None`。该字段与 `ix_name` 表示的 Pump 指令版本相互独立。
|
||||
`PumpFunCreateTokenEvent.transaction_version` 在 Shred/gRPC/RPC 路径下表示交易消息版本:`Some(YellowstoneMessageVersion::Legacy)`、`V0` 或 `V1`,JSON 分别为 `"legacy"`、`"v0"`、`"v1"`。缺少交易上下文时(例如单独解析一条事件日志)为 `None`。该字段与 `ix_name` 表示的 Pump 指令版本相互独立。
|
||||
|
||||
<a id="交易来源与解析边界"></a>
|
||||
|
||||
|
||||
@@ -533,7 +533,11 @@ mod tests {
|
||||
async fn shred_transaction_preserves_unknown_tx_index() {
|
||||
let event = parse_single_shred_create(None).await;
|
||||
|
||||
assert!(matches!(event, DexEvent::PumpFunCreateTokenEvent(_)));
|
||||
let DexEvent::PumpFunCreateTokenEvent(create) = &event else { panic!("create callback") };
|
||||
assert_eq!(
|
||||
create.transaction_version,
|
||||
Some(sol_parser_sdk::YellowstoneMessageVersion::V0)
|
||||
);
|
||||
assert_eq!(event.metadata().tx_index, None);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ use crate::streaming::event_parser::protocols::pumpfun::types::{BondingCurve, Gl
|
||||
|
||||
#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize, BorshDeserialize)]
|
||||
pub struct PumpFunCreateTokenEvent {
|
||||
/// Transaction message version from gRPC/RPC context, independent of create/create_v2.
|
||||
/// Transaction message version from Shred/gRPC/RPC context, independent of create/create_v2.
|
||||
#[borsh(skip)]
|
||||
#[serde(default)]
|
||||
pub transaction_version: Option<sol_parser_sdk::grpc::YellowstoneMessageVersion>,
|
||||
|
||||
Reference in New Issue
Block a user