From 2638b9bb9110b9946d887bb8d78c9564d6dd6e04 Mon Sep 17 00:00:00 2001 From: zhaoguojie2010 Date: Sun, 16 Nov 2025 15:01:12 +0800 Subject: [PATCH] bugfix: fix discriminator length for raydium amm --- src/streaming/event_parser/core/event_parser.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/streaming/event_parser/core/event_parser.rs b/src/streaming/event_parser/core/event_parser.rs index 0da6ee1..c7b3dad 100644 --- a/src/streaming/event_parser/core/event_parser.rs +++ b/src/streaming/event_parser/core/event_parser.rs @@ -331,14 +331,19 @@ impl EventParser { None => return Ok(()), }; + let disc_len = match protocol { + Protocol::RaydiumAmmV4 => 1, + _ => 8, + }; + // 检查指令数据长度(至少需要 8 字节的 discriminator) - if instruction.data.len() < 8 { + if instruction.data.len() < disc_len { return Ok(()); } // 提取 discriminator 和数据 - let instruction_discriminator = &instruction.data[..8]; - let instruction_data = &instruction.data[8..]; + let instruction_discriminator = &instruction.data[..disc_len]; + let instruction_data = &instruction.data[disc_len..]; // 构建账户公钥列表 let account_pubkeys: Vec = instruction