mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-08-21 12:58:11 +00:00
Update sol-parser-sdk to 0.6.4
This commit is contained in:
+1
-1
@@ -21,7 +21,7 @@ sdk-perf-stats = ["sol-parser-sdk/perf-stats"]
|
|||||||
sdk-ultra-perf = ["sol-parser-sdk/ultra-perf"]
|
sdk-ultra-perf = ["sol-parser-sdk/ultra-perf"]
|
||||||
|
|
||||||
[dependencies]
|
[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-sdk = "3.0.0"
|
||||||
solana-client = "3.1.12"
|
solana-client = "3.1.12"
|
||||||
solana-transaction-status = "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
|
// Meteora DLMM
|
||||||
DexEvent::MeteoraDlmmSwapEvent(e) => match cpi_log_event {
|
DexEvent::MeteoraDlmmSwapEvent(e) => match cpi_log_event {
|
||||||
DexEvent::MeteoraDlmmSwapEvent(cpie) => {
|
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() {
|
if cpie.pool != Pubkey::default() {
|
||||||
e.pool = cpie.pool;
|
e.pool = cpie.pool;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -310,6 +310,10 @@ pub struct MeteoraPoolsSetPoolFeesEvent {
|
|||||||
#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
pub struct MeteoraDlmmSwapEvent {
|
pub struct MeteoraDlmmSwapEvent {
|
||||||
pub metadata: EventMetadata,
|
pub metadata: EventMetadata,
|
||||||
|
#[serde(default)]
|
||||||
|
pub token_x_mint: Pubkey,
|
||||||
|
#[serde(default)]
|
||||||
|
pub token_y_mint: Pubkey,
|
||||||
pub pool: Pubkey,
|
pub pool: Pubkey,
|
||||||
pub from: Pubkey,
|
pub from: Pubkey,
|
||||||
pub start_bin_id: i32,
|
pub start_bin_id: i32,
|
||||||
|
|||||||
@@ -360,6 +360,8 @@ pub(crate) fn meteora_dlmm_swap_from_pb(
|
|||||||
) -> MeteoraDlmmSwapEvent {
|
) -> MeteoraDlmmSwapEvent {
|
||||||
MeteoraDlmmSwapEvent {
|
MeteoraDlmmSwapEvent {
|
||||||
metadata: meta,
|
metadata: meta,
|
||||||
|
token_x_mint: e.token_x_mint,
|
||||||
|
token_y_mint: e.token_y_mint,
|
||||||
pool: e.pool,
|
pool: e.pool,
|
||||||
from: e.from,
|
from: e.from,
|
||||||
start_bin_id: e.start_bin_id,
|
start_bin_id: e.start_bin_id,
|
||||||
|
|||||||
@@ -446,8 +446,12 @@ mod tests {
|
|||||||
fn converts_meteora_dlmm_swap_preserving_amounts() {
|
fn converts_meteora_dlmm_swap_preserving_amounts() {
|
||||||
let pool = Pubkey::new_unique();
|
let pool = Pubkey::new_unique();
|
||||||
let from = 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 {
|
let pb = PbDlmmSwap {
|
||||||
metadata: EventMetadata::default(),
|
metadata: EventMetadata::default(),
|
||||||
|
token_x_mint,
|
||||||
|
token_y_mint,
|
||||||
pool,
|
pool,
|
||||||
from,
|
from,
|
||||||
start_bin_id: -5,
|
start_bin_id: -5,
|
||||||
@@ -463,6 +467,8 @@ mod tests {
|
|||||||
let ev = convert_parser_event(PbDexEvent::MeteoraDlmmSwap(pb), None, 0).expect("convert");
|
let ev = convert_parser_event(PbDexEvent::MeteoraDlmmSwap(pb), None, 0).expect("convert");
|
||||||
match ev {
|
match ev {
|
||||||
DexEvent::MeteoraDlmmSwapEvent(e) => {
|
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.pool, pool);
|
||||||
assert_eq!(e.from, from);
|
assert_eq!(e.from, from);
|
||||||
assert_eq!(e.start_bin_id, -5);
|
assert_eq!(e.start_bin_id, -5);
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ fn current_meteora_dlmm_swap_passes_exact_filter() {
|
|||||||
}
|
}
|
||||||
const SIGNATURE: &str =
|
const SIGNATURE: &str =
|
||||||
"eEWaGsbRPoiD36Xf3epzSMmdtXX36va76b13YfsDV3ncsxQHBTjC68zZ8mbzFXTNWy3n3qKUAHjgHBconX4Gu1i";
|
"eEWaGsbRPoiD36Xf3epzSMmdtXX36va76b13YfsDV3ncsxQHBTjC68zZ8mbzFXTNWy3n3qKUAHjgHBconX4Gu1i";
|
||||||
|
const TOKEN_X_MINT: &str = "4sWNB8zGWHkh6UnmwiEtzNxL4XrN7uK9tosbESbJFfVs";
|
||||||
|
const TOKEN_Y_MINT: &str = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
|
||||||
let signature = Signature::from_str(SIGNATURE).expect("valid fixture signature");
|
let signature = Signature::from_str(SIGNATURE).expect("valid fixture signature");
|
||||||
let filter = EventTypeFilter::include_only([EventType::MeteoraDlmmSwap]);
|
let filter = EventTypeFilter::include_only([EventType::MeteoraDlmmSwap]);
|
||||||
let events = fetch_rpc_transaction_as_streamer_events(
|
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.signature, signature);
|
||||||
assert_eq!(swap.metadata.slot, 438_873_646);
|
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_in, 2_738_183_783);
|
||||||
assert_eq!(swap.amount_out, 81_555_062);
|
assert_eq!(swap.amount_out, 81_555_062);
|
||||||
assert_eq!(swap.fee, 18_486_656);
|
assert_eq!(swap.fee, 18_486_656);
|
||||||
|
|||||||
Reference in New Issue
Block a user