Files
khadhroony-bot3/migration/khadhroony-bot2-reference/kb_model/README.md
2026-07-24 14:23:58 +02:00

33 lines
1.5 KiB
Markdown

<!-- file: kb_model/README.md -->
<!-- version: 4 -->
# kb_model
Ce crate définit les modèles neutres utilisés par l'ingestion, l'extraction, le décodage et la matérialisation.
## Rôle dans l'écosystème
Ce module fait partie du découpage strict de Khadhroony Bot2. Il doit conserver des dépendances limitées et ne pas contourner les interfaces communes du workspace.
## Règles locales
- Les commentaires de code restent en anglais.
- La documentation Markdown reste en français.
- Les exports publics sont contrôlés depuis `lib.rs` lorsque le crate expose une bibliothèque.
- Les binaires utilisent `main.rs` avec les attributs Rust obligatoires.
## Contrat canonique `0.3.2`
Le crate expose maintenant `MdCanonicalTransaction` et les structures associées pour représenter une transaction Solana indépendamment de sa source. Le contrat couvre les transactions legacy et v0, les comptes statiques et chargés par ALT, les instructions externes et internes, les logs, les balances SOL/SPL, les erreurs, rewards, return data, compute units et block time.
La sérialisation canonique :
- utilise des noms de champs stables en camelCase ;
- trie récursivement les clés des objets JSON ;
- conserve signatures et public keys en base58 ;
- conserve les payloads binaires en base64 ;
- conserve les valeurs entières et recalcule localement les montants SPL décimaux à partir du montant brut et des décimales ;
- exclut toute information de provider, endpoint ou transport ;
- calcule `canonical_json_hash` en SHA-256 sur le JSON compact déterministe.