v0.1.0-pre.071

This commit is contained in:
2026-07-31 16:54:45 +02:00
parent d6bd91c305
commit c5327b0283
16 changed files with 938 additions and 37 deletions

View File

@@ -1,25 +1,38 @@
<!-- file: kb-program-ids/README.md -->
<!-- version: 7 -->
<!-- version: 8 -->
# kb-program-ids
`kb-program-ids` est la source unique des identifiants de programmes Solana et des comptes natifs connus utilisés par le workspace.
`kb-program-ids` est la source Rust canonique des Program IDs Solana et des comptes connus utilisés par le workspace.
La tranche `0.1.0-pre.004` expose les 18 surfaces exécutables nécessaires au décodeur Solana Core, les comptes natifs associés utilisés par leurs contrats et lidentifiant SPL Token classique employé par les tests de frontière. La tranche `0.1.0-pre.005` ajoute les trois identifiants SPL Memo v1, v3 et v4 sans les classer parmi les surfaces natives. `0.1.0-pre.006` active lidentifiant SPL Token classique dans un décodeur concret tout en le maintenant hors des surfaces natives. `0.1.0-pre.007` ajoute les identifiants SPL Associated Token Account et Token2022 nécessaires à la frontière ATA. `0.1.0-pre.008` ajoute le Program ID indépendant du registre ElGamal de Token2022. `0.1.0-pre.009` ajoute le Program ID indépendant de Metaplex Token Metadata. Ces programmes restent hors des surfaces natives.
## Responsabilités
La tranche `0.1.0-pre.012` restaure 97 Program IDs supplémentaires utilisés par les squelettes réservés de `kb-lib`. Le registre contient désormais 130 codes et 130 adresses uniques. La réservation Anchor ne possède volontairement aucun Program ID statique.
- exposer les constantes Base58 canoniques ;
- fournir un registre énumérable et trié ;
- distinguer les programmes natifs exécutables des comptes natifs connus ;
- offrir une recherche exacte par adresse ;
- réserver les identifiants nécessaires aux surfaces futures sans les déclarer implémentées.
`constants.rs` reste lunique source des adresses et des tableaux statiques. `programs.rs` porte
`ProgramIdEntry`, ses méthodes et toutes les fonctions de consultation. `lib.rs` se limite aux
déclarations de modules et aux réexports documentés de la façade.
La présence dun Program ID dans cette crate ne signifie pas quun décodeur, exécuteur ou matérialisateur existe.
## API publique
- les constantes `*_PROGRAM_ID` et `STAKE_CONFIG_ACCOUNT_ID` exposent les adresses Base58 canoniques ;
- `ProgramIdEntry` conserve un code stable et une adresse, accessibles par les champs compatibles `name`/`address` et par `code()`/`program_id()` ;
- `native_program_ids()` retourne exactement les 18 surfaces exécutables de Solana Core ;
- `native_well_known_account_ids()` sépare les comptes natifs non exécutables ;
- `registered_program_ids()` et son alias de compatibilité `entries()` retournent le registre actuellement migré ;
- `find_registered_program_id()` effectue une recherche exacte par adresse.
- constantes `*_PROGRAM_ID` ;
- `STAKE_CONFIG_ACCOUNT_ID` et alias historique associé ;
- `ProgramIdEntry` ;
- `entries()` ;
- `registered_program_ids()` ;
- `native_program_ids()` ;
- `native_well_known_account_ids()` ;
- `find_registered_program_id()`.
`STAKE_CONFIG_PROGRAM_ID` reste uniquement un alias de compatibilité historique. Ladresse correspondante est un compte de configuration Stake connu, pas un programme exécutable.
## Sources documentaires
La documentation détaillée des Program IDs, de leur vérification et des IDL sera construite séparément. Elle pourra utiliser les archives bot2 et dautres projets historiques, mais le code de production reste fondé sur les constantes vérifiées de cette crate.
## Documentation
- [USAGE.md](USAGE.md)
- [TODO.md](TODO.md)
- [CHANGELOG.md](CHANGELOG.md)
- [Matrice des surfaces](../docs/architecture/SURFACE_CRATE_MATRIX.md)