Merge pull request #79 from 0xfnzero/chore/update-sol-parser-sdk-0.6.4

Update sol-parser-sdk to 0.6.4
This commit is contained in:
Wood
2026-08-14 17:11:38 +08:00
committed by GitHub
6 changed files with 23 additions and 1 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ sdk-perf-stats = ["sol-parser-sdk/perf-stats"]
sdk-ultra-perf = ["sol-parser-sdk/ultra-perf"]
[dependencies]
sol-parser-sdk = { version = "0.6.3", default-features = false }
sol-parser-sdk = { version = "0.6.4", default-features = false }
solana-sdk = "3.0.0"
solana-client = "3.1.12"
solana-transaction-status = "3.1.12"
@@ -811,6 +811,12 @@ pub fn merge(instruction_event: &mut DexEvent, cpi_log_event: DexEvent) {
// Meteora DLMM
DexEvent::MeteoraDlmmSwapEvent(e) => match cpi_log_event {
DexEvent::MeteoraDlmmSwapEvent(cpie) => {
if cpie.token_x_mint != Pubkey::default() {
e.token_x_mint = cpie.token_x_mint;
}
if cpie.token_y_mint != Pubkey::default() {
e.token_y_mint = cpie.token_y_mint;
}
if cpie.pool != Pubkey::default() {
e.pool = cpie.pool;
}
@@ -310,6 +310,10 @@ pub struct MeteoraPoolsSetPoolFeesEvent {
#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct MeteoraDlmmSwapEvent {
pub metadata: EventMetadata,
#[serde(default)]
pub token_x_mint: Pubkey,
#[serde(default)]
pub token_y_mint: Pubkey,
pub pool: Pubkey,
pub from: Pubkey,
pub start_bin_id: i32,
@@ -360,6 +360,8 @@ pub(crate) fn meteora_dlmm_swap_from_pb(
) -> MeteoraDlmmSwapEvent {
MeteoraDlmmSwapEvent {
metadata: meta,
token_x_mint: e.token_x_mint,
token_y_mint: e.token_y_mint,
pool: e.pool,
from: e.from,
start_bin_id: e.start_bin_id,
+6
View File
@@ -446,8 +446,12 @@ mod tests {
fn converts_meteora_dlmm_swap_preserving_amounts() {
let pool = Pubkey::new_unique();
let from = Pubkey::new_unique();
let token_x_mint = Pubkey::new_unique();
let token_y_mint = Pubkey::new_unique();
let pb = PbDlmmSwap {
metadata: EventMetadata::default(),
token_x_mint,
token_y_mint,
pool,
from,
start_bin_id: -5,
@@ -463,6 +467,8 @@ mod tests {
let ev = convert_parser_event(PbDexEvent::MeteoraDlmmSwap(pb), None, 0).expect("convert");
match ev {
DexEvent::MeteoraDlmmSwapEvent(e) => {
assert_eq!(e.token_x_mint, token_x_mint);
assert_eq!(e.token_y_mint, token_y_mint);
assert_eq!(e.pool, pool);
assert_eq!(e.from, from);
assert_eq!(e.start_bin_id, -5);
+4
View File
@@ -28,6 +28,8 @@ fn current_meteora_dlmm_swap_passes_exact_filter() {
}
const SIGNATURE: &str =
"eEWaGsbRPoiD36Xf3epzSMmdtXX36va76b13YfsDV3ncsxQHBTjC68zZ8mbzFXTNWy3n3qKUAHjgHBconX4Gu1i";
const TOKEN_X_MINT: &str = "4sWNB8zGWHkh6UnmwiEtzNxL4XrN7uK9tosbESbJFfVs";
const TOKEN_Y_MINT: &str = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
let signature = Signature::from_str(SIGNATURE).expect("valid fixture signature");
let filter = EventTypeFilter::include_only([EventType::MeteoraDlmmSwap]);
let events = fetch_rpc_transaction_as_streamer_events(
@@ -46,6 +48,8 @@ fn current_meteora_dlmm_swap_passes_exact_filter() {
};
assert_eq!(swap.metadata.signature, signature);
assert_eq!(swap.metadata.slot, 438_873_646);
assert_eq!(swap.token_x_mint.to_string(), TOKEN_X_MINT);
assert_eq!(swap.token_y_mint.to_string(), TOKEN_Y_MINT);
assert_eq!(swap.amount_in, 2_738_183_783);
assert_eq!(swap.amount_out, 81_555_062);
assert_eq!(swap.fee, 18_486_656);