Files
khadhroony-bobobot/DEX_EVENT_COVERAGE_MATRIX.md
2026-06-01 19:05:46 +02:00

7.0 KiB

DEX Event Coverage Matrix — khadhroony-bobobot 0.7.48

Cette matrice complète DEX_DECODER_MATRIX.md avec une lecture par familles d'événements. Elle ne remplace pas la preuve locale : une entrée Git/IDL reste un indice tant qu'elle n'est pas observée dans le corpus local puis validée par replay et SQL.

Règles de statut

Statut Sens
decoded Un decoder local produit un event spécialisé ou un event audit-only classé.
materialized L'event alimente une table métier existante validée par corpus.
audit-only L'event reste dans k_sol_dex_decoded_events et ne produit jamais trade/candle.
upstream_git_mapped_unverified L'entrée est connue depuis Carbon/fnzero/IDL, mais non observée localement.
not_applicable La famille n'existe pas pour ce DEX/version ou appartient à un autre programme.

0.7.48raydium_cpmm

Sources inventoriées : Carbon carbon-raydium-cpmm-decoder, fnzero solana-streamer / sol-parser-sdk IDL raydium_cpmm.json.

Famille Entrées Raydium CPMM Statut 0.7.48 Cible DB Justification / règle
swap swap_base_input, swap_base_output, swap_event materialized pour swap_base_*; swap_event audit-only k_sol_trade_events seulement pour swap_base_*; k_sol_dex_decoded_events_only pour swap_event swap_event est décodé mais ne produit jamais trade/candle afin d'éviter les doublons.
pool_create initialize, initialize_with_permission materialized k_sol_pool_lifecycle_events initialize_with_permission est lifecycle-only et ne crée plus d'admin row.
add_liquidity deposit, lp_change_event(changeType=0) materialized k_sol_liquidity_events deposit et lp_change_event(changeType=0) matérialisent liquidity, sans trade/candle.
remove_liquidity withdraw, lp_change_event(changeType=1) materialized k_sol_liquidity_events withdraw et lp_change_event(changeType=1) matérialisent liquidity, sans trade/candle.
position_open - not_applicable - CPMM n'a pas de position CLMM.
position_close - not_applicable - CPMM n'a pas de position CLMM.
fee collect_creator_fee, collect_fund_fee, collect_protocol_fee materialized k_sol_fee_events Les trois familles de fee CPMM observées sont matérialisées avec trade_count=0.
reward - not_applicable - Aucune entrée reward CPMM dans Carbon/fnzero IDL inventoriée pour cette tranche.
admin/config create_amm_config, update_amm_config, create_permission_pda, update_pool_status, close_permission_pda materialized pour les entrées observées ; upstream_git_mapped_unverified pour update_pool_status / close_permission_pda k_sol_pool_admin_events ou decoded-only selon corpus create_amm_config, create_permission_pda et update_amm_config sont matérialisés ; les deux autres restent non observés localement.
mint - direct not_applicable - Mint LP implicite possible dans les instructions, mais pas d'instruction CPMM mint dédiée.
burn - direct not_applicable - Burn LP implicite possible dans withdraw, mais pas d'instruction CPMM burn dédiée.
transfer SPL Token inner transfers audit-only indirect k_sol_dex_decoded_events pour cette tranche Pas de table k_sol_token_transfer_events ajoutée en 0.7.48.
account_create comptes système/ATA indirects audit-only indirect decoded-only Hors programme CPMM direct.
account_close comptes système/ATA indirects audit-only indirect decoded-only Hors programme CPMM direct.
wrap_sol user/router side not_applicable - Préparation WSOL hors CPMM.
unwrap_sol user/router side not_applicable - Cleanup WSOL hors CPMM.
order_place - not_applicable - CPMM est AMM, pas orderbook.
order_cancel - not_applicable - CPMM est AMM, pas orderbook.
order_fill - not_applicable - CPMM est AMM, pas orderbook.
consume_events - not_applicable - CPMM est AMM, pas orderbook.
settle_funds - not_applicable - CPMM est AMM, pas orderbook.
vault_deposit - not_applicable - Les vaults CPMM sont des comptes de pool, pas une surface vault séparée.
vault_withdraw - not_applicable - Les vaults CPMM sont des comptes de pool, pas une surface vault séparée.
lock - not_applicable - Raydium liquidity locking est une surface séparée.
unlock - not_applicable - Raydium liquidity locking est une surface séparée.
launch - not_applicable - Raydium LaunchLab/Launchpad est séparé de CPMM.
migration - not_applicable - Les migrations launch → pool relèvent des launch surfaces.
stake - not_applicable - Hors CPMM.
unstake - not_applicable - Hors CPMM.
unknown/unmapped audit raydium_cpmm.instruction_audit audit-only k_sol_dex_decoded_events_only Toute instruction observée mais non mappée reste audit-only et ne produit jamais trade/candle.

Validation attendue

  • k_sol_dex_event_coverage_entries.decoder_code = 'raydium_cpmm' contient toutes les entrées Carbon/fnzero synchronisées.
  • upstream_git.instruction_match ne doit plus apparaître pour une instruction CPMM remplacée par un decoder local spécialisé.
  • Les familles non-trade CPMM doivent rester trade_count = 0.
  • Les transactions failed CPMM doivent rester décodées/auditables mais non matérialisées en trade/candle.

Note 0.7.48-part2-fix2 — CPMM official instruction parity

La couverture raydium_cpmm est alignée avec les instructions exposées par le programme officiel Raydium CP-Swap et par Carbon : create_amm_config, update_amm_config, update_pool_status, collect_protocol_fee, collect_fund_fee, collect_creator_fee, create_permission_pda, close_permission_pda, initialize, initialize_with_permission, deposit, withdraw, swap_base_input, swap_base_output, lp_change_event et swap_event.

lp_change_event est maintenant classé event_family=liquidity dans la table coverage, parce que l'event couvre à la fois dépôt et retrait. La matérialisation reste déterminée par changeType dans le payload décodé : 0 = add/deposit, 1 = remove/withdraw.

Note 0.7.48 final — Raydium CPMM clôturable

Validation finale locale : deposit = 11/11 liquidity, withdraw = 14/14 liquidity, lp_change_event = 25/25 liquidity, fees = 26/26 fee, admin/config observés = 23/23 admin, lifecycle = 9/9, swap_event = audit-only avec 0 trade, et trades matérialisés uniquement depuis swap_base_input / swap_base_output.

close_permission_pda et update_pool_status restent upstream_git_mapped_unverified faute de corpus local. Les filtres Solscan instruction=9c5420764587467b et instruction=82576c062ee0757b n'ont pas fourni de signatures exploitables dans l'horizon testé.