v0.4.8-pre.015

This commit is contained in:
2026-08-09 12:57:24 +02:00
parent aec7b4b76a
commit 3a509acb82
17 changed files with 570 additions and 271 deletions

View File

@@ -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 dAPI 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 linspection du `returnData` et de la postcondition dautorité ;
- ne modifie aucun contrat dexé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 dautorité 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 lautorité metadata.
## 0.4.8-pre.010
- remplace lassertion 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` ;

View File

@@ -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 lexistence 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.

View File

@@ -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);
}
}