0.5.1-pre.002

This commit is contained in:
2026-08-09 19:34:08 +02:00
parent 816eee59a9
commit 6a680767ae
767 changed files with 12257 additions and 12195 deletions

View File

@@ -0,0 +1,24 @@
// file: ks-pipeline/tests/external_metadata_metaplex_token_metadata_pipeline_api.rs
// version: 2
//! External-only coverage for the public Metaplex Token Metadata pipeline contract.
#[test]
fn external_consumers_can_request_edition_marker_state_through_crate_root_exports() {
let account = ks_lib::MdPubkey(solana_pubkey::Pubkey::new_from_array([7_u8; 32]).to_string());
let mint = ks_lib::MdPubkey(solana_pubkey::Pubkey::new_from_array([8_u8; 32]).to_string());
let request = ks_pipeline::MetaplexTokenMetadataStatefulReadRequest {
query_role: "rpc".to_string(),
account,
kind: ks_pipeline::MetaplexTokenMetadataAccountKind::EditionMarker { mint, edition: 1 },
min_context_slot: std::option::Option::Some(42),
max_data_bytes: ks_pipeline::MAX_METAPLEX_TOKEN_METADATA_ACCOUNT_BYTES,
};
assert!(request.validate().is_ok());
let json = match serde_json::to_value(&request) {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => panic!("request serialization failed: {error}"),
};
assert_eq!(json["kind"]["kind"], "edition_marker");
assert_eq!(json["kind"]["edition"], 1);
}

View File

@@ -0,0 +1,31 @@
// file: ks-pipeline/tests/external_metadata_solana_program_pipeline_api.rs
// version: 3
//! External-only coverage for the public Solana Program Metadata pipeline contract.
#[test]
fn external_consumers_use_only_public_program_metadata_pipeline_exports() {
let account = ks_lib::MdPubkey(solana_pubkey::Pubkey::new_from_array([7_u8; 32]).to_string());
let request = ks_pipeline::SolanaProgramMetadataStatefulReadRequest {
query_role: "rpc".to_string(),
account: account.clone(),
expected_state: ks_pipeline::SolanaProgramMetadataExpectedAccountState::Any,
min_context_slot: std::option::Option::None,
max_data_bytes: ks_pipeline::MAX_SOLANA_PROGRAM_METADATA_STATEFUL_ACCOUNT_BYTES,
};
assert!(request.validate().is_ok());
let postcondition = ks_pipeline::SolanaProgramMetadataPostcondition {
code: "metadata.solana_program_metadata.external_api".to_string(),
account,
status: ks_pipeline::SolanaProgramMetadataPostconditionStatus::NotApplicable,
diagnostic: "external API coverage".to_string(),
};
assert_eq!(
ks_pipeline::summarize_solana_program_metadata_postconditions(&[postcondition]),
ks_pipeline::SolanaProgramMetadataPostconditionStatus::NotApplicable
);
const {
assert!(ks_pipeline::MAX_SOLANA_PROGRAM_METADATA_EXECUTION_SIGNERS > 0);
assert!(ks_pipeline::MAX_SOLANA_PROGRAM_METADATA_PREFLIGHT_ACCOUNTS > 0);
}
}

View File

@@ -0,0 +1,42 @@
// file: ks-pipeline/tests/external_metadata_token_2022_pipeline_api.rs
// version: 2
//! 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 = ks_lib::MdPubkey(solana_pubkey::Pubkey::new_from_array([9_u8; 32]).to_string());
let request = ks_pipeline::Token2022StatefulReadRequest {
query_role: "rpc".to_string(),
account: account.clone(),
kind: ks_lib::DcToken2022StateKind::Mint,
min_context_slot: std::option::Option::Some(42),
max_data_bytes: ks_pipeline::MAX_TOKEN_2022_STATEFUL_ACCOUNT_BYTES,
context: ks_pipeline::Token2022StatefulContext::default(),
};
assert_eq!(request.account, account);
assert_eq!(request.kind, ks_lib::DcToken2022StateKind::Mint);
assert!(
ks_pipeline::validate_token_2022_metadata_emit_range(
std::option::Option::Some(0),
std::option::Option::Some(32),
)
.is_ok()
);
let _emit_inspector: fn(
&ks_lib::ExApiExecutionSimulationResult,
std::option::Option<u64>,
std::option::Option<u64>,
) -> ks_core::Result<ks_pipeline::Token2022MetadataEmitEvidence> =
ks_pipeline::inspect_token_2022_metadata_emit_simulation;
let _authority_inspector: fn(
&ks_lib::MdPubkey,
std::option::Option<&ks_lib::MdPubkey>,
&ks_pipeline::Token2022StatefulSnapshotBundle,
) -> ks_pipeline::Token2022ExecutionPostcondition =
ks_pipeline::inspect_token_2022_metadata_authority_postcondition;
const {
assert!(ks_pipeline::MAX_TOKEN_2022_METADATA_EMIT_BYTES > 0);
assert!(ks_pipeline::MAX_TOKEN_2022_STATEFUL_ACCOUNT_BYTES > 0);
}
}