v0.4.8-pre.005
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
<!-- file: docs/plans/V0_4_8_SOLANA_PROGRAM_METADATA_AND_TOKEN_2022_COMPLETENESS_PLAN.md -->
|
||||
<!-- version: 4 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# 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`, réconcilié après l’audit 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 l’audit du code, des interfaces officielles, de l’IDL ou des validations Devnet impose un ajustement.
|
||||
Ce document est le livrable principal de `0.4.8-pre.001`, réconcilié après l’audit contractuel de `0.4.8-pre.002`, les modèles de `pre.003`, les décodeurs de comptes de `pre.004` et le décodeur d’instructions de `pre.005`. Il constitue le plan vivant de la version et reste modifiable lorsque l’audit du code, des interfaces officielles, de l’IDL 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é à l’horizon `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é à l’horizon `0.15+` |
|
||||
|
||||
Aucun décodeur Token-2022 existant n’est un décodeur partiel de `ProgM6…`. Les deux contrats doivent conserver des namespaces, modèles, matrices, tests et scénarios distincts.
|
||||
|
||||
@@ -208,7 +208,7 @@ Validation définitive reçue le 5 août 2026 :
|
||||
- `python3 scripts/audit_rust_workspace_rules.py` : propre ;
|
||||
- `cargo test -p kb-lib` : 647 tests unitaires, cinq tests d’intégration et les doc-tests réussis.
|
||||
|
||||
### `0.4.8-pre.004` — décodeur de comptes Solana Program Metadata — terminé côté delta
|
||||
### `0.4.8-pre.004` — décodeur de comptes Solana Program Metadata — terminé
|
||||
|
||||
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 n’est résolue.
|
||||
|
||||
@@ -219,12 +219,20 @@ Résultat durable : `kb-lib` expose des snapshots et parseurs bornés pour `Buff
|
||||
- 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 l’environnement du projet avant validation définitive.
|
||||
Validation définitive reçue le 5 août 2026 : `cargo fmt --all`, `cargo check --workspace`, `cargo clippy --all-targets` et l’audit workspace sont propres ; `cargo test -p kb-lib` réussit avec 653 tests unitaires, six tests d’intégration et les doc-tests.
|
||||
|
||||
### `0.4.8-pre.005` — décodeur d’instructions Solana Program Metadata
|
||||
### `0.4.8-pre.005` — décodeur d’instructions Solana Program Metadata — terminé côté delta
|
||||
|
||||
- neuf instructions confirmées ;
|
||||
- comptes, signataires, arguments, échecs et instructions internes/externes.
|
||||
Résultat durable : les releases stables `program@v1.0.0` et `program@v1.0.1` exposent exactement neuf discriminants `0..8`. Le tag `5`, nommé `WithdrawExcessLamports` pendant une phase pré-stable, est couvert uniquement comme `Trim` et conserve cet ancien nom comme provenance. Les variantes runtime actuelles qui dépassent l’IDL sont explicitement préservées.
|
||||
|
||||
- neuf instructions stables confirmées et activées ;
|
||||
- comptes, signataires, flags writable, arguments, échecs et instructions internes/externes ;
|
||||
- sélection exclusive des sources inline ou Buffer ;
|
||||
- distinction entre longueurs de comptes exactes et comptes restants acceptés par le runtime ;
|
||||
- matrice contractuelle et audit historique dédiés ;
|
||||
- tests synthétiques et test de façade publique.
|
||||
|
||||
Critère atteint côté delta : inventaire stable et historique fermé, décodeur fail-closed et frontières off-chain conservées ; compilation, Clippy et tests Rust restent à exécuter dans l’environnement du projet avant validation définitive.
|
||||
|
||||
### `0.4.8-pre.006` — matérialisation Solana Program Metadata
|
||||
|
||||
|
||||
Reference in New Issue
Block a user