This commit is contained in:
2026-06-11 17:22:55 +02:00
parent bfdb2e69ae
commit 38f42da970
23 changed files with 2650 additions and 35 deletions

View File

@@ -260,6 +260,39 @@ fn infer_expected_db_target_for_entry(
);
}
}
if decoder_code == "raydium_stable_swap" {
if entry_name == "initialize" || entry_name == "pre_initialize" {
return Some(
crate::DexEventCoverageEntryDto::DB_TARGET_POOL_LIFECYCLE_EVENTS.to_string(),
);
}
if entry_name == "deposit" || entry_name == "withdraw" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_LIQUIDITY_EVENTS.to_string());
}
if entry_name == "swap_base_in" || entry_name == "swap_base_out" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_TRADE_EVENTS.to_string());
}
if entry_name == "withdraw_pnl" || entry_name == "withdraw_srm" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_FEE_EVENTS.to_string());
}
if entry_name == "set_params" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_POOL_ADMIN_EVENTS.to_string());
}
if entry_name == "monitor_step" || entry_name == "admin_cancel_orders" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_ORDERBOOK_EVENTS.to_string());
}
if entry_name == "update_model_data" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_POOL_ADMIN_EVENTS.to_string());
}
if entry_name == "init_model_data"
|| entry_name == "simulate_info"
|| entry_name == "swap_event"
{
return Some(
crate::DexEventCoverageEntryDto::DB_TARGET_DECODED_EVENTS_ONLY.to_string(),
);
}
}
if decoder_code == "raydium_clmm" {
if entry_name == "initialize_reward" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_REWARD_EVENTS.to_string());
@@ -405,6 +438,9 @@ fn infer_event_family_for_entry(
if decoder_code == "raydium_cpmm" {
return infer_raydium_cpmm_event_family(entry_name, entry_kind);
}
if decoder_code == "raydium_stable_swap" {
return infer_raydium_stable_swap_event_family(entry_name, entry_kind);
}
return infer_event_family(entry_name, entry_kind);
}
@@ -452,6 +488,34 @@ fn infer_raydium_cpmm_event_family(
}
}
fn infer_raydium_stable_swap_event_family(
entry_name: &str,
entry_kind: &str,
) -> std::option::Option<std::string::String> {
if entry_kind == crate::ENTRY_KIND_PROGRAM {
return None;
}
match entry_name {
"initialize" => return Some("pool_create".to_string()),
"pre_initialize" => return Some("pool_create".to_string()),
"init_model_data" => return Some("model_setup".to_string()),
"update_model_data" => return Some("admin_config".to_string()),
"deposit" => return Some("liquidity_add".to_string()),
"withdraw" => return Some("liquidity_remove".to_string()),
"monitor_step" => return Some("order_place".to_string()),
"set_params" => return Some("admin_config".to_string()),
"withdraw_pnl" => return Some("fee".to_string()),
"withdraw_srm" => return Some("fee".to_string()),
"swap_base_in" => return Some("swap".to_string()),
"swap_base_out" => return Some("swap".to_string()),
"simulate_info" => return Some("cpi_transport".to_string()),
"admin_cancel_orders" => return Some("orderbook_admin".to_string()),
"swap_event" => return Some("cpi_transport".to_string()),
_ => return infer_event_family(entry_name, entry_kind),
}
}
fn infer_raydium_clmm_event_family(
entry_name: &str,
entry_kind: &str,
@@ -725,6 +789,32 @@ fn raydium_amm_v4_local_event_kind(entry_name: &str) -> std::option::Option<std:
}
}
fn raydium_stable_swap_local_event_kind(
entry_name: &str,
) -> std::option::Option<std::string::String> {
match entry_name {
"initialize" => return Some("raydium_stable_swap.initialize".to_string()),
"init_model_data" => return Some("raydium_stable_swap.init_model_data".to_string()),
"update_model_data" => return Some("raydium_stable_swap.update_model_data".to_string()),
"pre_initialize" => return Some("raydium_stable_swap.pre_initialize".to_string()),
"deposit" => return Some("raydium_stable_swap.deposit".to_string()),
"withdraw" => return Some("raydium_stable_swap.withdraw".to_string()),
"monitor_step" => return Some("raydium_stable_swap.monitor_step".to_string()),
"set_params" => return Some("raydium_stable_swap.set_params".to_string()),
"withdraw_pnl" => return Some("raydium_stable_swap.withdraw_pnl".to_string()),
"withdraw_srm" => return Some("raydium_stable_swap.withdraw_srm".to_string()),
"swap_base_in" => return Some("raydium_stable_swap.swap_base_in".to_string()),
"swap_base_out" => return Some("raydium_stable_swap.swap_base_out".to_string()),
"simulate_info" => return Some("raydium_stable_swap.simulate_info".to_string()),
"admin_cancel_orders" => {
return Some("raydium_stable_swap.admin_cancel_orders".to_string());
},
"swap_event" => return Some("raydium_stable_swap.swap_event".to_string()),
_ => return None,
}
}
pub(crate) fn known_local_event_kind(
decoder_code: &str,
entry_name: &str,
@@ -732,6 +822,9 @@ pub(crate) fn known_local_event_kind(
if decoder_code == "raydium_amm_v4" {
return raydium_amm_v4_local_event_kind(entry_name);
}
if decoder_code == "raydium_stable_swap" {
return raydium_stable_swap_local_event_kind(entry_name);
}
if decoder_code == "raydium_launchpad" && raydium_launchpad_local_entry_is_known(entry_name) {
return Some(format!("raydium_launchpad.{}", entry_name));
}