v0.4.8-pre.015
This commit is contained in:
@@ -1,8 +1,16 @@
|
||||
<!-- file: kb-lib/CHANGELOG.md -->
|
||||
<!-- version: 48 -->
|
||||
<!-- version: 50 -->
|
||||
|
||||
# CHANGELOG — kb-lib
|
||||
|
||||
## `0.4.8-pre.015` — réconciliation des matrices Metadata
|
||||
|
||||
- `pre.015-delta-fix-001` retire du rustdoc public de l’inventaire Metaplex la provenance obsolète `0.4.7-pre.005` et décrit désormais la surface comme l’inventaire audité courant ;
|
||||
- ajoute un test d’API externe qui parcourt les 35 opérations Metaplex depuis les seuls exports crate-root, vérifie les 15 opérations explicitement deprecated et refuse un Program ID étranger ;
|
||||
- retire du TODO les validations réseau complémentaires Metaplex déjà closes en `pre.013`, sans supprimer le réaudit transversal prévu pour `0.5.x` ;
|
||||
- le delta initial réconcilie les métadonnées de progression de la matrice contractuelle Metaplex Token Metadata avec la surface réellement clôturée en `pre.013` ;
|
||||
- conserve intactes les 58 lignes du contrat d’instructions, les inventaires de comptes et les matrices historiques fermées.
|
||||
|
||||
## `0.4.8-pre.013` — exactitude des builders Metaplex courants
|
||||
|
||||
- `pre.013-delta-fix-033` aligne la validation du décodeur `Update` sur les privilèges runtime globaux : l’authority doit signer et les comptes mutables doivent rester writable, mais un même wallet utilisé comme authority et fee payer peut apparaître writable à la position authority lors du replay Core ; le test `modern_update_variants_accept_transaction_privilege_supersets` couvre cette forme sans augmenter le nombre total de tests.
|
||||
@@ -48,7 +56,6 @@
|
||||
- ajoute les régressions de clôture couvrant l’autorité nullable `None`, la forme `Emit` complète sans plage et la plage maximale exactement égale à 1 024 octets.
|
||||
- corrige dans `pre.011-fix-006` les deux attentes de nommage de ces régressions afin de vérifier les codes d’opération canoniques `spl.token_2022.update_token_metadata_authority` et `spl.token_2022.emit_token_metadata`.
|
||||
|
||||
|
||||
## 0.4.8-pre.008 — matérialiseurs metadata spécialisés
|
||||
|
||||
- corrige le décodeur Solana Program Metadata pour interpréter les flags `signer` et `writable` du replay comme des privilèges globaux de message : les privilèges requis sont désormais des minima, et les sur-ensembles légitimes dus au fee payer ou à d’autres instructions ne sont plus rejetés ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: kb-lib/TODO.md -->
|
||||
<!-- version: 14 -->
|
||||
<!-- version: 15 -->
|
||||
|
||||
# TODO — kb-lib
|
||||
|
||||
@@ -23,8 +23,3 @@
|
||||
|
||||
- [ ] Surfaces - remplacer les décodeurs et exécuteurs réservés selon le ROADMAP.
|
||||
- [ ] Anchor - implémenter l’infrastructure générique des conventions Anchor dans la série `0.6.x`.
|
||||
|
||||
## Validation réseau complémentaire Metaplex Token Metadata
|
||||
|
||||
- [ ] Réauditer les opérations spécialisées après disponibilité des fixtures Devnet Print/Burn, collection et pNFT.
|
||||
- [ ] Conserver les états synthétique, simulé, soumis, non applicable et indisponible distincts dans les matrices.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: kb-lib/src/executor/metadata/metaplex_token_metadata/intent.rs
|
||||
// version: 9
|
||||
// version: 10
|
||||
|
||||
//! Typed current and deprecated Metaplex Token Metadata execution intents.
|
||||
|
||||
@@ -124,7 +124,7 @@ pub const EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES: &[&str] = &[
|
||||
EX_METAPLEX_TOKEN_METADATA_APPROVE_USE_AUTHORITY_OPERATION,
|
||||
EX_METAPLEX_TOKEN_METADATA_REVOKE_USE_AUTHORITY_OPERATION,
|
||||
];
|
||||
/// Current and deprecated operations implemented through `0.4.7-pre.005`.
|
||||
/// Current and explicitly deprecated operations exposed by the audited Metaplex Token Metadata executor.
|
||||
pub const EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES: &[&str] = &[
|
||||
EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION,
|
||||
EX_METAPLEX_TOKEN_METADATA_UPDATE_OPERATION,
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
// file: kb-lib/tests/external_metaplex_token_metadata_executor_api.rs
|
||||
// version: 1
|
||||
|
||||
//! Downstream-style compilation contract for the Metaplex Token Metadata executor.
|
||||
|
||||
#[test]
|
||||
fn external_consumers_inspect_metaplex_executor_capabilities_only_through_crate_root_exports() {
|
||||
let executor = kb_lib::ExMetadataMetaplexTokenMetadataExecutor;
|
||||
let program_id = kb_lib::MdProgramId(
|
||||
kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID.to_string(),
|
||||
);
|
||||
assert_eq!(kb_lib::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES.len(), 35);
|
||||
assert_eq!(kb_lib::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES.len(), 15);
|
||||
for operation_code in kb_lib::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES {
|
||||
let capability = kb_lib::ExApiTypedInstructionExecutor::capability(
|
||||
&executor,
|
||||
&program_id,
|
||||
operation_code,
|
||||
);
|
||||
assert!(capability.is_supported());
|
||||
}
|
||||
for operation_code in kb_lib::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES {
|
||||
assert!(
|
||||
kb_lib::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES.contains(operation_code)
|
||||
);
|
||||
}
|
||||
let foreign_program_id = kb_lib::MdProgramId(kb_program_ids::SYSTEM_PROGRAM_ID.to_string());
|
||||
let foreign_capability = kb_lib::ExApiTypedInstructionExecutor::capability(
|
||||
&executor,
|
||||
&foreign_program_id,
|
||||
kb_lib::EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION,
|
||||
);
|
||||
assert!(!foreign_capability.is_supported());
|
||||
}
|
||||
Reference in New Issue
Block a user