v0.1.0-pre.012

This commit is contained in:
2026-07-24 15:59:00 +02:00
parent 60660ca555
commit e753a80c3a
179 changed files with 5653 additions and 10813 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: kb-lib/README.md -->
<!-- version: 8 -->
<!-- version: 9 -->
# kb-lib
@@ -88,9 +88,8 @@ discriminateurs `0..=57`, conserve les arguments Borsh, les comptes positionnels
les placeholders optionnels, les chemins outer/CPI et les transactions échouées
comme intentions non commitées.
Le module public
`kb_lib::decoder::metadata::metaplex_token_metadata` expose aussi les parseurs
bornés des 15 variantes `Key 0..=14` : Metadata, Edition et Master Edition,
La façade `kb_lib` expose aussi les parseurs bornés des 15 variantes
`Key 0..=14` : Metadata, Edition et Master Edition,
Edition Marker V1/V2, Token Record, records de délégation et dautorité, Token
Owned Escrow et Reservation List historiques. Chaque parseur vérifie lowner,
le PDA, le bump, la longueur et les suffixes avant projection. Les comptes
@@ -111,7 +110,8 @@ politique dexécution définitivement interdite. La matrice normative est
- `DcToken2022State`, `DcToken2022StateKind`, `DcToken2022TlvEntry` et `decoder_spl_token2022_token2022_state()` : API publique de lecture détat Token2022 ;
- `DcSplElgamalRegistryDecoder`, `DcSplElGamalRegistryState` et `decoder_spl_elgamal_registry_parse_elgamal_registry_state()` : API publique du registre ElGamal ;
- `DcMetadataMetaplexTokenMetadataDecoder` : décodeur exact du programme Metaplex Token Metadata ;
- `kb_lib::decoder::metadata::metaplex_token_metadata` : parseurs et snapshots publics des comptes Metaplex ;
- les fonctions `decoder_metadata_metaplex_token_metadata_*` et les types `DcMetadataMtm*` : parseurs et snapshots publics des comptes Metaplex ;
- les 98 types réservés `Dc*Decoder` : squelettes compatibles avec `DcApiProtocolDecoder`, exposant 97 Program IDs enregistrés et la frontière générique Anchor sans Program ID ;
- `DcApiInstructionDecoder` : contrat de reconnaissance, couverture et décodage contextualisé ;
- `DcApiProtocolDecoder` : contrat de compatibilité avec les observations historiques ;
- `MdCoreInstructionReplayInput` : input source-neutral produit par lextraction core ;
@@ -123,11 +123,11 @@ Les helpers, constantes wire et types intermédiaires de chaque composant resten
## Exemple
```rust
let decoder = kb_lib::SolanaCoreDecoder;
let recognition = kb_lib::InstructionDecoder::recognize(&decoder, &input);
let decoder = kb_lib::DcSolanaCoreDecoder;
let recognition = kb_lib::DcApiInstructionDecoder::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.
Lappel de décodage complet utilise `DcApiInstructionDecoder::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
@@ -135,4 +135,5 @@ Lappel de décodage complet utilise `InstructionDecoder::decode` après une r
- 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.
- Un matérialiseur externe dépend uniquement des contrats et modèles publics de `kb-lib`, jamais dun décodeur concret.
- Les autres matérialisateurs et les exécuteurs sont portés dans des tranches séparées.
- Les squelettes réservés répondent uniquement `Maybe` pour leur Program ID et retournent une liste vide ; ils ne prétendent pas décoder une surface avant son port fonctionnel.
- Les exécuteurs sont portés dans des tranches séparées.