v0.4.8-pre.008

This commit is contained in:
2026-08-06 06:12:54 +02:00
parent 44088c71c9
commit f576fbade2
52 changed files with 3592 additions and 420 deletions

View File

@@ -1,11 +1,11 @@
<!-- file: docs/plans/V0_4_8_SOLANA_PROGRAM_METADATA_AND_TOKEN_2022_COMPLETENESS_PLAN.md -->
<!-- version: 10 -->
<!-- version: 13 -->
# 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 laudit contractuel de `0.4.8-pre.002`, les modèles de `pre.003`, les décodeurs de comptes de `pre.004`, le décodeur dinstructions de `pre.005`, la matérialisation de `pre.006` et lexécuteur de `pre.007`. 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`, les décodeurs de comptes de `pre.004`, le décodeur dinstructions de `pre.005`, la matérialisation de `pre.006`, lexécuteur de `pre.007` et lorchestration généraliste de `pre.008`. 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.
@@ -274,23 +274,37 @@ Résultat durable : les neuf instructions stables possèdent une opération typ
- aucune opération stable classée deprecated ou replaced faute de preuve officielle ;
- financement de rent volontairement laissé à la fixture et à lorchestration RPC : le programme exige que les comptes à allouer ou étendre soient préfinancés.
Travaux parallèles intégrés : les fonctions de matérialisation Metaplex existaient déjà dans `materializer/metadata/core.rs`; il ne sagissait donc pas dun oubli fonctionnel de `0.4.6/0.4.7`. Elles sont déplacées dans un sous-module dédié sans changement de clé métier. Token-2022 reçoit également son composant state-only dédié. Laudit est ensuite étendu à lensemble de `src/materializer` : 25 identités sont harmonisées, les façades deviennent pures, les implémentations utilisent `materializer.rs`, les constantes sont centralisées et les coquilles réservées ne produisent plus de faux événements legacy. Les constats sont consignés dans `docs/audits/V0_4_8_PRE_007_METAPLEX_MATERIALIZER_STRUCTURE_AUDIT.md` et `docs/audits/V0_4_8_PRE_007_MATERIALIZER_CONVENTION_AUDIT.md`. Un audit transversal de toutes les surfaces déjà livrées est planifié en `0.5.x` pour vérifier les règles de décodage exhaustif, propriété de matérialisation, exécution des opérations dangereuses via `ExSafetyChecker`, dépréciation officielle et versions remplacées decode-only.
Travaux parallèles intégrés : les fonctions de matérialisation Metaplex existaient déjà dans `materializer/metadata/core.rs`; il ne sagissait donc pas dun oubli fonctionnel de `0.4.6/0.4.7`. Elles sont déplacées dans un sous-module dédié sans changement de clé métier. Token-2022 reçoit également son composant dédié de snapshots, puis `pre.008` ajoute son matérialiseur instructionnel spécialisé ainsi que celui de Metaplex. Laudit est ensuite étendu à lensemble de `src/materializer` : 25 identités sont harmonisées, les façades deviennent pures, les implémentations utilisent `materializer.rs`, les constantes sont centralisées et les coquilles réservées ne produisent plus de faux événements legacy. Les constats sont consignés dans `docs/audits/V0_4_8_PRE_007_METAPLEX_MATERIALIZER_STRUCTURE_AUDIT.md` et `docs/audits/V0_4_8_PRE_007_MATERIALIZER_CONVENTION_AUDIT.md`. Un audit transversal de toutes les surfaces déjà livrées est planifié en `0.5.x` pour vérifier les règles de décodage exhaustif, propriété de matérialisation, exécution des opérations dangereuses via `ExSafetyChecker`, dépréciation officielle et versions remplacées decode-only.
### `0.4.8-pre.008` — pipeline stateful Solana Program Metadata
### `0.4.8-pre.008` — pipeline stateful Solana Program Metadata — code terminé, replay historique à revalider
- simulation, soumission, confirmation, lectures avant/après, postconditions, replay et matérialisation.
- lectures RPC bornées des comptes absents, non initialisés, `Buffer` et `Metadata` ;
- décodage et matérialisation autoritative des états via `kb-lib` ;
- préflight des neuf opérations, vérification des sources Buffer, autorités, canonicité et preuves de rent ;
- passage par `ExSafetyChecker`, readiness simulation-first, résolution des signers et autorisation de soumission ;
- postconditions avant/après des neuf opérations, sans succès inventé lorsquune lecture manque ;
- matrice pipeline machine-readable ;
- enregistrement du décodeur et des trois matérialiseurs metadata spécialisés dans le replay générique desktop pour le futur test `demo_backfill` ;
- nomenclature interne `metadata_*`, `spl_*` et `solana_*` alignée sur les domaines de `kb-lib` ;
- aucune modification de `kb-pipeline-demo-scenarios` ni de `demo_execution_metadata`.
- audit consigné dans `docs/audits/V0_4_8_PRE_008_METADATA_SOLANA_PROGRAM_PIPELINE_AUDIT.md`.
- première campagne historique : 200 transactions importées, 582 instructions rejouées et 132 instructions `ProgM6…` reconnues ; toutes ont été rejetées à tort parce que le décodeur comparait les privilèges globaux du message par égalité avec les minima de linstruction ;
- `pre.008-fix-002` remplace cette égalité par une validation de minima et ajoute une régression sur les neuf instructions ; la campagne des 132 entrées doit être rejouée avant douvrir `pre.009`.
### `0.4.8-pre.009` — campagne Devnet Solana Program Metadata
### `0.4.8-pre.009` — campagne Devnet et desktop Solana Program Metadata
- fixture Rust native ;
- scénarios réutilisables ;
- fixture Rust native et comptes préfinancés ;
- scénarios réutilisables dans `kb-pipeline-demo-scenarios` ;
- appels RPC de simulation, soumission, confirmation, lectures avant/après et replay ;
- adaptation du sous-panneau `ProgM6…` de `demo_execution_metadata` pour consommer les runners réutilisables ;
- validation historique préalable via `demo_backfill`, Core extraction et decode replay sur un échantillon de signatures ;
- preuves RPC et rapport intermédiaire.
### `0.4.8-pre.010` — complétude Token-2022 Token Metadata
- implémentation des écarts confirmés de `Initialize`, `UpdateField`, `RemoveKey`, `UpdateAuthority` et `Emit` ;
- conservation du matérialiseur détat dédié `metadata/token_2022/` pour les extensions `TokenMetadata`, `TokenGroup` et `TokenGroupMember` ;
- ajout dune matérialisation explicite des cinq observations dinstructions `spl-token-metadata-interface`, actuellement absente ;
- fermeture des écarts dintents/builders/exécution confirmés pour `UpdateAuthority` et `Emit`, après réaudit des cinq instructions `Initialize`, `UpdateField`, `RemoveKey`, `UpdateAuthority` et `Emit` ;
- conservation des snapshots dédiés `metadata/token_2022/` pour `TokenMetadata`, `TokenGroup` et `TokenGroupMember` ;
- validation de la matérialisation instructionnelle spécialisée déjà ajoutée en `pre.008` pour les interfaces Token Metadata et Token Group ;
- maintien de `InitializeMetadataPointer` et `UpdateMetadataPointer` dans le matérialiseur dadministration qui en possède déjà les faits ;
- tests synthétiques et stateful.
@@ -299,11 +313,12 @@ Travaux parallèles intégrés : les fonctions de matérialisation Metaplex exis
- fixture mint ;
- simulations, soumissions sûres, confirmations, postconditions, replay et matérialisation.
### `0.4.8-pre.012` — desktop metadata
### `0.4.8-pre.012` — finalisation desktop metadata
- accordéons ou sous-panneaux séparés pour `ProgM6…`, Token-2022 et Metaplex ;
- réutilisation du JsonViewer commun pour les résultats intégralement JSON ;
- pparation, simulation, soumission, lectures et preuves ;
- compléter le sous-panneau Token-2022 après les travaux de `pre.010` et `pre.011` ;
- conserver des accordéons ou sous-panneaux séparés pour `ProgM6…`, Token-2022 et Metaplex ;
-utiliser le JsonViewer commun pour les résultats intégralement JSON ;
- réconcilier préparation, simulation, soumission, lectures et preuves des trois domaines ;
- aucun bouton de fetch URI.
### `0.4.8-pre.013` — stockage, matrices et réconciliation transversale