v0.4.8-pre.004

This commit is contained in:
2026-08-05 17:46:56 +02:00
parent de1062b2d3
commit 4c13d7ac54
15 changed files with 1505 additions and 128 deletions

View File

@@ -1,11 +1,11 @@
<!-- file: docs/plans/V0_4_8_SOLANA_PROGRAM_METADATA_AND_TOKEN_2022_COMPLETENESS_PLAN.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Plan `0.4.8` — Solana Program Metadata et complétude Token-2022
## 1. Statut et rôle
Ce document est le livrable principal de `0.4.8-pre.001` et a été réconcilié après laudit contractuel de `0.4.8-pre.002`. Il constitue le plan vivant de la version et reste modifiable lorsque laudit du code, des interfaces officielles, de lIDL ou des validations Devnet impose un ajustement.
Ce document est le livrable principal de `0.4.8-pre.001`, réconcilié après laudit contractuel de `0.4.8-pre.002`, les modèles de `pre.003` et les décodeurs de comptes de `pre.004`. Il constitue le plan vivant de la version et reste modifiable lorsque laudit du code, des interfaces officielles, de lIDL ou des validations Devnet impose un ajustement.
Il doit être maintenu pendant chaque prerelease, puis archivé pendant la dernière prerelease après transfert des décisions durables vers le ROADMAP, les matrices, les guides, les rapports, les TODO et les changelogs concernés.
@@ -15,13 +15,13 @@ Il doit être maintenu pendant chaque prerelease, puis archivé pendant la derni
### 2.1 Surfaces strictement distinctes
| Surface | Program ID ou frontière | Rôle dans `0.4.8` |
|-----------------------------------|--------------------------------------------------------------------|---------------------------------------------------------------------------------|
| Metaplex Token Metadata | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s` | surface clôturée en `0.4.7`, hors développement principal |
| Token-2022 Token Metadata | programme Token-2022 `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | compléter le contrat déjà partiellement pris en charge |
| `spl-token-metadata-interface` | interface sans Program ID autonome imposé | source contractuelle des instructions metadata implémentées par Token-2022 |
| Solana Program Metadata | `ProgM6JCCvbYkfKqJYHePx4xxSUSqJp7rh8Lyv7nk7S` | nouvelle surface on-chain à implémenter sous `metadata/solana_program_metadata` |
| contenu distant HTTP/IPFS/Arweave | transport off-chain indépendant | hors `0.4.8`, reporté à lhorizon `0.15+` |
| Surface | Program ID ou frontière | Rôle dans `0.4.8` |
|---|---|---|
| Metaplex Token Metadata | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s` | surface clôturée en `0.4.7`, hors développement principal |
| Token-2022 Token Metadata | programme Token-2022 `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | compléter le contrat déjà partiellement pris en charge |
| `spl-token-metadata-interface` | interface sans Program ID autonome imposé | source contractuelle des instructions metadata implémentées par Token-2022 |
| Solana Program Metadata | `ProgM6JCCvbYkfKqJYHePx4xxSUSqJp7rh8Lyv7nk7S` | nouvelle surface on-chain à implémenter sous `metadata/solana_program_metadata` |
| contenu distant HTTP/IPFS/Arweave | transport off-chain indépendant | hors `0.4.8`, reporté à lhorizon `0.15+` |
Aucun décodeur Token-2022 existant nest un décodeur partiel de `ProgM6…`. Les deux contrats doivent conserver des namespaces, modèles, matrices, tests et scénarios distincts.
@@ -200,12 +200,26 @@ Résultat durable : la façade `kb-lib` expose les tailles fixes auditées, les
- test dAPI externe depuis la façade `kb_lib` ;
- documentation généraliste de la nouvelle surface publique.
Critère atteint côté delta : modèles et tests statiques livrés ; compilation, Clippy et tests Rust à exécuter dans lenvironnement du projet avant validation définitive.
Validation définitive reçue le 5 août 2026 :
### `0.4.8-pre.004` — décodeur de comptes Solana Program Metadata
- `cargo fmt --all` : terminé ;
- `cargo check --workspace` : terminé ;
- `cargo clippy --all-targets` : terminé après ajout du `return` explicite demandé par le lint dans le test `external.to_wire_bytes().map(...)` ;
- `python3 scripts/audit_rust_workspace_rules.py` : propre ;
- `cargo test -p kb-lib` : 647 tests unitaires, cinq tests dintégration et les doc-tests réussis.
### `0.4.8-pre.004` — décodeur de comptes Solana Program Metadata — terminé côté delta
Résultat durable : `kb-lib` expose des snapshots et parseurs bornés pour `Buffer` et `Metadata`. Le propriétaire, les discriminateurs, les headers, les enums fermées, les longueurs logiques, les sources de données et les PDA metadata sont vérifiés. Les données après `data_length` restent une capacité allouée valide ; les données Buffer occupent tout le reliquat. Aucune URL ni référence externe nest résolue.
- comptes `Buffer` et `Metadata` ;
- discriminateurs, options, données malformées et trailing bytes selon contrat.
- discriminateurs, options zeroable, données malformées et trailing capacity selon contrat ;
- borne maximale de 10 MiB avant toute projection allouante ;
- matrice `test-fixtures/contract-matrices/SOLANA_PROGRAM_METADATA_ACCOUNT_MATRIX.json` ;
- nomenclature IDL réconciliée avec le statut réel des comptes ;
- test de façade publique pour les consommateurs externes.
Critère atteint côté delta : comptes exacts, erreurs fail-closed et politique de trailing bytes documentée ; compilation, Clippy et tests Rust restent à exécuter dans lenvironnement du projet avant validation définitive.
### `0.4.8-pre.005` — décodeur dinstructions Solana Program Metadata