// file: crates/ksp-interface-lib/tests/public_api.rs // version: 2 //! Integration canaries for the public `ksp-interface-lib` foundation. fn consume_pubkey(pubkey: ksp_interface_lib::Pubkey) -> [u8; 32] { return pubkey.to_bytes(); } #[test] fn public_pre_002_pubkey_contract_is_available_from_crate_root() { let pubkey = ksp_interface_lib::Pubkey::default(); assert_eq!(consume_pubkey(pubkey), [0_u8; 32]); return; } #[test] fn public_pre_003_account_meta_and_limit_contracts_are_available_from_crate_root() { let pubkey = ksp_interface_lib::Pubkey::new_from_array([3_u8; 32]); let readonly = ksp_interface_lib::ProgramAccountMeta::readonly(pubkey, true); let writable = ksp_interface_lib::ProgramAccountMeta::writable(pubkey, false); assert_eq!(readonly.pubkey(), &pubkey); assert!(readonly.is_signer()); assert!(!readonly.is_writable()); assert_eq!(writable.pubkey(), &pubkey); assert!(!writable.is_signer()); assert!(writable.is_writable()); assert_eq!(ksp_interface_lib::MAX_PROGRAM_INSTRUCTION_ACCOUNTS, 255); return; } #[test] fn public_pre_003_interface_error_code_is_stable_and_core_owned() { let code: ksp_core_lib::ErrorCode = ksp_interface_lib::ERROR_CODE_PROGRAM_INSTRUCTION_LIMIT_EXCEEDED; assert_eq!(code.domain(), "interface"); assert_eq!(code.code(), "program_instruction_limit_exceeded"); return; }