0.7.50
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
<!-- file: docs/prompts/PROMPT_REPRISE_khadhroony-bobobot_0.7.51-raydium-amm-v4.md -->
|
||||
|
||||
# Prompt de reprise — khadhroony-bobobot `0.7.51` / Raydium AMM v4 event coverage
|
||||
|
||||
Reprise du projet `khadhroony-bobobot` après clôture de `0.7.50 raydium_launchpad` et re-vérification finale CPMM/CLMM.
|
||||
|
||||
## Archive de départ
|
||||
|
||||
Utiliser la dernière archive complète du workspace intégrant les deltas validés jusqu'à :
|
||||
|
||||
0.7.50-raydium-launchpad-final
|
||||
|
||||
Joindre aussi les docs et SQL de validation à jour :
|
||||
|
||||
```text
|
||||
README.md
|
||||
ROADMAP.md
|
||||
CHANGELOG.md
|
||||
docs/DEX_DECODER_MATRIX.md
|
||||
docs/DEX_EVENT_COVERAGE_MATRIX.md
|
||||
docs/DB_EVENT_MODEL_REVIEW.md
|
||||
docs/reports/RAYDIUM_LAUNCHPAD_EVENT_COVERAGE_REPORT.md
|
||||
validation_sql/SQL_VALIDATION_RAYDIUM_LAUNCHPAD_0_7_50.sql
|
||||
validation_sql/SQL_VALIDATION_RAYDIUM_CPMM_AUDIT_CLEANUP_0_7_50_FINAL.sql
|
||||
validation_sql/SQL_VALIDATION_RAYDIUM_CPMM_0_7_50_RECHECK.sql
|
||||
validation_sql/SQL_VALIDATION_RAYDIUM_CLMM_0_7_50_RECHECK.sql
|
||||
```
|
||||
|
||||
## État validé avant reprise
|
||||
|
||||
`0.7.50` a clôturé `raydium_launchpad` et consolidé les rechecks CPMM/CLMM.
|
||||
|
||||
Dernier replay local rapporté avant clôture :
|
||||
|
||||
```text
|
||||
1103 replayed
|
||||
0 decode skipped
|
||||
1124 ledger upserts
|
||||
542 unsafe ledger rows
|
||||
561 trades
|
||||
50 liquidity
|
||||
13 lifecycle
|
||||
0 tokenAccount
|
||||
2224 candle upserts
|
||||
instructionObservations = 7013
|
||||
resetDeleted = 1182
|
||||
```
|
||||
|
||||
Points de clôture à préserver :
|
||||
|
||||
```text
|
||||
raydium_launchpad : surface canonique, program id LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj
|
||||
Launchpad trade_event matérialisé seulement quand corpus + successful tx le prouvent
|
||||
Launchpad initialize* fournit le catalogue pool/pair, pas de faux trade/candle
|
||||
CPMM 40f4bc78a7e9690a est raydium_cpmm.anchor_idl_instruction decoded-only
|
||||
CPMM residual raydium_cpmm.instruction_audit 40f4bc78a7e9690a doit être nettoyé après replay final
|
||||
CLMM residual instruction_audit / upstream fallback doivent rester vides
|
||||
k_sol_instruction_observations reste une table technique, pas une table métier
|
||||
Solscan instruction=<discriminator> est une aide de découverte, pas une preuve métier
|
||||
```
|
||||
|
||||
Requête CPMM post-fix obligatoire :
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
json_extract(payload_json, '$.discriminatorHex') AS discriminator_hex,
|
||||
COUNT(*) AS audit_count,
|
||||
COUNT(DISTINCT transaction_id) AS tx_count
|
||||
FROM k_sol_dex_decoded_events
|
||||
WHERE protocol_name = 'raydium_cpmm'
|
||||
AND event_kind = 'raydium_cpmm.instruction_audit'
|
||||
GROUP BY discriminator_hex
|
||||
ORDER BY audit_count DESC, discriminator_hex;
|
||||
```
|
||||
|
||||
Cette requête doit être vide après replay `forceDexDecode=yes`.
|
||||
|
||||
## Objectif `0.7.51` — `raydium_amm_v4`
|
||||
|
||||
Reprendre Raydium AMM v4 legacy au même niveau de couverture que CPMM/CLMM :
|
||||
|
||||
```text
|
||||
swaps
|
||||
pool lifecycle / pool_create
|
||||
add_liquidity / remove_liquidity
|
||||
fees / admin/config
|
||||
side effects SPL Token / Token-2022 documentés mais non promus comme raydium_amm_v4.* directs
|
||||
fallback instruction_audit nettoyé quand une entrée locale spécialisée couvre l'instruction
|
||||
coverage entries synchronisées et rafraîchies
|
||||
```
|
||||
|
||||
Code local canonique :
|
||||
|
||||
```text
|
||||
raydium_amm_v4
|
||||
```
|
||||
|
||||
Program id canonique connu :
|
||||
|
||||
```text
|
||||
675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8
|
||||
```
|
||||
|
||||
Solscan Program IDL / recherche par instruction :
|
||||
|
||||
```text
|
||||
https://solscan.io/account/675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8#programIdl
|
||||
https://solscan.io/account/675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8?instruction=<DISCRIMINATOR>&hide_spam=true&hide_failed=true&show_related=false&sort=desc
|
||||
```
|
||||
|
||||
## Sources Git/IDL à utiliser systématiquement
|
||||
|
||||
```text
|
||||
https://github.com/sevenlabs-hq/carbon/tree/main/decoders
|
||||
https://github.com/0xfnzero/solana-streamer
|
||||
https://github.com/0xfnzero/sol-parser-sdk/tree/main/idl
|
||||
https://github.com/pinax-network/substreams-solana-idls/tree/main/src
|
||||
https://github.com/hodlwarden/solana-tx-parser/tree/main/src
|
||||
https://docs.vybenetwork.com/docs/available-dexs-amms
|
||||
```
|
||||
|
||||
Pour AMM v4, vérifier aussi les IDL/JSON Raydium legacy présents dans fnzero, notamment les fichiers autour de `raydium_amm_v4` / `raydium_pool_v4`, sans promouvoir `raydium_pool_v4` tant que son program id et son rôle métier ne sont pas prouvés localement.
|
||||
|
||||
## Règles fixes
|
||||
|
||||
```text
|
||||
Rust 2024
|
||||
pas de mod.rs
|
||||
fichiers Rust avec // file: ...
|
||||
pas de anyhow
|
||||
pas de thiserror
|
||||
pas de ? / unwrap / expect dans kb_lib applicatif
|
||||
match / if let Err / let Err = ... else
|
||||
rustdoc sur API publique
|
||||
re-exports db.rs puis lib.rs si DB modifiée
|
||||
```
|
||||
|
||||
## Invariants métier
|
||||
|
||||
```text
|
||||
non-trade event = jamais trade/candle
|
||||
failed transaction = audit-only / jamais matérialisée métier
|
||||
upstream Git/IDL/Solscan = indice, pas preuve métier
|
||||
program id upstream non promu sans corpus local
|
||||
side effects SPL Token / Token-2022 restent transversaux sauf preuve multi-DEX et décision DB
|
||||
instruction_audit et upstream_git.instruction_match doivent être nettoyés quand une entrée locale spécialisée couvre le discriminant
|
||||
```
|
||||
|
||||
## Workflow conseillé
|
||||
|
||||
1. Créer une nouvelle base SQLite dédiée `0.7.51`.
|
||||
2. Inventorier Carbon/fnzero/Pinax/Solscan Program IDL pour `raydium_amm_v4`.
|
||||
3. Synchroniser `k_sol_dex_event_coverage_entries` avec `decoder_code = raydium_amm_v4`.
|
||||
4. Utiliser Solscan `instruction=<discriminator>` pour obtenir rapidement des signatures non failed.
|
||||
5. Backfill Demo2 signature/pool.
|
||||
6. Replay local avec :
|
||||
|
||||
```text
|
||||
skipDexDecode = no
|
||||
forceDexDecode = yes
|
||||
deferInstructionObservations = yes
|
||||
```
|
||||
|
||||
7. Vérifier :
|
||||
|
||||
```text
|
||||
coverage listed/observed/materialized
|
||||
residual instruction_audit
|
||||
residual upstream_git.instruction_match
|
||||
failed tx materialization = 0
|
||||
non-trade trade_count = 0
|
||||
trade/candle only for swap events validés
|
||||
```
|
||||
|
||||
## Livrables attendus
|
||||
|
||||
```text
|
||||
archive delta fichiers modifiés/ajoutés
|
||||
README.md / ROADMAP.md / CHANGELOG.md mis à jour
|
||||
docs/DEX_DECODER_MATRIX.md
|
||||
docs/DEX_EVENT_COVERAGE_MATRIX.md
|
||||
docs/DB_EVENT_MODEL_REVIEW.md
|
||||
docs/reports/RAYDIUM_AMM_V4_EVENT_COVERAGE_REPORT.md
|
||||
validation_sql/SQL_VALIDATION_RAYDIUM_AMM_V4_0_7_51.sql
|
||||
```
|
||||
|
||||
Validation finale locale :
|
||||
|
||||
```bash
|
||||
cargo fmt
|
||||
cargo test -p kb_lib
|
||||
cargo clippy -p kb_lib --all-targets -- -D warnings
|
||||
```
|
||||
Reference in New Issue
Block a user