v0.4.7-pre.012

This commit is contained in:
2026-08-03 09:34:16 +02:00
parent 4b727e2990
commit 4d08c75b2b
13 changed files with 575 additions and 36 deletions

View File

@@ -1,5 +1,5 @@
// file: kb-pipeline-demo-scenarios/src/solana_metaplex_token_metadata_validation.rs
// version: 3
// version: 4
//! Machine-readable Metaplex Token Metadata validation contract.
@@ -506,13 +506,13 @@ pub fn validate_metaplex_token_metadata_devnet_execution_matrix(
matrix: &crate::MetaplexTokenMetadataDevnetExecutionMatrix,
) -> kb_core::Result<()> {
if matrix.matrix_version != 1
|| matrix.milestone != "0.4.7-pre.011"
|| matrix.milestone != "0.4.7-pre.012"
|| matrix.program_id != kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID
|| matrix.operations.len() != 20
{
return std::result::Result::Err(kb_core::Error::new(
"metaplex_devnet_execution_matrix_contract_mismatch",
"Metaplex Devnet matrix must declare exactly 20 current operations for pre.011",
"Metaplex Devnet matrix must declare exactly 20 current operations for pre.012",
));
}
let expected = [
@@ -552,6 +552,8 @@ pub fn validate_metaplex_token_metadata_devnet_execution_matrix(
}
for operation in &matrix.operations {
if operation.deprecated
|| operation.runner_status != "implemented"
|| !matches!(operation.campaign_prerelease.as_str(), "0.4.7-pre.011" | "0.4.7-pre.012")
|| operation.required_evidence.is_empty()
|| operation.submission_evidence.is_empty()
|| !matches!(
@@ -561,7 +563,7 @@ pub fn validate_metaplex_token_metadata_devnet_execution_matrix(
{
return std::result::Result::Err(kb_core::Error::new(
"metaplex_devnet_execution_matrix_entry_invalid",
"Metaplex Devnet entries must be current, evidenced and conservatively classified",
"Metaplex Devnet entries must be current, implemented, evidenced and conservatively classified",
));
}
}
@@ -588,7 +590,21 @@ mod devnet_execution_matrix_tests {
.count(),
4,
);
assert_eq!(
matrix
.operations
.iter()
.filter(|operation| return operation.campaign_prerelease == "0.4.7-pre.012")
.count(),
16,
);
assert!(matrix.operations.iter().all(|operation| return !operation.deprecated));
assert!(
matrix
.operations
.iter()
.all(|operation| return operation.runner_status == "implemented")
);
assert!(
matrix
.operations