v0.1.0-pre.012
This commit is contained in:
@@ -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 d’autorité, Token
|
||||
Owned Escrow et Reservation List historiques. Chaque parseur vérifie l’owner,
|
||||
le PDA, le bump, la longueur et les suffixes avant projection. Les comptes
|
||||
@@ -111,7 +110,8 @@ politique d’exécution définitivement interdite. La matrice normative est
|
||||
- `DcToken2022State`, `DcToken2022StateKind`, `DcToken2022TlvEntry` et `decoder_spl_token2022_token2022_state()` : API publique de lecture d’état Token‑2022 ;
|
||||
- `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 l’extraction 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);
|
||||
```
|
||||
|
||||
L’appel 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.
|
||||
L’appel 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 @@ L’appel 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 d’un 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.
|
||||
|
||||
Reference in New Issue
Block a user