40 KiB
DEX Event Coverage Matrix — khadhroony-bobobot 0.7.54 pump_fun closed
Cette matrice complète docs/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.48 — raydium_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_matchne 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é.
0.7.49 — raydium_clmm final coverage
Sources inventoriées : Carbon raydium-clmm-decoder, fnzero sol-parser-sdk, Pinax substreams-solana-idls/src/raydium/clmm, Raydium/Solscan Program IDL.
État final validé : 45 entrées listées, 33 instructions locales observées/décodées, 25 entrées matérialisées, 1186 trades, raydium_clmm.instruction_audit = 0, fallback upstream_git.instruction_match localement couvert = 0.
| Famille | Entrées Raydium CLMM | Statut 0.7.49 |
Cible DB | Justification / règle |
|---|---|---|---|---|
swap |
swap, swap_v2 |
materialized |
k_sol_trade_events |
Seuls ces swaps produisent trades/candles lorsque les montants sont exploitables. |
swap audit |
swap_event, swap_router_base_in |
observed/audit ou upstream_git_unverified selon corpus |
k_sol_dex_decoded_events_only |
Pas de double trade/candle. |
pool_create |
create_pool, create_customizable_pool |
decoded; create_pool matérialisé quand prouvé |
k_sol_pool_lifecycle_events |
Création de pool = lifecycle, pas admin. |
add_liquidity |
increase_liquidity, increase_liquidity_v2, open position variants |
decoded; variantes prouvées matérialisées |
k_sol_liquidity_events |
CLMM implique position/tick/NFT ; matérialisation seulement sur corpus OK. |
remove_liquidity |
decrease_liquidity, decrease_liquidity_v2, close position variants |
decoded; variantes prouvées matérialisées |
k_sol_liquidity_events |
Aucune promotion trade/candle. |
fee |
collect_fund_fee, collect_protocol_fee |
decoded; protocol fee matérialisé si tx OK |
k_sol_fee_events |
Mapping fee sans trade/candle. |
reward |
initialize_reward, collect_remaining_rewards, set_reward_params, transfer_reward_owner, update_reward_infos |
decoded; variantes prouvées matérialisées |
k_sol_reward_events / k_sol_pool_admin_events |
Reward/config selon instruction. |
admin/config |
create_amm_config, create_dynamic_fee_config, create_operation_account, update_amm_config, update_operation_account, update_pool_status |
decoded; variantes prouvées matérialisées |
k_sol_pool_admin_events ou decoded-only |
Config/admin sans trade/candle. |
account_create |
create_support_mint_associated |
observed/decoded |
k_sol_token_account_events prévu / decoded-only selon corpus |
Side effect technique ; pas de trade/candle. |
order_place |
open_limit_order, increase_limit_order |
decoded/materialized |
k_sol_orderbook_events |
Orderbook CLMM, jamais trade/candle. |
order_cancel |
decrease_limit_order, close_limit_order |
decoded/materialized |
k_sol_orderbook_events |
Orderbook CLMM, jamais trade/candle. |
settle_funds |
settle_limit_order |
decoded/materialized |
k_sol_orderbook_events |
Settlement orderbook, pas trade direct. |
mint/burn/transfer/account_close/wrap/unwrap |
Side effects SPL Token / Token-2022 | indirect |
decoded-only | Pas de promotion en raydium_clmm.* sans instruction directe. |
launch/migration/lock/unlock/stake/unstake/vault |
- |
not_applicable |
- |
Surfaces hors CLMM direct. |
unknown/unmapped audit |
raydium_clmm.instruction_audit, fallback upstream |
closed |
k_sol_dex_decoded_events_only |
Résidu validé à zéro après replay. |
Les 11 Anchor / Program data events restent upstream_git_unverified et préparés audit-only faute d’observation locale : collect_personal_fee_event, collect_protocol_fee_event, config_change_event, create_personal_position_event, decrease_liquidity_event, increase_liquidity_event, liquidity_calculate_event, liquidity_change_event, pool_created_event, swap_event, update_reward_infos_event.
0.7.50 — raydium_launchpad bootstrap
Sources inventoriées : Carbon raydium-launchpad-decoder, Solscan Program IDL LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj, fnzero IDL listings, Raydium SDK Launchpad examples. Code local canonique : raydium_launchpad. Aucun alias Rust raydium_launchlab ne doit être conservé dans l’API publique.
État de départ préparé : 1 entrée programme et 26 entrées discriminées listées depuis Carbon/IDL. Toutes les entrées Launchpad sont gardées decoded_events_only en bootstrap, même si leur famille inférée est swap, pool_create, fee, admin_config, launch ou migration. La matérialisation métier est volontairement différée jusqu'au corpus local.
| Famille | Entrées Raydium Launchpad | Statut 0.7.50 bootstrap |
Cible DB initiale | Justification / règle |
|---|---|---|---|---|
swap |
buy_exact_in, buy_exact_out, sell_exact_in, sell_exact_out, trade_event |
upstream_git_mapped_unverified puis decoded/audit-only si observé |
k_sol_dex_decoded_events_only |
Aucun trade/candle avant preuve locale de montants, sens et absence de doublon avec la surface DEX de migration. |
pool_create |
initialize, initialize_v2, initialize_with_token_2022, pool_create_event |
upstream_git_mapped_unverified |
decoded_events_only |
Lifecycle launch/pool non promu tant que le compte pool/mint/quote n'est pas validé localement. |
add_liquidity |
- direct confirmé |
not_applicable |
- |
Peut apparaître via DEX de destination ou SPL side effects, pas comme instruction Launchpad directe prouvée. |
remove_liquidity |
- direct confirmé |
not_applicable |
- |
Même règle que add_liquidity. |
position_open |
- |
not_applicable |
- |
Pas de position CLMM/LP NFT directe confirmée. |
position_close |
- |
not_applicable |
- |
Pas de position CLMM/LP NFT directe confirmée. |
fee |
claim_creator_fee, claim_platform_fee, claim_platform_fee_from_vault, claim_vested_event, claim_vested_token, collect_fee, collect_migrate_fee |
upstream_git_mapped_unverified puis decoded/audit-only si observé |
decoded_events_only |
Fee/vesting/migration fee utile pour stratégie, mais pas matérialisé sans corpus. |
reward |
- direct confirmé |
not_applicable |
- |
Vesting n'est pas promu en reward transversal dans cette tranche. |
admin/config |
create_config, create_platform_config, remove_platform_curve_param, update_config, update_platform_config, update_platform_curve_param |
upstream_git_mapped_unverified puis decoded/audit-only si observé |
decoded_events_only |
Admin/config utile pour audit, pas de table métier promue. |
mint |
SPL Token / Token-2022 side effects possibles | indirect |
decoded_events_only |
Ne devient pas raydium_launchpad.* sans instruction directe du programme. |
burn |
SPL Token / Token-2022 side effects possibles | indirect |
decoded_events_only |
Même règle que mint. |
transfer |
SPL Token / Token-2022 side effects attendus | indirect |
decoded_events_only |
Même règle que CPMM/CLMM : side effect transversal. |
account_create |
create_vesting_account, create_vesting_event |
upstream_git_mapped_unverified |
decoded_events_only |
Vesting/account audit uniquement, pas de nouvelle table transversale. |
account_close |
- direct confirmé |
not_applicable |
- |
Aucun close direct Launchpad confirmé. |
wrap_sol |
Side effect utilisateur/router possible | indirect |
decoded_events_only |
Hors programme Launchpad direct. |
unwrap_sol |
Side effect utilisateur/router possible | indirect |
decoded_events_only |
Hors programme Launchpad direct. |
order_place |
- |
not_applicable |
- |
Launchpad n'est pas traité comme orderbook. |
order_cancel |
- |
not_applicable |
- |
Launchpad n'est pas traité comme orderbook. |
order_fill |
- |
not_applicable |
- |
Launchpad n'est pas traité comme orderbook. |
consume_events |
- |
not_applicable |
- |
Launchpad n'est pas traité comme orderbook. |
settle_funds |
- |
not_applicable |
- |
Launchpad n'est pas traité comme orderbook. |
vault_deposit |
- direct confirmé |
not_applicable |
- |
Aucun vault direct Launchpad confirmé. |
vault_withdraw |
- direct confirmé |
not_applicable |
- |
Aucun vault direct Launchpad confirmé. |
lock |
- direct confirmé |
not_applicable |
- |
Liquidity locking reste une autre surface Raydium. |
unlock |
- direct confirmé |
not_applicable |
- |
Liquidity locking reste une autre surface Raydium. |
launch |
initialize*, pool_create_event |
upstream_git_mapped_unverified |
decoded_events_only |
La promotion k_sol_launch_events est différée. |
migration |
migrate_to_amm, migrate_to_cpswap, collect_migrate_fee |
upstream_git_mapped_unverified |
decoded_events_only |
Destination AMM/CPMM à valider localement avant liaison métier. |
stake |
- |
not_applicable |
- |
Aucun stake direct Launchpad confirmé. |
unstake |
- |
not_applicable |
- |
Aucun unstake direct Launchpad confirmé. |
unknown/unmapped audit |
raydium_launchpad.instruction_audit |
audit-only |
decoded_events_only |
Résidu à réduire par discriminant après backfill ciblé et replay. |
Rapport détaillé : docs/reports/RAYDIUM_LAUNCHPAD_EVENT_COVERAGE_REPORT.md.
SQL de validation : validation_sql/SQL_VALIDATION_RAYDIUM_LAUNCHPAD_0_7_50.sql.
0.7.50-pre3 Launchpad note
pre3 correction: Launchpad self-CPI selector e445a52e51cb9a1d is transport only. Known embedded event discriminators are decoded as raydium_launchpad.trade_event and raydium_launchpad.pool_create_event. The Launchpad initialize* instruction family now supplies pool/pair catalog context; trade_event remains decoded-only until trade/candle promotion is explicitly proven.
Note 0.7.50-pre-r2 — Raydium CPMM/CLMM closure re-check
Sources ajoutées à la vérification CPMM/CLMM : Carbon raydium-cpmm-decoder, Carbon raydium-clmm-decoder, Solscan Program IDL CPMM/CLMM et sol-parser-sdk IDL Raydium.
CPMM
cpi_eventest ajouté à la matrice CPMM avecevent_family=cpi_transport,expected_db_target=k_sol_dex_decoded_events_only,local_event_kind=raydium_cpmm.cpi_eventet discriminante445a52e51cb9a1d.swap_eventrestedecoded_events_onlypour éviter le double comptage avecswap_base_input/swap_base_output.- Le discriminant local
40f4bc78a7e9690aest codé commeraydium_cpmm.anchor_idl_instruction,event_family=idl_management,expected_db_target=k_sol_dex_decoded_events_only, après inspection Solscan des logsIdlCreateAccount/IdlCloseAccount.
CLMM
cpi_eventest ajouté à la matrice CLMM avecevent_family=cpi_transport,expected_db_target=k_sol_dex_decoded_events_only,local_event_kind=raydium_clmm.cpi_eventet discriminante445a52e51cb9a1d.update_dynamic_fee_configest ajouté avecevent_family=admin_config,expected_db_target=k_sol_pool_admin_events,local_event_kind=raydium_clmm.update_dynamic_fee_configet discriminant0707500802c784f0.- Les Program-data events CLMM sont maintenant rattachés localement :
swap_event,pool_created_event,liquidity_change_event,create_personal_position_event,decrease_liquidity_event,increase_liquidity_event,collect_protocol_fee_event,config_change_event,update_reward_infos_event. swap_eventetswap_router_base_inrestentdecoded_events_only: les trades canoniques sontswap/swap_v2, afin d'éviter le double comptage et la matérialisation de routes sans pool direct.liquidity_calculate_eventest classéliquidity_calculationet restedecoded_events_only, car il sert au diagnostic/calcul et non à une mutation de liquidité fiable.create_support_mint_associatedcible la nouvelle tablek_sol_token_account_events.create_operation_accountetupdate_operation_accountsont normalisés enadmin_config.
Validation attendue après replay : aucune entrée CPMM/CLMM ne doit rester en event_family='unknown' hors program, les fallbacks upstream_git.instruction_match ne doivent pas dupliquer une entrée locale couverte, et les transactions failed ne doivent matérialiser ni trade, ni liquidity, ni fee/admin/reward/orderbook/token-account.
Rapport associé : docs/reports/RAYDIUM_CPMM_CLMM_RECHECK_REPORT_0_7_50_PRE_R2.md.
0.7.51 — raydium_amm_v4
Sources inventoriées : Carbon raydium-amm-v4-decoder, Pinax src/raydium/amm, fnzero raydium_amm_v4.json, Solscan Program IDL. raydium_pool_v4 est comparé mais non promu.
Validation locale finale : tous les discriminants AMM v4 officiels 00..11 sont observés ; instruction_audit, fallback upstream, decoded sans coverage, observations 8 octets, non-swap trade, failed tx trade, gaps inexpliqués et multi-target materialization sont vides.
| Famille | Entrées AMM v4 | Statut 0.7.51-final |
Cible DB | Règle |
|---|---|---|---|---|
swap |
swap_base_in, swap_base_out, swap_base_in_v2, swap_base_out_v2 |
observed/materialized partiel expliqué | k_sol_trade_events |
Trade/candle seulement si tx successful + montants vault fiables ; sinon skipTradeReason. |
pool_create |
initialize, initialize2_pool |
observed/materialized | k_sol_pool_lifecycle_events |
Alimente lifecycle et catalogue seulement quand les mints/pool sont prouvés. |
pool_create deprecated |
pre_initialize |
observed/materialized audit minimal | k_sol_pool_lifecycle_events |
Lifecycle deprecated/partial ; ne crée pas de pair exploitable sans mints. |
liquidity_add |
deposit |
observed/materialized partiel expliqué | k_sol_liquidity_events |
Jamais trade/candle ; pools absents du catalogue restent decoded-only expliqués. |
liquidity_remove |
withdraw |
observed/materialized partiel expliqué | k_sol_liquidity_events |
Jamais trade/candle ; deltas/catalogue manquants doivent être explicités. |
fee |
withdraw_pnl, withdraw_srm |
observed/materialized partiel expliqué | k_sol_fee_events |
Jamais trade/candle. |
admin/config |
set_params, create_config_account, update_config_account |
observed/materialized | k_sol_pool_admin_events |
Preuve métier par corpus uniquement. |
orderbook side effects |
monitor_step, migrate_to_open_book, admin_cancel_orders |
observed/materialized | k_sol_orderbook_events |
Side effects OpenBook/Serum ; pas de trade OpenBook autonome, pas de lifecycle en double. |
cpi/informational |
simulate_info |
observed decoded-only | k_sol_dex_decoded_events_only |
Audit technique uniquement. |
token side effects |
SPL Token / Token-2022 inner instructions | transversal | decoded-only actuellement | Ne pas promouvoir comme AMM v4 direct. |
unknown/unmapped audit |
residual raydium_amm_v4.instruction_audit |
vide | decoded-only si futur inconnu | Tout residual doit être expliqué avant promotion. |
0.7.52 — raydium_stable_swap
Status: closed on local corpus.
| entry | discriminator | family | expected target | local event kind | status |
|---|---|---|---|---|---|
initialize |
00 |
pool_create |
k_sol_pool_lifecycle_events |
raydium_stable_swap.initialize |
observed/materialized when context complete |
init_model_data |
01 |
model_setup |
decoded-only | raydium_stable_swap.init_model_data |
observed decoded-only / explained |
update_model_data |
02 |
admin_config |
k_sol_pool_admin_events |
raydium_stable_swap.update_model_data |
observed/materialized |
deposit |
03 |
liquidity_add |
k_sol_liquidity_events |
raydium_stable_swap.deposit |
observed/materialized |
withdraw |
04 |
liquidity_remove |
k_sol_liquidity_events |
raydium_stable_swap.withdraw |
observed/materialized |
monitor_step |
05 |
order_place |
k_sol_orderbook_events |
raydium_stable_swap.monitor_step |
observed/materialized |
set_params |
06 |
admin_config |
k_sol_pool_admin_events |
raydium_stable_swap.set_params |
observed/materialized |
withdraw_pnl |
07 |
fee |
k_sol_fee_events |
raydium_stable_swap.withdraw_pnl |
observed/materialized |
withdraw_srm |
08 |
fee |
k_sol_fee_events |
raydium_stable_swap.withdraw_srm |
observed/materialized when context complete |
swap_base_in |
09 |
swap |
k_sol_trade_events from vault deltas only |
raydium_stable_swap.swap_base_in |
success/vault-delta materialized; failed decoded-only |
pre_initialize |
0a |
pool_create |
lifecycle or decoded-only | raydium_stable_swap.pre_initialize |
observed decoded-only / explained in current corpus |
swap_base_out |
0b |
swap |
k_sol_trade_events from vault deltas only |
raydium_stable_swap.swap_base_out |
success/vault-delta materialized; failed decoded-only |
simulate_info |
0c |
cpi_transport |
decoded-only | raydium_stable_swap.simulate_info |
observed decoded-only / explained |
admin_cancel_orders |
0d |
orderbook_admin |
k_sol_orderbook_events |
raydium_stable_swap.admin_cancel_orders |
observed/materialized when context complete |
swap_event |
40c6cde8260871e2 |
cpi_transport |
decoded-only | raydium_stable_swap.swap_event |
upstream mapped; not observed locally |
Stable Swap swaps are not materialized from instruction min/max bounds. swap_base_in/out require amountSource=stable_swap_vault_balance_delta; stable_swap_instruction_bounds_only remains decoded-only and, in the final corpus, appears only on failed transactions.
0.7.54 — pump_fun closed
Program id unique : 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P.
Source locale prioritaire : idls/pump_fun.6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P.json.
Replay final rapporté : 1679 replayed, 89 trades, 10 lifecycle, 348 candle upserts, catalogue 52 tokens / 50 pools / 50 pairs.
| Entry / groupe | Discriminator | Family | Expected DB target | Local event kind cible | Status final |
|---|---|---|---|---|---|
create / create_v2 / create_event |
181ec828051c0777 / d6904cec5f8b31b4 / 1b72a94ddeeb6376 |
launch |
k_sol_launch_events ou decoded-only |
pump_fun.create* |
couvert ; launch matérialisé quand mint/bonding/creator sont fiables |
migrate / migrate_v2 / migration events |
9beae792ec9ea21e / bbcb121fceedfe29 / voir IDL |
migration |
k_sol_launch_events ou decoded-only |
pump_fun.migrate* |
couvert ; migration matérialisée quand contexte fiable |
buy / sell |
66063d1201daebea / 33e685a4017f83ad |
swap |
k_sol_trade_events |
pump_fun.buy / pump_fun.sell |
matérialisés directement avec montants fiables : 17 buy, 25 sell |
buy_exact_sol_in |
38fc74089edfcd5f |
swap |
k_sol_trade_events |
pump_fun.buy_exact_sol_in |
matérialisé directement ; 15 trades, y compris logs Program data tronqués exploitables |
buy_v2 / sell_v2 / buy_exact_quote_in_v2 |
b817ee6167c5d33d / 5df6823ce7e940b2 / c2ab1c46684d5b2f |
swap |
audit/routing + trade_event canonique |
pump_fun.*_v2 |
decoded/covered, non matérialisés directement ; les montants exécutés sont matérialisés via pump_fun.trade_event |
trade_event |
bddb7fd34ee661ee |
swap |
k_sol_trade_events |
pump_fun.trade_event |
72 decoded / 25 trades ; source canonique des v2/exact quand corrélée ; skip explicite si couvert par trade direct |
collect_creator_fee* / distribute_creator_fees* |
voir IDL | fee |
k_sol_fee_events ou decoded-only |
pump_fun.collect_creator_fee*, pump_fun.distribute_creator_fees* |
couvert ; matérialisation fee seulement avec montant/acteur fiables |
claim_cashback* / claim_token_incentives / volume accumulators |
voir IDL | reward |
k_sol_reward_events ou decoded-only |
pump_fun.claim_*, volume accumulator events |
couvert ; rewards matérialisées seulement si preuve suffisante |
| creator/admin/config group | voir IDL | admin_config |
k_sol_pool_admin_events ou decoded-only |
pump_fun.admin_*, pump_fun.set_*, pump_fun.toggle_*, quote/buyback/reserve entries |
couvert ; promotion seulement si action/comptes exploitables |
Invariants de fermeture 0.7.54
- Aucun
pump_funlocal decoded event sans coverage. - Aucun fallback
upstream_gitrésiduel pour les entrées Pump.fun couvertes localement. - Aucun business event matérialisé depuis transaction failed.
- Aucun non-swap Pump.fun matérialisé en trade/candle.
- Aucun double-count entre instruction trade directe et
trade_eventAnchor. - Aucun trade candidate Pump.fun réussi sans matérialisation ni skip reason.
- Les entrées IDL-only sont couvertes localement ; les non observées restent
mapped_unverifiedou audit-only, pas des gaps bloquants.
0.7.53 — pump_swap
Program id unique : pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA.
| Entry | Discriminator | Family | Expected DB target | Local event kind | Status |
|---|---|---|---|---|---|
buy |
66063d1201daebea |
swap |
k_sol_trade_events |
pump_swap.buy |
local specialized decoder ; materialize only from exact transfer/vault deltas |
sell |
33e685a4017f83ad |
swap |
k_sol_trade_events |
pump_swap.sell |
local specialized decoder ; materialize only from exact transfer/vault deltas |
buy_exact_quote_in |
c62e1552b4d9e870 |
swap |
k_sol_trade_events only when exact Anchor BuyEvent is present ; otherwise decoded-only |
pump_swap.buy_exact_quote_in |
local specialized decoder ; amountSource=pump_swap_anchor_buy_event materializes trades ; instruction_bounds_only rows keep explicit skipTradeReason |
create_pool |
e992d18ecf6840bc |
pool_create |
k_sol_pool_lifecycle_events or decoded-only |
pump_swap.create_pool |
local specialized instruction ; non-trade |
deposit |
f223c68952e1f2b6 |
liquidity_add |
k_sol_liquidity_events or decoded-only |
pump_swap.deposit |
local specialized instruction ; non-trade |
withdraw |
b712469c946da122 |
liquidity_remove |
k_sol_liquidity_events or decoded-only |
pump_swap.withdraw |
local specialized instruction ; non-trade |
collect_coin_creator_fee |
a039592ab58b2b42 |
fee |
k_sol_fee_events or decoded-only |
pump_swap.collect_coin_creator_fee |
local specialized instruction ; non-trade |
transfer_creator_fees_to_pump |
8b348655e4e56cf1 |
fee |
k_sol_fee_events or decoded-only |
pump_swap.transfer_creator_fees_to_pump |
local specialized instruction ; non-trade |
transfer_creator_fees_to_pump_v2 |
01214eb921432c5c |
fee |
k_sol_fee_events or decoded-only |
pump_swap.transfer_creator_fees_to_pump_v2 |
Solscan IDL proof + local log proof: transfer_creator_fees_to_pump_v2 / Instruction: TransferCreatorFeesToPumpV2 ; non-trade |
claim_cashback |
253a237ebe35e4c5 |
reward |
k_sol_reward_events or decoded-only |
pump_swap.claim_cashback |
local specialized instruction ; non-trade |
claim_token_incentives |
1004471ccc01281b |
reward |
k_sol_reward_events or decoded-only |
pump_swap.claim_token_incentives |
local specialized instruction ; non-trade |
init_user_volume_accumulator |
5e06ca73ff60e8b7 |
reward |
k_sol_reward_events or decoded-only |
pump_swap.init_user_volume_accumulator |
local specialized instruction ; non-trade |
sync_user_volume_accumulator |
561fc057a3574fee |
reward |
k_sol_reward_events or decoded-only |
pump_swap.sync_user_volume_accumulator |
local specialized instruction ; non-trade |
close_user_volume_accumulator |
f945a4da9667548a |
reward |
k_sol_reward_events or decoded-only |
pump_swap.close_user_volume_accumulator |
local specialized instruction ; non-trade |
update_buyback_config |
fbe0ab92a01a71e9 |
admin_config |
k_sol_pool_admin_events or decoded-only |
pump_swap.update_buyback_config |
Solscan IDL proof + local log proof: update_buyback_config / Instruction: UpdateBuybackConfig ; non-trade |
set_reserved_fee_recipient |
cfbdb247a77a44b4 |
admin_config |
k_sol_pool_admin_events or decoded-only |
pump_swap.set_reserved_fee_recipient |
local log proof only: Instruction: SetReservedFeeRecipient ; absent from checked Solscan IDL raw ; non-trade |
| admin/config group | see report | admin_config |
k_sol_pool_admin_events or decoded-only |
pump_swap.* |
local specialized instruction ; non-trade ; includes toggle_cashback_enabled and migrate_pool_coin_creator as admin-only |
buy_event / sell_event |
67f4521f2cf57777 / 3e2f370aa503dc2a |
swap_event_audit |
decoded-only | not local-instruction mapped | Program-data event discriminators listed; not used to duplicate local instruction trades |
| auxiliary Program-data events | see report | fee/reward/admin/liquidity | decoded-only until payload-specific materializer exists | not local-instruction mapped | explicit upstream status required after replay |
Fermeture 0.7.53
pump_swapne présente plus de decoded event local sans coverage dans le corpus de clôture.buy_exact_quote_inest matérialisé seulement quand leBuyEventAnchor donne les montants exacts ; les bornes d’instruction seules restent non actionnables.- Les events Anchor
*_eventsont décodés en audit-only pour éviter les doublons, sauf exception matérialisable explicitement testée. - Les gaps globaux Pump.fun/PumpSwap/Pump Fees sont fermés ; la watchlist résiduelle courante ne contient plus
pump_feeset garde seulementjupiter_swap.route_v2comme observation ponctuelle. - Les checks Raydium AMM v4 / CLMM / CPMM normalisés sont vides ; aucune correction Raydium n’est incluse dans cette clôture.
0.7.55 — Pump Fees
| Entry group | Discriminants | Famille | Target attendu | Local event kind | Notes |
|---|---|---|---|---|---|
get_fees |
e7257e55cf5b3f34 |
audit | decoded-only | pump_fees.get_fees |
Calcul/preview de fees ; ne pas matérialiser comme fee payé sans transfert réalisé. |
| social fee claim/create | IDL locale | reward / lifecycle | k_sol_reward_events ou k_sol_pool_lifecycle_events |
pump_fees.claim_social_fee_pda*, pump_fees.social_fee_pda_* |
Claim matérialisable seulement avec montant/acteur/mint fiables et transaction OK. |
| donation fee PDA | IDL locale | fee / lifecycle | k_sol_fee_events ou k_sol_pool_lifecycle_events |
pump_fees.*donation_fee_pda* |
Crank avec montant fiable vers fee ; création de PDA vers lifecycle. |
| buyback | IDL locale | fee / admin/lifecycle | k_sol_fee_events, k_sol_pool_admin_events ou lifecycle |
pump_fees.*buyback* |
Sweep matérialisable comme fee si montant fiable ; init/update comme lifecycle/admin. |
| fee sharing/config/authority/tier | IDL locale + Carbon partiel | admin_config / lifecycle | k_sol_pool_admin_events ou k_sol_pool_lifecycle_events |
pump_fees.*config*, pump_fees.*authority*, pump_fees.*tier*, pump_fees.update_fee_shares* |
Aucun trade/candle ; decoded-only/audit-only si données métier insuffisantes. |
0.7.55 Pump Fees — clôture
Programme : pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ. Source locale prioritaire : idls/pump_fees.pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ.json.
| Famille | Entrées | Target | Statut | Notes |
|---|---|---|---|---|
| fee calculation | get_fees / e7257e55cf5b3f34 |
k_sol_dex_decoded_events_only |
decoded-only validé | Calcul/preview ; ne représente pas une fee payée. |
| reward/social fee | claim_social_fee_pda, claim_social_fee_pda_v2, social_fee_pda_claimed |
k_sol_reward_events |
matérialisé si tx OK | Écarts expliqués par failed tx. |
| donation fee | create_donation_fee_pda, crank_donation_fee_pda, events associés |
lifecycle / k_sol_fee_events |
matérialisé si tx OK | Création PDA vers lifecycle ; crank vers fee. |
| buyback | initialize_buyback, sweep_buyback, authority/rate-limit |
lifecycle / fee / admin | matérialisé si tx OK | sweep_buyback et sweep_buyback_event alimentent fee. |
| fee sharing/config/authority/tier | config/reset/transfer/revoke/update/upsert | k_sol_pool_admin_events ou lifecycle |
matérialisé si tx OK | Aucun trade/candle ; failed tx audit-only. |
| Anchor IDL non observés | SetAuthorityEvent, SetClaimRateLimitEvent, SetDisableFlagsEvent, SetSocialClaimAuthorityEvent |
admin/audit | tests synthétiques | Aucun corpus Solscan au moment de clôture ; decoder conservé pour transactions futures. |
| Solscan hors IDL locale | revoke_fee_sharing_authority_event, transfer_fee_sharing_authority_event |
admin | mapped_unverified | Discriminators trouvés via Solscan ; conservés comme surfaces futures. |
Invariants propres : fallback pump_fees vide, decoded sans coverage vide, successful non-materialized sans skip/policy vide, failed tx matérialisée vide, multi-target vide, anti-trade/candle direct vide, watchlist globale sans pump_fees.
0.7.56 — Meteora DBC clôturé
Programme : dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN. Source locale prioritaire : idls/meteora_dbc.dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN.json.
| Groupe | Entrées | Famille | Cible DB | Local event kind | Décision finale |
|---|---|---|---|---|---|
| swaps | swap, swap2 |
swap | k_sol_trade_events + candles |
meteora_dbc.swap, meteora_dbc.swap2 |
Matérialisés seulement avec montants et mints base/quote fiables ; swap2 validé via transferts CPI/amount inference. |
| virtual pool init | initialize_virtual_pool_with_spl_token, initialize_virtual_pool_with_token2022, EvtInitializePool |
pool_create | k_sol_pool_lifecycle_events + catalog si contexte complet |
meteora_dbc.initialize_virtual_pool_with_*, meteora_dbc.evt_initialize_pool_event |
Lifecycle/catalog prudent ; failed tx audit-only. |
| migration / lockers | migrate_meteora_damm*, migration_damm_v2*, create_locker, EvtCurveComplete |
migration / lifecycle | k_sol_pool_lifecycle_events |
meteora_dbc.migrate_*, meteora_dbc.migration_*, meteora_dbc.create_locker |
Lifecycle, pas liquidity artificielle pour LP claim/lock ; metadata-only decoded-only si contexte insuffisant. |
| fees/surplus/leftover | claim_*fee*, withdraw_migration_fee, zap_protocol_fee, *_withdraw_surplus, withdraw_leftover, events Anchor fee |
fee | k_sol_fee_events + k_sol_fee_event_amounts |
meteora_dbc.*fee*, meteora_dbc.*surplus*, meteora_dbc.*leftover* |
Montants réels depuis CPI SPL ou lamport delta ; maxima d'instruction refusés ; multi-leg/multi-mint dans k_sol_fee_event_amounts. |
| admin/config/metadata/operator | create_config, create_operator_account, close_*operator*, metadata, transfer_pool_creator, config events |
admin_config | k_sol_pool_admin_events ou decoded-only |
meteora_dbc.*config*, meteora_dbc.*operator*, meteora_dbc.*metadata*, meteora_dbc.transfer_pool_creator |
Admin si compte/acteur fiables ; payload metadata générique decoded-only avec raison. |
| Anchor swap events | EvtSwap, EvtSwap2 |
swap/audit | decoded-only sauf corrélation sûre | meteora_dbc.evt_swap_event, meteora_dbc.evt_swap2_event |
Les events portent des montants mais pas toujours le contexte mint/pair ; pas de double-count avec l'instruction swap matérialisée. |
Validation finale DBC : 89 parents fee, 96 legs fee amount, aucun parent scalaire sans leg, aucun leg orphelin, aucun decoded event local sans coverage, aucun failed tx matérialisé, aucun multi-target, aucun non-swap vers trade/candle.
0.7.57 — Meteora DLMM à reprendre
Programme : LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo. Source locale : idls/meteora_dlmm.LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo.json.
| Groupe | Entrées IDL | Famille | Cible DB attendue | Décision à valider |
|---|---|---|---|---|
| swaps | swap, swap2, swap_exact_out*, swap_with_price_impact*, Swap, Swap2Evt |
swap | k_sol_trade_events + candles |
Montants exécutés uniquement ; éviter double-count instruction/event. |
| pools / bins | initialize_*lb_pair*, initialize_bin_array*, close_bin_array, LbPairCreate |
lifecycle | k_sol_pool_lifecycle_events, catalog/pair |
Catalog si comptes pool/mints/config fiables. |
| liquidity / positions | add_liquidity*, remove_liquidity*, remove_all_liquidity, rebalance_liquidity, position create/close/update events |
liquidity/lifecycle | k_sol_liquidity_events, k_sol_pool_lifecycle_events |
Montants x/y/bin/liquidity fiables ; sinon skip reason. |
| fees | claim_fee*, withdraw_protocol_fee, zap_protocol_fee, ClaimFee*, CompositionFee |
fee | k_sol_fee_events + k_sol_fee_event_amounts |
Utiliser le socle fee parent+legs ; policy recovery explicite, non globale. |
| rewards | initialize_reward, fund_reward, claim_reward*, withdraw_ineligible_reward, reward events |
reward | k_sol_reward_events |
Montant/mint/récompense fiable uniquement. |
| admin/config | fee parameters, pair status, activation, operator, token badge, preset parameter | admin_config | k_sol_pool_admin_events ou decoded-only |
Matérialiser si acteur/compte cible fiable. |
| limit/order events | place/cancel/close limit order events | orderbook/audit | k_sol_orderbook_events si modèle fiable |
Pas de candle directe sans fill exact. |