This commit is contained in:
2026-06-05 14:53:16 +02:00
parent 27e25d5bf4
commit f81e0f3bea
66 changed files with 7655 additions and 214 deletions

108
README.md
View File

@@ -7,18 +7,53 @@
Ce document reflète le point de reprise `0.7.43-E5C` et létat de consolidation atteint après `0.7.45` pour `meteora_dlmm`. La version Cargo a évolué ensuite à `0.7.46` côté workspace. Le lot Meteora initialement ouvert en bloc a été redécoupé : `meteora_dlmm` est traité séparément, puis la suite reprend `meteora_damm_v1`, `meteora_damm_v2` et `meteora_dbc` un par un.
## État de reprise actuel `0.7.47-1FE5`
## État courant finalisé `0.7.49`
Le point de reprise courant nest plus `0.7.43-E5C`. La branche de travail actuelle est `0.7.47-1FE5` : le registre upstream Git est en place, OpenBook v2 et Phoenix v1 disposent de decoders locaux **audit-only**, et la suite doit être conduite par DEX/version au lieu de tenter tous les events en une seule session.
La branche de travail `0.7.49` clôture la tranche `raydium_clmm` après la clôture fonctionnelle de `0.7.48 raydium_cpmm`. Le code Rust de `kb_lib` est considéré finalisé pour cette tranche, sous réserve des validations locales habituelles (`cargo fmt`, `cargo test -p kb_lib`, `cargo clippy -p kb_lib --all-targets -- -D warnings`).
Les nouveaux chemins audit-only doivent rester non matérialisants : aucun event OpenBook v2 ou Phoenix v1 ne doit produire de trade, metric ou candle tant que le sens économique complet nest pas validé.
État CLMM validé sur corpus local après replay forcé :
```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
raydium_clmm.instruction_audit résiduel = 0
upstream_git.instruction_match localement couvert = 0
failed tx matérialisées = 0
non-swap CLMM avec trade_count > 0 = 0
```
Les 11 Anchor / `Program data` events CLMM restent listés en `upstream_git_unverified` car aucun corpus local ne les observe encore. Le code est préparé pour les accueillir en audit-only lorsquils apparaîtront dans un corpus local, sans créer de trade/candle par défaut.
La prochaine tranche fonctionnelle est `0.7.50 raydium_launchpad`, avant `0.7.51 raydium_amm_v4` et `0.7.52 raydium_stable`.
## Organisation documentaire
La racine conserve uniquement les documents de pilotage principaux :
- `README.md` ;
- `ROADMAP.md` ;
- `CHANGELOG.md`.
Les documents spécialisés sont rangés dans :
- `docs/` pour les matrices et revues de modèle ;
- `docs/reports/` pour les rapports de couverture DEX/version ;
- `docs/prompts/` pour les prompts de reprise ;
- `validation_sql/` pour les scripts SQL de validation.
Voir aussi :
- `DEX_DECODER_MATRIX.md` pour la matrice DEX détaillée ;
- `ROADMAP.md` pour le plan révisé `0.7.48` à `0.7.61` ;
- `CHANGELOG.md` pour les tranches `0.7.47-*`.
- `docs/DEX_DECODER_MATRIX.md` pour la matrice DEX détaillée ;
- `docs/DEX_EVENT_COVERAGE_MATRIX.md` pour la matrice de familles devents ;
- `docs/DB_EVENT_MODEL_REVIEW.md` pour la revue du modèle DB ;
- `docs/reports/RAYDIUM_CPMM_EVENT_COVERAGE_REPORT.md` et `validation_sql/SQL_VALIDATION_RAYDIUM_CPMM_0_7_48.sql` pour la clôture CPMM ;
- `docs/reports/RAYDIUM_CLMM_EVENT_COVERAGE_REPORT.md` et `validation_sql/SQL_VALIDATION_RAYDIUM_CLMM_0_7_49.sql` pour la clôture CLMM ;
- `docs/prompts/PROMPT_REPRISE_khadhroony-bobobot_0.7.50-raydium-launchpad.md` pour reprendre en `0.7.50`.
## Sources upstream Git / IDL à utiliser en `0.7.47+`
@@ -345,17 +380,14 @@ Si une requête DB est ajoutée ou modifiée, mettre à jour les re-exports dans
La priorité immédiate après le point de reprise `0.7.43-E5C` est :
1. `0.7.43` : resynchronisation documentaire, normalisation DEX-first et gel du point de reprise ;
2. `0.7.44` : ajout du ledger de décodage/replay et options de replay `force` / skip sûr ;
3. `0.7.45` : reprise séparée de `meteora_dlmm` — clôturée côté corpus DLMM actuel ;
4. `0.7.46` : reprise séparée de `meteora_damm_v1` — clôturée côté corpus DAMM v1 local ;
5. `0.7.47` : Upstream Git Registry / DEX discovery preparation — registre générique des `program_id`, discriminants, instructions et events issus de dépôts Git externes, tous non vérifiés par défaut ;
6. `0.7.48-pre` : event coverage + DB model checkpoint — table coverage, sync upstream, refresh counts, diagnostics et profil validation ;
7. `0.7.48` : reprise séparée de `raydium_cpmm` ;
8. `0.7.49` : reprise séparée de `raydium_clmm` ;
9. `0.7.50` : reprise séparée de `pump_swap` ;
10. `0.7.51` : reprise séparée de `pump_fun` ;
11. `0.7.52+` : Meteora puis validation progressive des autres DEX/surfaces issus du registre upstream Git : Orca, FluxBeam, DexLab, Lifinity, Phoenix, OpenBook, Stabble, BonkSwap, Boop, Moonshot, Heaven, Wavebreak, Vertigo, Virtuals, Pancake Swap, OKX DEX, Raydium LaunchLab/Stable/Locking, puis launch surfaces.
1. `0.7.48` : `raydium_cpmm` — clôturé côté event coverage ;
2. `0.7.49` : `raydium_clmm` — clôturé côté instructions observées, matérialisation non-trade prouvée et nettoyage fallback ;
3. `0.7.50` : `raydium_launchpad` ;
4. `0.7.51` : `raydium_amm_v4` ;
5. `0.7.52` : `raydium_stable` ;
6. `0.7.53` : `pump_swap` ;
7. `0.7.54` : `pump_fun` ;
8. `0.7.55+` : Meteora, Phoenix/OpenBook, Orca puis validation progressive des autres DEX/surfaces issus du registre upstream Git.
Garde-fous constants :
@@ -436,9 +468,9 @@ La matrice DEX/version doit être complétée par une matrice événementielle e
Voir :
- `DEX_DECODER_MATRIX.md` pour le statut par DEX/version ;
- `DEX_EVENT_COVERAGE_MATRIX.md` pour les familles d'events à couvrir ;
- `DB_EVENT_MODEL_REVIEW.md` pour les ajouts DB à envisager avant `0.7.48+`.
- `docs/DEX_DECODER_MATRIX.md` pour le statut par DEX/version ;
- `docs/DEX_EVENT_COVERAGE_MATRIX.md` pour les familles d'events à couvrir ;
- `docs/DB_EVENT_MODEL_REVIEW.md` pour les ajouts DB à envisager avant `0.7.48+`.
## Note 0.7.48-pre — Event coverage DB checkpoint
@@ -462,9 +494,10 @@ La suite fonctionnelle reprend par Raydium avant Meteora :
1. `0.7.48``raydium_cpmm` ;
2. `0.7.49``raydium_clmm` ;
3. `0.7.50``pump_swap` ;
4. `0.7.51``pump_fun` ;
5. `0.7.52+`Meteora puis les autres DEX/surfaces.
3. `0.7.50``raydium_launchpad` ;
4. `0.7.51``raydium_amm_v4` ;
5. `0.7.52``raydium_stable` ;
6. `0.7.53+` — Pump, Meteora, Phoenix/OpenBook, Orca puis les autres DEX/surfaces.
## Note 0.7.48 — Raydium CPMM event coverage
@@ -478,9 +511,9 @@ Aucune nouvelle table DB n'est ajoutée en `0.7.48`. Les transfers, token accoun
Voir aussi :
- `DEX_EVENT_COVERAGE_MATRIX.md` pour la couverture par familles ;
- `RAYDIUM_CPMM_EVENT_COVERAGE_REPORT.md` pour le rapport de tranche ;
- `SQL_VALIDATION_RAYDIUM_CPMM_0_7_48.sql` pour les requêtes de validation.
- `docs/DEX_EVENT_COVERAGE_MATRIX.md` pour la couverture par familles ;
- `docs/reports/RAYDIUM_CPMM_EVENT_COVERAGE_REPORT.md` pour le rapport de tranche ;
- `validation_sql/SQL_VALIDATION_RAYDIUM_CPMM_0_7_48.sql` pour les requêtes de validation.
Complément `0.7.48-raydium-cpmm-program-data` : la coverage DB est maintenant synchronisée automatiquement quand un refresh de coverage est demandé sur une base neuve et qu'aucune ligne n'existe encore. Les backfills token/pool/signature déclenchent aussi un refresh best-effort de la coverage afin d'éviter un état incohérent où `k_sol_dex_decoded_events` est rempli mais `k_sol_dex_event_coverage_entries` reste vide.
@@ -499,3 +532,24 @@ La tranche `0.7.48` clôture la couverture Raydium CPMM sur corpus local. Les en
La table technique `k_sol_instruction_observations` est ajoutée pour indexer localement les instructions observées par `decoder_code`, `instruction_name` et `discriminator_hex`. Demo3 peut rechercher par instruction/discriminant, ce qui reproduit localement lusage pratique du filtre Solscan `instruction=<discriminator>`.
État final CPMM observé : `561` trades, `50` liquidity events, `9` lifecycle events, `25/25` `lp_change_event` matérialisés, `swap_event` audit-only à `0` trade, et deux entrées connues mais non observées (`close_permission_pda`, `update_pool_status`) conservées en `upstream_git_mapped_unverified`.
## Note 0.7.49 — Raydium CLMM event coverage final
La tranche `0.7.49` clôture `raydium_clmm` comme deuxième tranche Raydium après CPMM. Elle ajoute la couverture complète des instructions CLMM observées depuis Carbon, IDL Raydium, Pinax, fnzero et corpus Solscan/backfill, ainsi que la table transversale `k_sol_orderbook_events` pour les instructions limit-order.
Points finalisés :
- `45` entrées listées dans `k_sol_dex_event_coverage_entries` ;
- `33` instructions CLMM avec `local_event_kind` spécialisé ;
- `33` instructions observées dans le corpus local ;
- `25` entrées matérialisées ;
- swaps matérialisés uniquement via `swap` / `swap_v2` ;
- limit orders `open`, `increase`, `decrease`, `close`, `settle` décodés et matérialisés en `k_sol_orderbook_events` quand la transaction réussit ;
- non-trades CLMM vers `liquidity`, `fee`, `reward`, `admin`, `lifecycle` et `orderbook` sans trade/candle ;
- transactions échouées conservées audit-only ;
- `raydium_clmm.instruction_audit` résiduel à zéro ;
- `upstream_git.instruction_match` localement couvert à zéro après replay ;
- 11 Anchor / `Program data` events CLMM préparés mais conservés `upstream_git_unverified` faute dobservation locale.
La validation finale est dans `validation_sql/SQL_VALIDATION_RAYDIUM_CLMM_0_7_49.sql`.