v0.1.0-pre.009
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"schema_version": 2,
|
||||
"milestone": "0.4.7-pre.025",
|
||||
"milestone": "0.1.0-pre.009",
|
||||
"surface_code": "metadata_metaplex_token_metadata",
|
||||
"program_id": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
|
||||
"program_family": "independent_metaplex_foundation_program",
|
||||
"decode_status": "instruction_inventory_exhaustive_0_through_57_and_account_key_inventory_exhaustive_0_through_14",
|
||||
"runtime_registration": "not_enabled_in_pre_008",
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009",
|
||||
"official_sources": [
|
||||
{
|
||||
"kind": "repository",
|
||||
@@ -356,7 +356,7 @@
|
||||
}
|
||||
],
|
||||
"wire": "official_borsh_mpl_token_metadata_5_1_1",
|
||||
"runtime_registration": "pending_full_group_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.003",
|
||||
@@ -392,7 +392,7 @@
|
||||
],
|
||||
"wire": "single_u8_discriminator_official_mpl_token_metadata_5_1_1",
|
||||
"account_contract": "ordered_required_accounts_plus_optional_collection_authority_record_and_bounded_remaining_accounts",
|
||||
"runtime_registration": "pending_broader_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.004",
|
||||
@@ -428,7 +428,7 @@
|
||||
],
|
||||
"wire": "single_u8_discriminator_official_mpl_token_metadata_5_1_1",
|
||||
"account_contract": "ordered_required_accounts_plus_optional_collection_authority_record; collection metadata is writable and collection authority is readonly signer",
|
||||
"runtime_registration": "pending_broader_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.005",
|
||||
@@ -597,7 +597,7 @@
|
||||
"wire": "u8 discriminator + historical DataV2 + bool is_mutable using Borsh 0.10",
|
||||
"account_contract": "metadata, mint, mint_authority signer, payer writable signer, update_authority, system_program, optional rent",
|
||||
"provenance": "historical Metaplex Token Metadata instruction surface; current SDK DataV2 type reused only for exact compatible wire fields",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.010",
|
||||
@@ -624,7 +624,7 @@
|
||||
],
|
||||
"wire": "u8 discriminator + historical Data/Option<Data> fields using Borsh 0.10",
|
||||
"provenance": "historical generated Metaplex Token Metadata surface",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.011",
|
||||
@@ -651,7 +651,7 @@
|
||||
],
|
||||
"wire": "CreateMasterEditionV3: u8 discriminator + Option<u64> max_supply; conversion: u8 discriminator only",
|
||||
"account_contract": "exact generated Rust SDK account order and signer/writable flags; optional rent accepted for CreateMasterEditionV3",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.012",
|
||||
@@ -679,7 +679,7 @@
|
||||
"wire": "u8 discriminator + MintNewEditionFromMasterEditionViaTokenArgs { edition: u64 }",
|
||||
"account_contract": "exact generated Rust SDK account order and signer/writable flags; optional rent accepted after the required program accounts",
|
||||
"edition_marker_contract": "edition marker PDA is writable and corresponds to floor(edition / EDITION_MARKER_BIT_SIZE); PDA derivation validation remains planned with account decoding",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.013",
|
||||
@@ -707,7 +707,7 @@
|
||||
"wire": "u8 discriminator + SetCollectionSizeArgs { size: u64 }",
|
||||
"account_contract": "exact generated Rust SDK account order and signer/writable flags; optional collection authority record accepted",
|
||||
"provenance_boundary": "BubblegumSetCollectionSize is decoded as a Token Metadata bridge instruction and does not claim complete Bubblegum coverage",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.014",
|
||||
@@ -734,7 +734,7 @@
|
||||
],
|
||||
"wire": "u8 discriminator + DelegateArgs or RevokeArgs Borsh enum; DelegateArgs may contain optional AuthorizationData",
|
||||
"account_contract": "14 positional accounts with Metaplex program placeholders for absent optional accounts; exact signer/writable invariants on authority, payer, metadata and optional writable records",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.015",
|
||||
@@ -788,7 +788,7 @@
|
||||
],
|
||||
"wire": "Borsh enums TransferArgs/LockArgs/UnlockArgs/BurnArgs; CloseAccounts discriminator only",
|
||||
"account_contract": "exact generated Rust SDK positional accounts and signer/writable invariants; Metaplex program placeholders accepted for absent optional programmable accounts",
|
||||
"runtime_registration": "pending_full_decoder_and_account_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.016",
|
||||
@@ -816,7 +816,7 @@
|
||||
"wire": "u8 discriminator only",
|
||||
"account_contract": "delegate writable signer, token account writable, edition/mint/token program readonly",
|
||||
"inventory_audit": "official generated Rust SDK instruction module index audited; remaining modules are tracked before account-state decoding",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.017",
|
||||
@@ -852,7 +852,7 @@
|
||||
],
|
||||
"wire": "u8 discriminator only",
|
||||
"account_contract": "exact generated Rust SDK positional signer/writable contracts; BurnNft collection metadata, deprecated printing-token reservation list are optional trailing accounts",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.018",
|
||||
@@ -897,7 +897,7 @@
|
||||
],
|
||||
"wire": "Create/Close/Collect discriminator only; TransferOutOfEscrow discriminator + amount u64",
|
||||
"account_contract": "exact generated Rust SDK signer/writable contracts with optional trailing authority on create and transfer",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.019",
|
||||
@@ -915,7 +915,7 @@
|
||||
],
|
||||
"wire": "u8 discriminator + CreateArgs enum",
|
||||
"account_contract": "nine positional accounts with Metaplex placeholders for optional master edition and SPL Token Program",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.020",
|
||||
@@ -933,7 +933,7 @@
|
||||
],
|
||||
"wire": "u8 discriminator + MintArgs::V1 { amount: u64, authorization_data: Option<AuthorizationData> }",
|
||||
"account_contract": "fifteen positional accounts with Metaplex placeholders for optional token owner, master edition, token record, delegate record and authorization-rule accounts",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.021",
|
||||
@@ -955,7 +955,7 @@
|
||||
],
|
||||
"wire": "u8 discriminator + PrintArgs::{V1,V2} { edition: u64 }",
|
||||
"account_contract": "eighteen positional accounts with a Metaplex placeholder or writable Token Record at position 6",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.022",
|
||||
@@ -984,7 +984,7 @@
|
||||
],
|
||||
"wire": "u8 discriminator + UpdateArgs enum",
|
||||
"account_contract": "eleven positional accounts with Metaplex placeholders for optional delegate record, token, edition and authorization-rule accounts",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.023",
|
||||
@@ -1031,7 +1031,7 @@
|
||||
],
|
||||
"wire": "u8 discriminator + UseArgs or VerificationArgs enum",
|
||||
"account_contract": "twelve positional accounts for Use; eight positional accounts for Verify/Unverify, with Metaplex placeholders for optional accounts",
|
||||
"runtime_registration": "pending_full_decoder_validation"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"pre_release": "0.4.7-pre.024",
|
||||
@@ -1112,7 +1112,7 @@
|
||||
],
|
||||
"wire": "u8 discriminator only",
|
||||
"account_contract": "exact IDL/generated positional signer and writable flags",
|
||||
"runtime_registration": "pending_full_decoder_validation",
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009",
|
||||
"inventory_proof": {
|
||||
"covered_discriminators": [
|
||||
0,
|
||||
@@ -1198,7 +1198,7 @@
|
||||
"uri_bytes": 200,
|
||||
"creators": 5
|
||||
},
|
||||
"runtime_registration": "not_enabled"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"group": "edition_and_master_edition_accounts",
|
||||
@@ -1261,7 +1261,7 @@
|
||||
"bit_order": "most_significant_bit_first"
|
||||
}
|
||||
},
|
||||
"runtime_registration": "not_enabled"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"group": "token_record_account",
|
||||
@@ -1300,7 +1300,7 @@
|
||||
"LockedTransfer",
|
||||
"Migration"
|
||||
],
|
||||
"runtime_registration": "not_enabled"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"group": "delegate_and_authority_records",
|
||||
@@ -1363,7 +1363,7 @@
|
||||
"holder_delegate_role_seeds": [
|
||||
"print_delegate"
|
||||
],
|
||||
"runtime_registration": "not_enabled"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"group": "token_owned_escrow_account",
|
||||
@@ -1405,7 +1405,7 @@
|
||||
"Migrate": "may create or update related programmable records; correlation pending",
|
||||
"Resize": "changes allocated account bytes without changing canonical identity"
|
||||
},
|
||||
"runtime_registration": "not_enabled"
|
||||
"runtime_registration": "enabled_in_kb_lib_pre_009"
|
||||
},
|
||||
{
|
||||
"group": "historical_reservation_lists",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/PROGRAM_REGISTRY_CONTROL.md -->
|
||||
<!-- version: 4 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# 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_decoder_metadata_metaplex_token_metadata` | `reserved_missing` |
|
||||
| `metadata_metaplex_token_metadata` | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s` | `metaplex_token_metadata` | `metaplex_token_metadata` | `-` | `kb_lib::decoder::metadata::metaplex_token_metadata` | `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` |
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/SOLANA_INTERFACE_DEPENDENCIES.md -->
|
||||
<!-- version: 30 -->
|
||||
<!-- version: 31 -->
|
||||
|
||||
# Dépendances d’interfaces Solana et SPL
|
||||
|
||||
@@ -281,10 +281,23 @@ Pour chaque nouvelle interface :
|
||||
6. tester les payloads tronqués, inconnus, suffixés et les comptes invalides ;
|
||||
7. documenter toute divergence entre l’interface et le runtime.
|
||||
|
||||
### Metaplex Token Metadata — audit et premier décodage `0.4.7-pre.002`
|
||||
### Metaplex Token Metadata — port maximal `0.1.0-pre.009`
|
||||
|
||||
Le catalogue workspace déclare `mpl-token-metadata ^5.1` avec la seule feature `serde`. La publication officielle résolue reste `5.1.1`; elle fournit les modules générés `accounts`, `instructions`, `types` et `errors` issus de l’IDL Metaplex, sans introduire Anchor. La crate officielle utilise Borsh `< 1.0`; le décodeur référence donc explicitement `borsh 0.10` sous l’alias workspace `borsh_0_10`, distinct de Borsh 1.x utilisé par d’autres interfaces du workspace.
|
||||
|
||||
Le dépôt officiel `metaplex-foundation/mpl-token-metadata` confirme le Program ID `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`. L’IDL officiel audité porte la version `1.14.0` et le blob `5df4a24f62c2743125be096cc174680790c92c18`; l’inventaire Rust généré des instructions porte le blob `3c42eec629f82e44ba690a7c4bd2177cc78f1d49`.
|
||||
|
||||
`kb_decoder_metadata_metaplex_token_metadata` implémente désormais `InstructionDecoder` pour `CreateMetadataAccountV3` et `UpdateMetadataAccountV2`. Les arguments sont lus avec les types Borsh officiels et projetés avec la feature `serde`; les payloads, chaînes, créateurs, frais, comptes et suffixes sont bornés. L’enregistrement dans le registre runtime reste différé jusqu’à validation de ce premier groupe. Les metadata Token-2022 incorporées, Metaplex Core, Bubblegum et le JSON externe restent des provenances ou composants distincts.
|
||||
`kb_lib::decoder::metadata::metaplex_token_metadata` 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.
|
||||
|
||||
Le même composant inventorie les 15 variantes `Key 0..=14` et décode les quatorze layouts
|
||||
représentant un compte réel. Les parseurs utilisent `solana-pubkey ^4.2` pour vérifier owner,
|
||||
PDA et bump, puis les comptes historiques reçoivent une politique de matérialisation historique
|
||||
distincte de leur interdiction d’exécution. `Uninitialized` reste une sentinelle explicitement
|
||||
refusée et toute variante future absente de l’inventaire fait échouer les tests.
|
||||
|
||||
Les metadata Token‑2022 incorporées, Metaplex Core, Bubblegum et le JSON externe restent des
|
||||
provenances ou composants distincts. Aucun fetch HTTP, IPFS ou Arweave n’appartient au replay
|
||||
canonique de cette tranche.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/TRACING_CONTRACT.md -->
|
||||
<!-- version: 17 -->
|
||||
<!-- version: 18 -->
|
||||
|
||||
# Contrat de tracing par crate et composant
|
||||
|
||||
@@ -57,6 +57,7 @@ Les targets déjà migrés vers les noms canoniques bot3 sont :
|
||||
|
||||
```text
|
||||
kb-lib.decoder.solana.core
|
||||
kb-lib.decoder.metadata.metaplex_token_metadata
|
||||
kb-lib.decoder.spl.associated_token_account
|
||||
kb-lib.decoder.spl.elgamal_registry
|
||||
kb-lib.decoder.spl.memo
|
||||
|
||||
Reference in New Issue
Block a user