v0.4.8-pre.003

This commit is contained in:
2026-08-05 15:04:27 +02:00
parent 0078956d48
commit de1062b2d3
13 changed files with 1060 additions and 108 deletions

View File

@@ -0,0 +1,30 @@
// file: kb-lib/tests/external_solana_program_metadata_model_api.rs
// version: 1
//! Downstream-style compilation contract for Solana Program Metadata models.
#[test]
fn external_consumers_use_only_crate_root_model_exports() {
let seed_result = kb_lib::DcMetadataSpmSeed::from_utf8("idl");
assert!(seed_result.is_ok());
let seed;
if let std::result::Result::Ok(value) = seed_result {
seed = value;
} else {
return;
}
assert_eq!(seed.trimmed_utf8(), std::result::Result::Ok("idl"));
assert_eq!(seed.as_bytes().len(), kb_lib::DC_METADATA_SPM_SEED_BYTES);
let external = kb_lib::DcMetadataSpmExternalData::from_zeroable_length(
solana_pubkey::Pubkey::new_from_array([9_u8; 32]),
4,
8,
);
let data = kb_lib::DcMetadataSpmData::External(external);
assert_eq!(data.source(), kb_lib::DcMetadataSpmDataSource::External);
assert_eq!(data.wire_length_u32(), std::result::Result::Ok(40),);
assert_eq!(kb_lib::DcMetadataSpmProgramError::InvalidDataLength.code(), 4);
assert_eq!(kb_lib::DC_METADATA_SPM_BUFFER_HEADER_BYTES, 96);
assert_eq!(kb_lib::DC_METADATA_SPM_METADATA_HEADER_BYTES, 96);
assert_eq!(kb_lib::DC_METADATA_SPM_EXTERNAL_DATA_BYTES, 40);
}