0.7.49
This commit is contained in:
134
docs/reports/RAYDIUM_CLMM_EVENT_COVERAGE_REPORT.md
Normal file
134
docs/reports/RAYDIUM_CLMM_EVENT_COVERAGE_REPORT.md
Normal file
@@ -0,0 +1,134 @@
|
||||
<!-- file: docs/reports/RAYDIUM_CLMM_EVENT_COVERAGE_REPORT.md -->
|
||||
|
||||
# Rapport `0.7.49` — Raydium CLMM event coverage
|
||||
|
||||
## Résumé
|
||||
|
||||
La tranche `0.7.49` clôture la couverture fonctionnelle `raydium_clmm` sur le corpus local validé. Elle reprend CLMM après `0.7.48 raydium_cpmm` et applique la même méthode : inventaire upstream, corpus local, replay forcé, materialization contrôlée, suppression des fallbacks remplacés, validation SQL.
|
||||
|
||||
Validation locale observée après le dernier replay :
|
||||
|
||||
```text
|
||||
local replay: 2197 replayed, 0 decode skipped, 2197 ledger upserts, 1461 unsafe ledger rows, 1217 trades, 111 liquidity, 25 lifecycle, 4868 candle upserts, instructionObservations=19798
|
||||
catalog: 41 tokens, 63 pools, 63 pairs
|
||||
```
|
||||
|
||||
Synthèse coverage :
|
||||
|
||||
```text
|
||||
listed_entry_count = 45
|
||||
decoded_entry_count = 33
|
||||
observed_entry_count = 33
|
||||
materialized_entry_count = 25
|
||||
total_observed_count = 2560
|
||||
total_materialized_count = 1367
|
||||
trade_count = 1186
|
||||
```
|
||||
|
||||
## Entrées couvertes
|
||||
|
||||
La tranche couvre `33` instructions locales CLMM observées et décodées, dont :
|
||||
|
||||
```text
|
||||
swap
|
||||
swap_v2
|
||||
swap_router_base_in
|
||||
open_position
|
||||
open_position_v2
|
||||
open_position_with_token22_nft
|
||||
close_position
|
||||
close_protocol_position
|
||||
increase_liquidity
|
||||
increase_liquidity_v2
|
||||
decrease_liquidity
|
||||
decrease_liquidity_v2
|
||||
create_pool
|
||||
create_customizable_pool
|
||||
create_amm_config
|
||||
create_dynamic_fee_config
|
||||
update_amm_config
|
||||
update_pool_status
|
||||
create_operation_account
|
||||
update_operation_account
|
||||
create_support_mint_associated
|
||||
collect_fund_fee
|
||||
collect_protocol_fee
|
||||
collect_remaining_rewards
|
||||
initialize_reward
|
||||
set_reward_params
|
||||
transfer_reward_owner
|
||||
update_reward_infos
|
||||
open_limit_order
|
||||
increase_limit_order
|
||||
decrease_limit_order
|
||||
close_limit_order
|
||||
settle_limit_order
|
||||
```
|
||||
|
||||
## Matérialisations validées
|
||||
|
||||
Les matérialisations sont limitées aux transactions réussies et aux familles déjà supportées par le modèle DB :
|
||||
|
||||
| Famille | Table | Règle |
|
||||
|---|---|---|
|
||||
| Swaps | `k_sol_trade_events` + candles | Uniquement `raydium_clmm.swap` / `raydium_clmm.swap_v2` quand les montants sont exploitables. |
|
||||
| Liquidity / positions | `k_sol_liquidity_events` | Positions/liquidity prouvées par corpus, sans trade/candle. |
|
||||
| Fees | `k_sol_fee_events` | Fees prouvées par corpus, sans trade/candle. |
|
||||
| Rewards | `k_sol_reward_events` | Rewards prouvées par corpus, sans trade/candle. |
|
||||
| Admin/config | `k_sol_pool_admin_events` | Config/admin prouvés par corpus, sans trade/candle. |
|
||||
| Lifecycle | `k_sol_pool_lifecycle_events` | Pool creation prouvée par corpus, sans trade/candle. |
|
||||
| Limit orders | `k_sol_orderbook_events` | Open/increase/decrease/close/settle matérialisés comme orderbook, jamais trade/candle. |
|
||||
|
||||
## Invariants validés
|
||||
|
||||
Les requêtes SQL finales valident :
|
||||
|
||||
```text
|
||||
raydium_clmm.instruction_audit résiduel = 0
|
||||
upstream_git.instruction_match localement couvert = 0
|
||||
non-swap CLMM avec trade_count > 0 = 0
|
||||
failed tx matérialisées = 0
|
||||
```
|
||||
|
||||
Les fallbacks `upstream_git.instruction_match` localement couverts sont supprimés automatiquement, y compris quand `k_sol_instruction_observations.decoded_event_id` pointait encore vers une ligne fallback.
|
||||
|
||||
## Anchor / Program-data events non observés
|
||||
|
||||
Les `11` Anchor / `Program data` events CLMM ci-dessous restent listés en `upstream_git_unverified`, car aucun corpus local ne les observe encore comme event direct :
|
||||
|
||||
```text
|
||||
collect_personal_fee_event a6ae69c051a15369
|
||||
collect_protocol_fee_event ce57114f2d29d53d
|
||||
config_change_event f7bd07776a705f97
|
||||
create_personal_position_event 641e57f9c4df9ace
|
||||
decrease_liquidity_event 3ade563a44325538
|
||||
increase_liquidity_event 314f69d420221e54
|
||||
liquidity_calculate_event ed7094e63954b4a2
|
||||
liquidity_change_event 7ef0afce9e58996b
|
||||
pool_created_event 195e4b2f7063353f
|
||||
swap_event 40c6cde8260871e2
|
||||
update_reward_infos_event 6d7fba4e724125ec
|
||||
```
|
||||
|
||||
Le code est préparé pour les accueillir comme audit-only lorsqu’ils seront observés dans un corpus local. Ils ne produisent pas de trade/candle par défaut.
|
||||
|
||||
## Sources utilisées
|
||||
|
||||
Les entrées ont été comparées aux sources Raydium CLMM suivantes :
|
||||
|
||||
```text
|
||||
Solscan Program IDL CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK
|
||||
sevenlabs-hq/carbon raydium-clmm-decoder
|
||||
pinax-network/substreams-solana-idls raydium/clmm
|
||||
0xfnzero/sol-parser-sdk idl
|
||||
```
|
||||
|
||||
Les sources upstream restent des indices. La promotion locale dépend du corpus local, du replay et des validations SQL.
|
||||
|
||||
## SQL final
|
||||
|
||||
La validation finale est dans :
|
||||
|
||||
```text
|
||||
validation_sql/SQL_VALIDATION_RAYDIUM_CLMM_0_7_49.sql
|
||||
```
|
||||
Reference in New Issue
Block a user