This commit is contained in:
2026-06-09 10:13:03 +02:00
parent f2ea1a392f
commit bfdb2e69ae
41 changed files with 4485 additions and 1124 deletions

View File

@@ -220,6 +220,46 @@ fn infer_expected_db_target_for_entry(
{
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_DECODED_EVENTS_ONLY.to_string());
}
if decoder_code == "raydium_amm_v4" {
if entry_name == "swap_base_in"
|| entry_name == "swap_base_out"
|| entry_name == "swap_base_in_v2"
|| entry_name == "swap_base_out_v2"
{
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_TRADE_EVENTS.to_string());
}
if entry_name == "initialize"
|| entry_name == "initialize2"
|| 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 == "withdraw_pnl" || entry_name == "withdraw_srm" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_FEE_EVENTS.to_string());
}
if entry_name == "admin_cancel_orders" || entry_name == "migrate_to_open_book" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_ORDERBOOK_EVENTS.to_string());
}
if entry_name == "monitor_step" {
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_ORDERBOOK_EVENTS.to_string());
}
if entry_name == "create_config_account"
|| entry_name == "update_config_account"
|| entry_name == "set_params"
{
return Some(crate::DexEventCoverageEntryDto::DB_TARGET_POOL_ADMIN_EVENTS.to_string());
}
if entry_name == "simulate_info" {
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());
@@ -356,6 +396,9 @@ fn infer_event_family_for_entry(
if decoder_code == "raydium_launchpad" {
return infer_raydium_launchpad_event_family(entry_name, entry_kind);
}
if decoder_code == "raydium_amm_v4" {
return infer_raydium_amm_v4_event_family(entry_name, entry_kind);
}
if decoder_code == "raydium_clmm" {
return infer_raydium_clmm_event_family(entry_name, entry_kind);
}
@@ -365,6 +408,36 @@ fn infer_event_family_for_entry(
return infer_event_family(entry_name, entry_kind);
}
fn infer_raydium_amm_v4_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 {
"swap_base_in" => return Some("swap".to_string()),
"swap_base_out" => return Some("swap".to_string()),
"swap_base_in_v2" => return Some("swap".to_string()),
"swap_base_out_v2" => return Some("swap".to_string()),
"initialize" => return Some("pool_create".to_string()),
"initialize2" => return Some("pool_create".to_string()),
"pre_initialize" => return Some("pool_create".to_string()),
"deposit" => return Some("liquidity_add".to_string()),
"withdraw" => return Some("liquidity_remove".to_string()),
"withdraw_pnl" => return Some("fee".to_string()),
"withdraw_srm" => return Some("fee".to_string()),
"admin_cancel_orders" => return Some("order_cancel".to_string()),
"migrate_to_open_book" => return Some("order_place".to_string()),
"create_config_account" => return Some("admin_config".to_string()),
"update_config_account" => return Some("admin_config".to_string()),
"set_params" => return Some("admin_config".to_string()),
"monitor_step" => return Some("order_place".to_string()),
"simulate_info" => return Some("cpi_transport".to_string()),
_ => return infer_event_family(entry_name, entry_kind),
}
}
fn infer_raydium_cpmm_event_family(
entry_name: &str,
entry_kind: &str,
@@ -628,10 +701,37 @@ fn raydium_launchpad_local_entry_is_known(entry_name: &str) -> bool {
}
}
fn raydium_amm_v4_local_event_kind(entry_name: &str) -> std::option::Option<std::string::String> {
match entry_name {
"swap_base_in" => return Some("raydium_amm_v4.swap_base_in".to_string()),
"swap_base_out" => return Some("raydium_amm_v4.swap_base_out".to_string()),
"swap_base_in_v2" => return Some("raydium_amm_v4.swap_base_in_v2".to_string()),
"swap_base_out_v2" => return Some("raydium_amm_v4.swap_base_out_v2".to_string()),
"initialize" => return Some("raydium_amm_v4.initialize".to_string()),
"initialize2" => return Some("raydium_amm_v4.initialize2_pool".to_string()),
"pre_initialize" => return Some("raydium_amm_v4.pre_initialize".to_string()),
"deposit" => return Some("raydium_amm_v4.deposit".to_string()),
"withdraw" => return Some("raydium_amm_v4.withdraw".to_string()),
"withdraw_pnl" => return Some("raydium_amm_v4.withdraw_pnl".to_string()),
"withdraw_srm" => return Some("raydium_amm_v4.withdraw_srm".to_string()),
"admin_cancel_orders" => return Some("raydium_amm_v4.admin_cancel_orders".to_string()),
"migrate_to_open_book" => return Some("raydium_amm_v4.migrate_to_open_book".to_string()),
"create_config_account" => return Some("raydium_amm_v4.create_config_account".to_string()),
"update_config_account" => return Some("raydium_amm_v4.update_config_account".to_string()),
"set_params" => return Some("raydium_amm_v4.set_params".to_string()),
"monitor_step" => return Some("raydium_amm_v4.monitor_step".to_string()),
"simulate_info" => return Some("raydium_amm_v4.simulate_info".to_string()),
_ => return None,
}
}
pub(crate) fn known_local_event_kind(
decoder_code: &str,
entry_name: &str,
) -> std::option::Option<std::string::String> {
if decoder_code == "raydium_amm_v4" {
return raydium_amm_v4_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));
}