sol-parser-sdk 0.4.11

A lightweight Rust library for real-time event streaming from Solana DEX trading programs. Supports PumpFun, PumpSwap, Bonk, and Raydium protocols with Yellowstone gRPC and ShredStream.
Documentation
use crate::core::events::{DexEvent, EventMetadata};

pub mod discriminators {
    pub const TRADED: [u8; 16] =
        [225, 202, 73, 175, 147, 43, 160, 150, 155, 167, 108, 32, 122, 76, 173, 64];
    pub const LIQUIDITY_INCREASED: [u8; 16] =
        [30, 7, 144, 181, 102, 254, 155, 161, 155, 167, 108, 32, 122, 76, 173, 64];
    pub const LIQUIDITY_DECREASED: [u8; 16] =
        [166, 1, 36, 71, 112, 202, 181, 171, 155, 167, 108, 32, 122, 76, 173, 64];
    pub const POOL_INITIALIZED: [u8; 16] =
        [100, 118, 173, 87, 12, 198, 254, 229, 155, 167, 108, 32, 122, 76, 173, 64];
}

#[inline]
pub fn parse(disc: &[u8; 16], data: &[u8], metadata: EventMetadata) -> Option<DexEvent> {
    match disc {
        &discriminators::TRADED => {
            crate::logs::orca_whirlpool::parse_traded_from_data(data, metadata)
        }
        &discriminators::LIQUIDITY_INCREASED => {
            crate::logs::orca_whirlpool::parse_liquidity_increased_from_data(data, metadata)
        }
        &discriminators::LIQUIDITY_DECREASED => {
            crate::logs::orca_whirlpool::parse_liquidity_decreased_from_data(data, metadata)
        }
        &discriminators::POOL_INITIALIZED => {
            crate::logs::orca_whirlpool::parse_pool_initialized_from_data(data, metadata)
        }
        _ => None,
    }
}