0.5.1-pre.002
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user