0.7.55
This commit is contained in:
216
docs/prompts/PROMPT_0_7_56_METEORA_DBC.md
Normal file
216
docs/prompts/PROMPT_0_7_56_METEORA_DBC.md
Normal file
@@ -0,0 +1,216 @@
|
||||
# Prompt de reprise — khadhroony-bobobot 0.7.56 — meteora_dbc
|
||||
|
||||
Tu reprends le workspace Rust/Tauri `khadhroony-bobobot` après clôture technique de `0.7.55 pump_fees`.
|
||||
|
||||
## 1. Archive et fichiers à fournir
|
||||
|
||||
Utiliser l'archive la plus récente après clôture `0.7.55 pump_fees`.
|
||||
|
||||
À considérer comme sources locales de savoir :
|
||||
|
||||
- code Rust du workspace ;
|
||||
- `README.md`, `ROADMAP.md`, `CHANGELOG.md` ;
|
||||
- `docs/DEX_DECODER_MATRIX.md` ;
|
||||
- `docs/DEX_EVENT_COVERAGE_MATRIX.md` ;
|
||||
- `docs/reports/PUMP_FEES_EVENT_COVERAGE_REPORT.md` ;
|
||||
- `validation_sql/SQL_VALIDATION_PUMP_FEES_0_7_55.sql` ;
|
||||
- `idls/**`, en particulier `idls/meteora_dbc.dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN.json` ;
|
||||
- les logs/requêtes SQL collés pendant la session.
|
||||
|
||||
Ne pas supposer que la documentation est parfaite : vérifier contre le code, l'IDL locale, les sources Git et le corpus SQLite.
|
||||
|
||||
## 2. État validé avant cette version
|
||||
|
||||
`0.7.55 pump_fees` est clos.
|
||||
|
||||
Replay final rapporté :
|
||||
|
||||
```text
|
||||
127 replayed
|
||||
0 decode skipped
|
||||
150 ledger upserts
|
||||
125 unsafe ledger rows
|
||||
4 trades
|
||||
0 liquidity
|
||||
115 lifecycle
|
||||
0 tokenAccount
|
||||
16 candle upserts
|
||||
instructionObservations = 2234
|
||||
resetDeleted = 1644
|
||||
catalog = 11 tokens / 10 pools / 10 pairs
|
||||
```
|
||||
|
||||
Validation build :
|
||||
|
||||
```text
|
||||
cargo test -p kb_lib -> 431 passed / 0 failed
|
||||
cargo clippy -p kb_lib --all-targets -- -D warnings -> OK
|
||||
```
|
||||
|
||||
Checks de fermeture Pump Fees :
|
||||
|
||||
- fallback `upstream_git` `pump_fees` : vide ;
|
||||
- `instruction_name` vide : vide ;
|
||||
- `event_family = unknown` ou vide pour instruction/event : vide ;
|
||||
- decoded `pump_fees` sans coverage : vide ;
|
||||
- successful non-materialized sans skip/policy : vide ;
|
||||
- failed transaction materialization safety : vide ;
|
||||
- multi-target materialization safety : vide ;
|
||||
- anti-trade/candle direct `pump_fees` : vide ;
|
||||
- watchlist globale : plus aucun `pump_fees`, seulement `jupiter_swap.route_v2` ponctuel.
|
||||
|
||||
Décisions Pump Fees à préserver :
|
||||
|
||||
- `get_fees` est decoded-only ;
|
||||
- claims social fee vers `k_sol_reward_events` seulement si succès et montant fiable ;
|
||||
- donation/buyback vers `k_sol_fee_events` seulement si succès et montant fiable ;
|
||||
- config/authority/tier/update vers `k_sol_pool_admin_events` ;
|
||||
- create/init/extend vers `k_sol_pool_lifecycle_events` ;
|
||||
- aucun trade/candle direct ;
|
||||
- failed tx audit-only ;
|
||||
- les discriminators Solscan `revoke_fee_sharing_authority_event` et `transfer_fee_sharing_authority_event` restent conservés comme futures surfaces non observées.
|
||||
|
||||
Ne pas rouvrir `pump_fees`, `pump_fun`, `pump_swap` ou Raydium sauf bug prouvé par SQL/code.
|
||||
|
||||
## 3. Objectif de `0.7.56 meteora_dbc`
|
||||
|
||||
Ouvrir et clôturer la surface `meteora_dbc`.
|
||||
|
||||
Program id cible :
|
||||
|
||||
```text
|
||||
dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN
|
||||
```
|
||||
|
||||
IDL locale prioritaire :
|
||||
|
||||
```text
|
||||
idls/meteora_dbc.dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN.json
|
||||
```
|
||||
|
||||
Règle forte :
|
||||
|
||||
> Tout ce qui peut être décodé doit être décodé. Tout ce qui peut être matérialisé de façon fiable doit être matérialisé. Ce qui ne peut pas être matérialisé doit rester decoded-only/audit-only avec `skip*Reason` explicite.
|
||||
|
||||
La surface DBC doit couvrir launch/bonding curve, pool/config lifecycle, swaps exploitables, migration, fees/admin/config, et events Anchor associés.
|
||||
|
||||
## 4. Méthode obligatoire : nouvelle base SQLite
|
||||
|
||||
Créer une nouvelle DB dédiée à `0.7.56 meteora_dbc`.
|
||||
|
||||
Ne pas réutiliser l'ancienne DB de validation Pump Fees sauf pour lire des signatures de départ.
|
||||
|
||||
Après chaque backfill ou patch decoder :
|
||||
|
||||
```text
|
||||
skipDexDecode=no
|
||||
forceDexDecode=yes
|
||||
deferInstructionObservations=yes
|
||||
```
|
||||
|
||||
Puis :
|
||||
|
||||
- refresh catalog ;
|
||||
- replay local ;
|
||||
- relancer SQL de validation ;
|
||||
- noter les compteurs replay.
|
||||
|
||||
## 5. Corpus et backfills
|
||||
|
||||
Construire le corpus local à partir de :
|
||||
|
||||
1. signatures `sample_signature` de la watchlist globale et des coverage gaps ;
|
||||
2. filtres Solscan.io par program id + instruction/discriminator quand disponibles ;
|
||||
3. Demo3 discovery multi-source/multi-target ;
|
||||
4. batch backfill par groupes de signatures ;
|
||||
5. program/signature backfill ciblé si nécessaire ;
|
||||
6. signatures issues des requêtes SQL `instruction_observations`, fallback upstream et decoded-only résiduels.
|
||||
|
||||
Inclure explicitement les transactions failed dans le corpus d'audit, mais ne jamais les matérialiser métier.
|
||||
|
||||
## 6. Sources à comparer
|
||||
|
||||
Comparer au minimum :
|
||||
|
||||
- `idls/meteora_dbc.dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN.json` ;
|
||||
- Carbon `meteora-dbc-decoder` ;
|
||||
- Pinax/Substreams Solana IDLs si disponibles ;
|
||||
- Solana Streamer / sol-parser-sdk si des layouts Meteora DBC y apparaissent ;
|
||||
- code local existant `kb_lib/src/dex/*meteora*` ;
|
||||
- `upstream_registry_generated.rs` ;
|
||||
- corpus SQLite neuf.
|
||||
|
||||
## 7. Matérialisation attendue
|
||||
|
||||
Ne pas se contenter de decoded-only si une matérialisation fiable est possible.
|
||||
|
||||
Cibles probables :
|
||||
|
||||
- swaps exploitables -> `k_sol_trade_events` + candles si montants, sens, mint base/quote et pool/pair sont fiables ;
|
||||
- pool/config/create -> `k_sol_pool_lifecycle_events` et catalog/pool/pair si comptes fiables ;
|
||||
- liquidity/deposit/withdraw -> `k_sol_liquidity_events` si montants et pool fiables ;
|
||||
- migration -> lifecycle/admin selon sémantique exacte ;
|
||||
- fees/creator fees/admin/config -> `k_sol_fee_events` ou `k_sol_pool_admin_events` ;
|
||||
- events sans contexte suffisant -> decoded-only/audit-only avec skip reason.
|
||||
|
||||
Transactions failed : decoded-only/audit-only, jamais business matérialisées.
|
||||
|
||||
## 8. SQL de validation attendu
|
||||
|
||||
Créer :
|
||||
|
||||
```text
|
||||
validation_sql/SQL_VALIDATION_METEORA_DBC_0_7_56.sql
|
||||
```
|
||||
|
||||
Requêtes minimales :
|
||||
|
||||
1. upstream fallback samples `meteora_dbc` ;
|
||||
2. local instruction observations `meteora_dbc` ;
|
||||
3. coverage `meteora_dbc` ;
|
||||
4. decoded events `meteora_dbc` sans coverage ;
|
||||
5. residual upstream fallback pour entrées couvertes ;
|
||||
6. successful non-materialized sans skip reason ;
|
||||
7. failed transaction materialization safety ;
|
||||
8. multi-target materialization safety ;
|
||||
9. materialization summary par table, avec colonnes successful/failed ;
|
||||
10. instruction observation versus coverage ;
|
||||
11. anti-faux trade/candle pour events non swap ;
|
||||
12. global watchlist après replay.
|
||||
|
||||
## 9. Invariants de fermeture
|
||||
|
||||
La tranche `0.7.56` ne doit être considérée close que si :
|
||||
|
||||
- aucun fallback `upstream_git` `meteora_dbc` ne reste pour les entrées couvertes localement ;
|
||||
- aucun decoded event `meteora_dbc` local sans coverage ;
|
||||
- aucune transaction failed n'alimente une table métier ;
|
||||
- aucun event multi-target incohérent ;
|
||||
- aucune ligne successful non-materialized sans `skip*Reason` ;
|
||||
- aucun faux trade/candle sur event non swap ;
|
||||
- toutes les instructions/events de l'IDL locale sont soit décodés/matérialisés, soit audit-only, soit non observés mais couverts par tests synthétiques ;
|
||||
- la watchlist globale ne contient plus de `meteora_dbc` comme backlog dominant.
|
||||
|
||||
## 10. Documentation à mettre à jour en fin de tranche
|
||||
|
||||
Mettre à jour :
|
||||
|
||||
- `CHANGELOG.md` ;
|
||||
- `README.md` ;
|
||||
- `ROADMAP.md` ;
|
||||
- `docs/DEX_DECODER_MATRIX.md` ;
|
||||
- `docs/DEX_EVENT_COVERAGE_MATRIX.md` ;
|
||||
- créer `docs/reports/METEORA_DBC_EVENT_COVERAGE_REPORT.md` ;
|
||||
- créer `validation_sql/SQL_VALIDATION_METEORA_DBC_0_7_56.sql`.
|
||||
|
||||
## 11. Format de livraison attendu
|
||||
|
||||
Fournir un delta zip contenant uniquement les fichiers modifiés/ajoutés.
|
||||
|
||||
Nom recommandé :
|
||||
|
||||
```text
|
||||
khadhroony-bobobot-v0.7.56-meteora_dbc-delta-N-files.zip
|
||||
```
|
||||
|
||||
Inclure dans chaque livraison : résumé des changements, liste exacte des fichiers modifiés, commandes `cargo fmt`, `cargo test -p kb_lib`, `cargo clippy -p kb_lib --all-targets -- -D warnings`, replay recommandé, SQL à exécuter et résultats attendus.
|
||||
Reference in New Issue
Block a user