v0.4.8-pre.005

This commit is contained in:
2026-08-05 19:36:17 +02:00
parent 4c13d7ac54
commit 4187643148
18 changed files with 2448 additions and 169 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: kb-lib/USAGE.md -->
<!-- version: 10 -->
<!-- version: 11 -->
# Utilisation de kb-lib
@@ -51,7 +51,8 @@ Décodeurs fonctionnels principaux :
- `DcSplAssociatedTokenAccountDecoder` ;
- `DcSplToken2022Decoder` ;
- `DcSplElgamalRegistryDecoder` ;
- `DcMetadataMetaplexTokenMetadataDecoder`.
- `DcMetadataMetaplexTokenMetadataDecoder` ;
- `DcMetadataSolanaProgramMetadataDecoder`.
Les types réservés `Dc*Decoder` ne doivent pas être interprétés comme des décodeurs complets : ils publient une compatibilité conservatrice et aucune observation fonctionnelle.
@@ -82,7 +83,7 @@ println!("parsed registry state: {registry:#?}");
Les parseurs vérifient les bornes et formats quils annoncent. Ils ne reconstruisent pas un état historique depuis un RPC courant.
## Modèles et comptes Solana Program Metadata
## Modèles, comptes et instructions Solana Program Metadata
Les modèles `DcMetadataSpm*` représentent uniquement le contrat on-chain du programme `ProgM6JCCvbYkfKqJYHePx4xxSUSqJp7rh8Lyv7nk7S`. Ils ne téléchargent jamais les URL et ne lisent pas automatiquement les comptes référencés par `External`.
@@ -138,7 +139,19 @@ match snapshot {
Une URL est seulement décodée comme chaîne UTF-8 on-chain. Aucune requête HTTP, IPFS ou Arweave nest effectuée. Une référence `External` est seulement décodée en adresse, offset et longueur zeroable ; le compte référencé nest pas lu.
Le décodeur de protocole `DcMetadataSolanaProgramMetadataDecoder` reste réservé aux instructions. Les comptes constituent désormais un contrat public stable pour les futurs matérialisateurs, builders et parcours stateful.
Le décodeur `DcMetadataSolanaProgramMetadataDecoder` reconnaît le Program ID `ProgM6…` et les neuf tags stables `0..8`. Il conserve les différences utiles entre le wire SDK et le runtime actuel, sans interpréter un suffixe ignoré comme un nouvel argument.
```rust
let decoder = kb_lib::DcMetadataSolanaProgramMetadataDecoder;
let recognition = kb_lib::DcApiInstructionDecoder::recognize(&decoder, &input);
if !recognition.compatible {
return std::result::Result::Err("instruction incompatible".to_string());
}
let result = kb_lib::DcApiInstructionDecoder::decode(&decoder, &input);
println!("status={:?}", result.status);
```
Le tag `5` est toujours publié comme `trim`. Son ancien nom pré-stable `withdraw_excess_lamports` est conservé uniquement comme provenance, car aucune release stable ne lexpose comme instruction distincte. Les URL et références externes restent des données on-chain ; le décodeur ne réalise aucun fetch.
## Comptes Metaplex Token Metadata