# Prompt de reprise — khadhroony-bobobot `0.7.47-1FE5` Reprise du projet `khadhroony-bobobot`. ## Archive de départ Utiliser comme base de travail : ```text kb_lib-v0.7.47-1FE5-full.zip ``` Joindre aussi les docs mises à jour : ```text README.md ROADMAP.md CHANGELOG.md DEX_DECODER_MATRIX.md ``` ## Décision de planification Ne plus tenter “tous les events de tous les decoders” dans une seule session. L’objectif reste de couvrir tous les decoders disponibles dans Carbon et les sources Git/IDL, mais par tranches DEX/version. Ordre cible : ```text raydium_cpmm raydium_clmm pump_swap pump_fun meteora_dbc meteora_dlmm meteora_damm_v1 meteora_damm_v2 phoenix_v1 openbook_v2 orca_whirlpools launch surfaces DEX historiques / candidats ``` ## Sources upstream obligatoires Ces sources sont des indices de décodage, pas des preuves de validation locale : ```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://github.com/openbook-dex/openbook-v2 https://github.com/all-in-one-blockchain/phoenix-onchain-mm https://docs.vybenetwork.com/docs/available-dexs-amms ``` ## État validé Dernier état validé côté `kb_lib` : ```text cargo test -p kb_lib 371 passed ``` Clippy doit être relancé à chaque tranche : ```bash cargo clippy -p kb_lib --all-targets -- -D warnings ``` ## 0.7.47 acquis - Upstream Git Registry ajouté. - Demo3 étendu : multi-target, multi-source, pagination, orderbook targets, burn/mint/transfer/wrap/unwrap/stake. - Demo2 backfill signature fonctionnel. - Replay local avec ledger. - OpenBook v2 decoder audit-only. - Phoenix v1 decoder audit-only. - Les decoders audit-only ne produisent aucun trade/candle. ## OpenBook v2 Program id : ```text opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb ``` État : ```text audit-only local decoder upstream_git fallback cleaned Program data mapped: - FillLog - OpenOrdersPositionLog - TotalOrderFillEvent - SettleFundsLog trade_count = 0 ``` Ne pas activer de trade/candle tant que maker/taker/base/quote et les lots ne sont pas validés. ## Phoenix v1 Program id : ```text PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY ``` État : ```text audit-only local decoder log instruction strict 0x0f events observed: - Reduce - Place - TimeInForce currentInstructionTag mappings: - 0x09 CancelUpToWithFreeFunds - 0x0c WithdrawFunds - 0x10 PlaceMultiplePostOnlyOrders trade_count = 0 ``` Prochaine action préférée : finir Phoenix v1 avec tous les events disponibles dans les sources Git/IDL, mais rester audit-only jusqu’à validation économique. ## Contraintes - Rust 2024. - Pas de `mod.rs`. - Fichiers Rust avec entête `// file: ...`. - Exposition centralisée via `lib.rs`. - `#![deny(unreachable_pub)]`, `#![warn(missing_docs)]`. - Pas de `anyhow`. - Pas de `thiserror`. - Pas de `?`, `unwrap`, `expect` dans le code applicatif. - Utiliser `match`, `if let Err`, `let Err = ... else`. - Si une requête DB est ajoutée/modifiée, mettre à jour `kb_lib/src/db.rs`, puis `kb_lib/src/lib.rs` si nécessaire. ## Méthode par DEX/version Pour chaque DEX/version : 1. inspecter Carbon + autres sources Git/IDL ; 2. lister tous les discriminants instructions/events ; 3. compléter `upstream_registry` / matrice si nécessaire ; 4. utiliser Demo3 pour corpus ; 5. backfill Demo2 ; 6. replay forcé ; 7. valider SQL ; 8. ajouter decoder audit-only ou materialized selon preuve ; 9. supprimer les doublons `upstream_git.instruction_match` si decoder spécialisé ; 10. ne jamais produire trade/candle sans montants exploitables et sens économique validé. ## Requêtes de sécurité audit-only ```sql SELECT de.protocol_name, de.event_kind, COUNT(te.id) AS trade_count FROM k_sol_dex_decoded_events de LEFT JOIN k_sol_trade_events te ON te.decoded_event_id = de.id WHERE de.protocol_name IN ('openbook_v2', 'phoenix_v1') GROUP BY de.protocol_name, de.event_kind ORDER BY trade_count DESC; ``` Attendu : ```text trade_count = 0 ``` ## Livrable attendu Pour chaque tranche : - fichiers ajoutés/modifiés seulement ; - archive zip ; - commandes de test ; - requêtes SQL ; - notes sur ce qui reste non vérifié ; - ne pas prétendre qu’un event ou program id est vérifié sans corpus local.