0.1.0-pre.004

This commit is contained in:
2026-07-23 18:25:10 +02:00
parent 0da75c1311
commit 149d4c6ef6
85 changed files with 25696 additions and 227 deletions

51
kb-lib/README.md Normal file
View File

@@ -0,0 +1,51 @@
<!-- file: kb-lib/README.md -->
<!-- version: 1 -->
# kb-lib
`kb-lib` regroupe les modèles partagés et les composants de décodage, matérialisation et exécution de `khadhroony-bot3`. Les composants restent séparés par modules privés et sont exposés par la façade unique `kb-lib/src/lib.rs`.
## Décodeur Solana Core
`SolanaCoreDecoder` est le premier décodeur concret porté depuis bot2. Il implémente `InstructionDecoder` et `ProtocolDecoder` sans dépendre de PostgreSQL, du RPC, de Tauri ou du wallet.
Il couvre les 18 surfaces natives suivantes :
- System Program ;
- Compute Budget ;
- Address Lookup Table ;
- Config et Feature Gate ;
- Vote et Stake ;
- loaders natifs, BPF historiques, upgradeable et Loader v4 ;
- précompiles Ed25519, secp256k1 et secp256r1 ;
- Slashing ;
- ZK ElGamal Proof et lancien ZK Token Proof.
La matrice `docs/NATIVE_SOLANA_DECODER_MATRIX.json` reste la source machine-readable de la couverture. Les instructions inconnues, tronquées, historiques ou issues dune transaction échouée conservent les statuts et diagnostics explicites définis par les contrats communs.
## API publique utile
- `SolanaCoreDecoder` : décodeur concret natif ;
- `InstructionDecoder` : contrat de reconnaissance, couverture et décodage contextualisé ;
- `ProtocolDecoder` : contrat de compatibilité avec les observations historiques ;
- `CoreInstructionReplayInput` : input source-neutral produit par lextraction core ;
- `DecoderExecutionResult`, `DecoderRecognition` et `DecoderCoverageDeclaration` : résultats typés du pipeline ;
- modèles canoniques et nomenclature réexportés depuis la façade.
Les helpers, constantes wire et types intermédiaires de chaque composant restent internes. Leurs noms sont préfixés au niveau de la façade interne afin déviter les collisions lors de la fusion des anciens crates.
## Exemple
```rust
let decoder = kb_lib::SolanaCoreDecoder;
let recognition = kb_lib::InstructionDecoder::recognize(&decoder, &input);
```
Lappel de décodage complet utilise `InstructionDecoder::decode` après une reconnaissance compatible. Le pipeline demeure responsable de la sélection du décodeur et de la persistance du résultat.
## Frontières
- `kb-lib` ne dépend jamais de `kb-store`.
- Les décodeurs ne lisent pas un état RPC courant pour reconstruire une transaction historique.
- Une transaction échouée peut produire une intention structurée, jamais une mutation commitée.
- Les matérialisateurs et exécuteurs seront portés dans des tranches séparées.