v0.4.8-pre.015
This commit is contained in:
@@ -1,8 +1,14 @@
|
||||
<!-- file: kb-pipeline/CHANGELOG.md -->
|
||||
<!-- version: 28 -->
|
||||
<!-- version: 30 -->
|
||||
|
||||
# CHANGELOG — kb-pipeline
|
||||
|
||||
## `0.4.8-pre.015`
|
||||
|
||||
- `pre.015-delta-fix-001` retire du TODO les validations Solana Program Metadata déjà closes par le replay mainnet `pre.008`, la campagne Devnet `pre.010` et le desktop `pre.014`, ainsi que la dette Metaplex Print/Burn/collection/pNFT fermée en `pre.013` ;
|
||||
- le delta initial ajoute un test d’API externe dédié à Token-2022 Token Metadata afin de vérifier les exports crate-root des lectures stateful, de la validation de plage `Emit`, de l’inspection du `returnData` et de la postcondition d’autorité ;
|
||||
- ne modifie aucun contrat d’exécution ou de stockage.
|
||||
|
||||
## `0.4.8-pre.013`
|
||||
|
||||
- `pre.013-delta-fix-031` expose `MetaplexTokenMetadataAccountKind::TokenOwnedEscrow` dans les lectures stateful et réutilise le décodeur strict déjà présent dans `kb-lib`, y compris validation du propriétaire, du discriminant, du PDA d’autorité et du bump ;
|
||||
@@ -32,7 +38,6 @@
|
||||
- décode uniquement un retour complet et conserve un retour partiel sans inventer un état ;
|
||||
- ajoute la postcondition stateful de changement ou suppression de l’autorité metadata.
|
||||
|
||||
|
||||
## 0.4.8-pre.010
|
||||
|
||||
- remplace l’assertion runtime sur la relation entre borne RPC et borne de décodage par une assertion `const`, afin de supprimer le dernier warning `clippy::assertions_on_constants` ;
|
||||
|
||||
@@ -1,14 +1,8 @@
|
||||
<!-- file: kb-pipeline/TODO.md -->
|
||||
<!-- version: 12 -->
|
||||
<!-- version: 13 -->
|
||||
|
||||
# TODO — kb-pipeline
|
||||
|
||||
## Validation réseau Solana Program Metadata
|
||||
|
||||
- [ ] `0.4.8-pre.009` - valider les neuf opérations sur Devnet depuis `kb-pipeline-demo-scenarios`, avec fixture native, simulation, soumission confirmée, lectures avant/après et replay.
|
||||
- [ ] `0.4.8-pre.009` - vérifier depuis `demo_execution_metadata` que les scénarios desktop consomment les mêmes runners réutilisables sans dupliquer la logique du pipeline.
|
||||
- [ ] Validation historique - exécuter `demo_backfill`, Core extraction et decode replay sur des signatures `ProgM6…` représentatives, puis contrôler les sorties matérialisées.
|
||||
|
||||
## Réaudit ultérieur des surfaces historiques
|
||||
|
||||
- [ ] Version à déterminer - après le réaudit des exécuteurs Solana Core et SPL dans `kb-lib`, vérifier que le pipeline orchestre sans filtrage implicite les opérations courantes et les opérations obsolètes explicitement approuvées.
|
||||
@@ -23,7 +17,3 @@
|
||||
|
||||
- [ ] Réseau - confirmer l’existence et le déploiement du programme avant toute campagne réelle.
|
||||
- [ ] Intégration - compléter uniquement les couches justifiées par un scénario réellement exécutable.
|
||||
|
||||
## Validation réseau complémentaire Metaplex Token Metadata
|
||||
|
||||
- [ ] Raccorder les postconditions et matérialisations des futures fixtures Print/Burn, collection et pNFT sans spécialiser le pipeline généraliste.
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
// file: kb-pipeline/tests/external_metadata_token_2022_pipeline_api.rs
|
||||
// version: 1
|
||||
|
||||
//! External-only coverage for the public Token-2022 Token Metadata pipeline contract.
|
||||
|
||||
#[test]
|
||||
fn external_consumers_use_only_public_token_2022_metadata_pipeline_exports() {
|
||||
let account = kb_lib::MdPubkey(solana_pubkey::Pubkey::new_from_array([9_u8; 32]).to_string());
|
||||
let request = kb_pipeline::Token2022StatefulReadRequest {
|
||||
query_role: "rpc".to_string(),
|
||||
account: account.clone(),
|
||||
kind: kb_lib::DcToken2022StateKind::Mint,
|
||||
min_context_slot: std::option::Option::Some(42),
|
||||
max_data_bytes: kb_pipeline::MAX_TOKEN_2022_STATEFUL_ACCOUNT_BYTES,
|
||||
context: kb_pipeline::Token2022StatefulContext::default(),
|
||||
};
|
||||
assert_eq!(request.account, account);
|
||||
assert_eq!(request.kind, kb_lib::DcToken2022StateKind::Mint);
|
||||
assert!(
|
||||
kb_pipeline::validate_token_2022_metadata_emit_range(
|
||||
std::option::Option::Some(0),
|
||||
std::option::Option::Some(32),
|
||||
)
|
||||
.is_ok()
|
||||
);
|
||||
let _emit_inspector: fn(
|
||||
&kb_lib::ExApiExecutionSimulationResult,
|
||||
std::option::Option<u64>,
|
||||
std::option::Option<u64>,
|
||||
) -> kb_core::Result<kb_pipeline::Token2022MetadataEmitEvidence> =
|
||||
kb_pipeline::inspect_token_2022_metadata_emit_simulation;
|
||||
let _authority_inspector: fn(
|
||||
&kb_lib::MdPubkey,
|
||||
std::option::Option<&kb_lib::MdPubkey>,
|
||||
&kb_pipeline::Token2022StatefulSnapshotBundle,
|
||||
) -> kb_pipeline::Token2022ExecutionPostcondition =
|
||||
kb_pipeline::inspect_token_2022_metadata_authority_postcondition;
|
||||
const {
|
||||
assert!(kb_pipeline::MAX_TOKEN_2022_METADATA_EMIT_BYTES > 0);
|
||||
assert!(kb_pipeline::MAX_TOKEN_2022_STATEFUL_ACCOUNT_BYTES > 0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user