This commit is contained in:
2026-06-14 14:25:09 +02:00
parent 38f42da970
commit 3b908b318e
100 changed files with 5873 additions and 225 deletions

View File

@@ -2,6 +2,65 @@
# khadhroony-bobobot
## État final validé `0.7.53` — `pump_swap`
La tranche `0.7.53 pump_swap` est clôturée côté décodage transaction/log et matérialisation métier. Elle ferme le program id unique `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` sans rouvrir Raydium.
Points verrouillés :
- `pump_swap.buy` et `pump_swap.sell` restent matérialisés uniquement depuis montants exacts transaction/vault/balance-delta ;
- `pump_swap.buy_exact_quote_in` est matérialisable seulement lorsqu'un `BuyEvent` Anchor exact est présent (`amountSource=pump_swap_anchor_buy_event`) ; les cas `instruction_bounds_only` restent decoded-only avec raison explicite ;
- les events Anchor `*_event` sont décodés comme events autonomes audit-only, sauf exception explicitement matérialisable (`claim_token_incentives_event` si un corpus réussi apparaît) ;
- les transactions failed restent traçables mais non actionnables ;
- les non-trades PumpSwap alimentent uniquement les tables métier prévues (`liquidity`, `lifecycle`, `fee`, `reward`, `admin`) et ne créent jamais de trade/candle ;
- les tests synthétiques verrouillent les instructions/events IDL non observés dans le corpus local ;
- la surveillance globale distingue maintenant les vrais gaps locaux, le backlog `upstream_git` et les observations non attribuées.
Validation locale finale rapportée :
```text
cargo test -p kb_lib -> 421 passed / 0 failed
cargo clippy -p kb_lib --all-targets -- -D warnings -> OK
```
Dernier replay élargi rapporté après backfill pool :
```text
1189 replayed
0 decode skipped
1189 ledger upserts
967 unsafe ledger rows
928 trades
13 liquidity
8 lifecycle
0 tokenAccount
3700 candle upserts
instructionObservations = 25724
resetDeleted = 5622
catalog = 76 tokens / 80 pools / 80 pairs
```
Checks de fermeture :
- `pump_swap` decoded without coverage : vide ;
- fallback `upstream_git` PumpSwap couvert localement : vide ;
- successful trade candidates PumpSwap sans trade et sans raison explicite : vide ;
- failed transaction avec business trade : vide ;
- non-swap matérialisé en trade : vide ;
- multi-target materialization : vide ;
- Raydium AMM v4 / CLMM / CPMM targeted observation gaps : vide après normalisation.
Livrables `0.7.53` :
- `docs/reports/PUMP_SWAP_EVENT_COVERAGE_REPORT.md` ;
- `docs/reports/DEX_COVERAGE_GLOBAL_WATCHLIST_0_7_53.md` ;
- `validation_sql/SQL_VALIDATION_PUMP_SWAP_0_7_53.sql` ;
- `validation_sql/SQL_VALIDATION_DEX_COVERAGE_GLOBAL_0_7_53.sql` ;
- `idls/` comme corpus local d'IDL Solscan à comparer aux sources Git.
La suite immédiate est `pump_fees` / `pump_fun` selon priorité de backlog observé. Les petits gaps Meteora sont volontairement reportés aux tranches Meteora futures.
## État final validé `0.7.51` — `raydium_amm_v4`
La tranche `0.7.51 raydium_amm_v4` est clôturable côté `kb_lib` après validation locale du decoder maximal AMM v4.
@@ -118,9 +177,10 @@ Sources prioritaires :
| Source | Usage attendu |
|---|---|
| `idls/` | Corpus local dIDL téléchargés depuis Solscan ; source de savoir locale à comparer aux sources Git avant promotion métier. |
| `https://github.com/sevenlabs-hq/carbon/tree/main/decoders` | Source principale de discriminants, instructions et events multi-protocoles. |
| `https://github.com/0xfnzero/solana-streamer` | Source complémentaire pour PumpFun, PumpSwap, Bonk et Raydium CPMM. |
| `https://github.com/0xfnzero/sol-parser-sdk/tree/main/idl` | IDL complémentaires pour programmes Solana supportés par parser SDK. |
| `https://github.com/0xfnzero/sol-parser-sdk/tree/main/idls` | IDL complémentaires pour programmes Solana supportés par parser SDK. |
| `https://github.com/pinax-network/substreams-solana-idls/tree/main/src` | IDL et layouts additionnels à comparer au registre local. |
| `https://github.com/hodlwarden/solana-tx-parser/tree/main/src` | Décodage transactionnel complémentaire et conventions de mapping. |
| `https://github.com/openbook-dex/openbook-v2` | Source officielle OpenBook v2 : programme, IDL et logs. |
@@ -427,17 +487,14 @@ Si une requête DB est ajoutée ou modifiée, mettre à jour les re-exports dans
## 8. Priorité immédiate
La priorité immédiate après le point de reprise `0.7.43-E5C` est :
La priorité immédiate après la clôture `0.7.53` est la suivante :
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-pre-r2` : `raydium_launchpad` clos + re-vérification `raydium_cpmm` / `raydium_clmm` ;
4. `0.7.51` : `raydium_amm_v4` ;
5. `0.7.52` : `raydium_stable_swap` — clôturé ;
6. `0.7.53` : `raydium_pool_v4` audit / program-id decision seulement si program id distinct et corpus exploitable ;
7. `0.7.54` : `pump_swap` ;
8. `0.7.55` : `pump_fun` ;
9. `0.7.56+` : Meteora, Phoenix/OpenBook, Orca puis validation progressive des autres DEX/surfaces issus du registre upstream Git.
1. `0.7.53` est clos pour `pump_swap` : ne rouvrir que pour correction de bug, pas pour ajout fonctionnel IDL déjà couvert ;
2. maintenir les checks globaux de surveillance dans `validation_sql/SQL_VALIDATION_DEX_COVERAGE_GLOBAL_0_7_53.sql` après chaque gros backfill ;
3. traiter ensuite le backlog observé, en priorité `pump_fees`, puis `pump_fun`, puis `jupiter_swap` si lobjectif devient lanalyse des routes/agrégateurs ;
4. reporter volontairement les corrections Meteora restantes (`meteora_dlmm.swap`, `meteora_damm_v2.swap`, `meteora_damm_v2.instruction_audit`) aux tranches Meteora dédiées ;
5. ne pas rouvrir `raydium_amm_v4`, `raydium_clmm` ou `raydium_cpmm` tant que les requêtes Raydium normalisées restent vides ;
6. garder `raydium_launchpad` et `raydium_stable_swap` en surveillance : les entrées non observées restent `upstream_git_mapped_unverified`, pas des régressions.
Garde-fous constants :
@@ -547,8 +604,12 @@ La suite fonctionnelle reprend par Raydium avant Meteora :
3. `0.7.50-pre-r2``raydium_launchpad` + clôture CPMM/CLMM ;
4. `0.7.51``raydium_amm_v4` ;
5. `0.7.52``raydium_stable_swap` — clôturé ;
6. `0.7.53``raydium_pool_v4` audit conditionnel, sans promotion automatique ;
7. `0.7.54+`Pump, Meteora, Phoenix/OpenBook, Orca puis les autres DEX/surfaces.
6. `0.7.53``pump_swap` — clôturé ;
7. `0.7.54``pump_fees` ;
8. `0.7.55``pump_fun` ;
9. `0.7.56+` — Meteora, routers/agrégateurs, Phoenix/OpenBook, Orca puis les autres DEX/surfaces.
`raydium_pool_v4.json` reste repoussé en audit conditionnel tardif, pas une tranche bloquante.
## Note 0.7.48 — Raydium CPMM event coverage