v0.1.0-pre.012

This commit is contained in:
2026-07-24 15:59:00 +02:00
parent 60660ca555
commit e753a80c3a
179 changed files with 5653 additions and 10813 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/PROGRAM_NAMING.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Nommage canonique des programmes et surfaces
@@ -94,22 +94,22 @@ Le registre ne doit pas perdre les anciens noms. Chaque programme doit conserver
## Exceptions conservées
Les programmes Solana/SPL de base restent groupés dans des crates techniques déjà lisibles :
Les programmes Solana/SPL de base restent groupés dans des modules techniques privés et des types publics explicites :
- `kb_decoder_solana_core` ;
- `kb_decoder_spl_token` ;
- `kb_decoder_spl_token_2022` ;
- `kb_decoder_spl_associated_token_account`.
- `DcSolanaCoreDecoder` ;
- `DcSplTokenDecoder` ;
- `DcSplToken2022Decoder` ;
- `DcSplAssociatedTokenAccountDecoder`.
Ces crates ne sont pas renommées en `kb_decoder_core_*` ou `kb_decoder_token_*`, car elles servent de couche primitive avant les surfaces DEX/router.
Ces types restent dans la façade `kb_lib`, car ils servent de couche primitive avant les surfaces DEX/router.
## Politique de migration
La migration physique des dossiers ne doit pas être faite en masse. Pour chaque rename :
1. prouver que le `program_id` correspond à la surface ;
2. créer ou renommer une seule crate ;
3. mettre à jour `Cargo.toml` ;
2. créer ou renommer un seul module privé ;
3. mettre à jour la façade `kb-lib/src/lib.rs` ;
4. mettre à jour le registre ;
5. exécuter `cargo build` ;
6. supprimer lancien alias seulement après validation.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/PROGRAM_REGISTRY_CONTROL.md -->
<!-- version: 6 -->
<!-- version: 7 -->
# Contrôle du registre des programmes
@@ -250,7 +250,7 @@ Ces identifiants sont détaillés dans `docs/CORE_PROGRAM_IDS.md`. Ils sont couv
| `lock_raydium_lp` | `LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE` | `raydium_lock_lp` | `raydium_lock_lp` | `-` | `kb_decoder_lock_raydium_lp` | `reserved_missing` |
| `admin_jupiter_lock` | `LocpQgucEQHbqNABEYvBvwoxCPsSbG91A1QaQhQQqjn` | `jupiter_lock` | `jupiter_lock` | `-` | `kb_decoder_admin_jupiter_lock` | `reserved_missing` |
| `admin_pump_fees` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | `pump_fees` | `pump_fees` | `kb_decoder_pump_fees` | `kb_decoder_admin_pump_fees` | `current_alias` |
| `metadata_metaplex_token_metadata` | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s` | `metaplex_token_metadata` | `metaplex_token_metadata` | `-` | `kb_lib::decoder::metadata::metaplex_token_metadata` | `current_migrated` |
| `metadata_metaplex_token_metadata` | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s` | `metaplex_token_metadata` | `metaplex_token_metadata` | `-` | `kb_lib::DcMetadataMetaplexTokenMetadataDecoder` | `current_migrated` |
| `metadata_name_service` | `namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX` | `name_service` | `name_service` | `-` | `kb_decoder_metadata_spl_name_service` | `reserved_missing` |
| `nft_metaplex_bubblegum` | `BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY` | `bubblegum` | `bubblegum` | `-` | `kb_decoder_nft_metaplex_bubblegum` | `reserved_missing` |
| `nft_metaplex_mpl_core` | `CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d` | `mpl_core` | `mpl_core` | `-` | `kb_decoder_nft_metaplex_mpl_core` | `reserved_missing` |

View File

@@ -1,5 +1,5 @@
<!-- file: docs/SOLANA_INTERFACE_DEPENDENCIES.md -->
<!-- version: 31 -->
<!-- version: 32 -->
# Dépendances dinterfaces Solana et SPL
@@ -213,9 +213,9 @@ ni discriminant, ni builder : elle ajoute seulement, avant Borsh, une validation
longueurs de chaînes de `Initialize`, `UpdateField` et `RemoveKey`. Cette garde plus sûre devient
normative pour le décodeur ; `UpdateAuthority` et `Emit` restent sans chaîne.
La migration `0.1.0-pre.008` conserve ces contrats dans
`kb_lib::decoder::spl::token2022` et isole le registre dans
`kb_lib::decoder::spl::elgamal_registry`. Les targets de tracing, matrices et Program IDs restent
La migration `0.1.0-pre.008` conserve ces contrats dans le type public
`kb_lib::DcSplToken2022Decoder` et isole le registre dans
`kb_lib::DcSplElgamalRegistryDecoder`. Les targets de tracing, matrices et Program IDs restent
distincts ; aucun pointeur TLV nest interprété comme une preuve de létat du programme externe
pointé.
@@ -287,7 +287,7 @@ Le catalogue workspace déclare `mpl-token-metadata ^5.1` avec la seule feature
Le dépôt officiel `metaplex-foundation/mpl-token-metadata` confirme le Program ID `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`. LIDL officiel audité porte la version `1.14.0` et le blob `5df4a24f62c2743125be096cc174680790c92c18`; linventaire Rust généré des instructions porte le blob `3c42eec629f82e44ba690a7c4bd2177cc78f1d49`.
`kb_lib::decoder::metadata::metaplex_token_metadata` implémente désormais la couverture exhaustive des
`kb_lib::DcMetadataMetaplexTokenMetadataDecoder` implémente désormais la couverture exhaustive des
58 discriminateurs `0..=57`. Les arguments sont lus avec les types Borsh officiels lorsque le SDK
les expose, ou avec un miroir local borné du wire publié pour les variantes historiques. Les
payloads, chaînes, créateurs, frais, comptes et suffixes sont bornés.

View File

@@ -1,13 +1,13 @@
{
"file": "docs/SPL_MEMO_MATRIX.json",
"version": 10,
"version": 11,
"matrixVersion": 4,
"scope": "SPL Memo v1, v3 et v4",
"bot3Migration": {
"decoderModule": "kb_lib::decoder::spl::memo",
"publicDecoder": "kb_lib::SplMemoDecoder",
"decoderModule": "kb-lib/src/decoder/spl/memo",
"publicDecoder": "kb_lib::DcSplMemoDecoder",
"decoderStatus": "ported_in_0.1.0-pre.005",
"publicMaterializer": "kb_lib::TransactionAnnotationMaterializer",
"publicMaterializer": "kb_lib::MtTransactionAnnotationMaterializer",
"materializerStatus": "ported_in_0.1.0-pre.011",
"executorStatus": "pending_later_tranche"
},