Files
khadhroony-bot3/migration/khadhroony-bot2-reference/docs/NATIVE_SOLANA_CLOSURE_AUDIT.md
2026-07-23 16:37:12 +02:00

114 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: docs/NATIVE_SOLANA_CLOSURE_AUDIT.md -->
<!-- version: 5 -->
# Audit de clôture Solana natif `0.4.1`
## Objet
Ce document fixe létat final du jalon `0.4.1` : couverture native, preuves synthétiques, corpus mainnet observés et limites assumées.
Labsence de transaction mainnet nautorise ni à supprimer une surface officielle, ni à prétendre quelle a été observée. Elle impose une validation synthétique documentée et une tentative de découverte bornée lorsque la surface est officiellement déclarée.
## Surfaces couvertes
`kb_decoder_solana_core` couvre 18 surfaces exécutables natives ou assimilées :
1. System Program ;
2. Vote Program ;
3. Stake Program ;
4. Config Program ;
5. Compute Budget Program ;
6. Address Lookup Table Program ;
7. ZK ElGamal Proof Program ;
8. Feature Program ;
9. ancien ZK Token Proof Program ;
10. Native Loader ;
11. BPF Loader v1 ;
12. BPF Loader v2 ;
13. BPF Loader Upgradeable ;
14. Loader v4 ;
15. Ed25519 precompile ;
16. secp256k1 precompile ;
17. secp256r1 precompile ;
18. Slashing Program.
`StakeConfig11111111111111111111111111111111` est volontairement classé comme compte natif historique non exécutable.
## Divergence Slashing corrigée
Agave `v4.1.1` déclare le programme stateless Slashing sous :
```text
S1ashing11111111111111111111111111111111111
```
La surface a été ajoutée dans `pre.018` : deux instructions exactes, dispatch sans fallback, couverture déclarée et projection de rapport. Aucun corpus public observable na été trouvé ; la validation repose donc sur les sources officielles et les fixtures synthétiques.
## Invariants automatiques
Les tests garantissent que :
- chaque entrée de `kb_program_ids::native_program_ids()` possède exactement une surface de décodeur ;
- chaque surface possède au moins une déclaration de couverture ;
- aucune déclaration nutilise le fallback `unclassified_native_instruction` ;
- chaque déclaration référence une surface réellement déclarée ;
- les identités programme/surface/entrée sont uniques ;
- le Slashing Program est dispatché vers son parseur exact ;
- ZK Token Proof historique passe par le fallback actuel no-op sans prétendre vérifier une preuve.
## Corpus et replays validés
| Programme | Résultat de clôture |
|---------------------------|------------------------------------------------------------------------------|
| System | 817 inputs décodés, 258 sorties, 52 refus attendus sur transactions échouées |
| Config | 96 inputs décodés, 96 sorties admin |
| Stake | 448 inputs décodés, 447 sorties, 1 refus attendu |
| Vote | 600 inputs décodés, 600 sorties |
| Compute Budget | 2 746 inputs décodés, 1 603 profils transactionnels |
| Address Lookup Table | 104 inputs décodés, 104 sorties lifecycle |
| ZK ElGamal | 151 inputs décodés, 139 sorties de contexte |
| Slashing | zéro corpus public observable, validation synthétique |
| Feature | zéro corpus observable dans les campagnes adressées, validation synthétique |
| Loaders rares | zéro corpus observable pour certaines générations, validation synthétique |
| ZK Token Proof historique | zéro corpus public observable, runtime actuel no-op, validation synthétique |
Les campagnes de clôture rapportées ont `unmatched = 0`, `failedInputs = 0`, `unsupported = 0` et ne produisent pas derreurs opérationnelles dans les journaux fournis.
## Backfills
Aucun backfill supplémentaire nest requis pour clôturer `0.4.1`.
Le mode `program_latest` ajouté dans `pre.019` reste disponible pour de futures recherches sans signature dancrage. Il ne doit pas être utilisé pour inventer un corpus absent sur des surfaces feature-gated ou historiquement rares.
## Matérialisations
La clôture instructionnelle est documentée dans `docs/NATIVE_SOLANA_MATERIALIZATION_AUDIT.md`.
Aucune projection native stable immédiatement dérivable du graphe core actuel nest identifiée comme manquante. Les snapshots finaux de comptes et métriques runtime restent différés.
## Validations finales
Validations utilisateur finales rapportées pour la clôture :
```text
kb_program_ids 5 tests
kb_decoder_solana_core 114 tests
kb_materializer_lifecycle 16 tests
kb_materializer_admin 7 tests
kb_materializer_compliance_audit 7 tests
kb_materializer_staking 8 tests
kb_config 36 tests
kb_pipeline 45 tests
kb_store_pg 45 tests avec PostgreSQL réel
kb_app_demo 78 tests
cargo clippy --all-targets propre
```
Le démarrage Tauri validé après `pre.021-fix.001` confirme les 53 routes de logging et linitialisation PostgreSQL. `pre.022` ne modifie pas la configuration Tauri.
## Décision
`0.4.1` est clôturée.
La prochaine session doit utiliser `prompts/022_v0_4_2_executor_solana_core.md` et démarrer `0.4.2` sur linfrastructure dexécution et `kb_executor_solana_core`.