29 lines
1.3 KiB
Rust
29 lines
1.3 KiB
Rust
// file: crates/ksp-interface-lib/tests/transaction_execution_public_api.rs
|
|
// version: 1
|
|
|
|
//! Public API canaries for the provider-neutral transaction execution contract.
|
|
|
|
#[test]
|
|
fn public_v0_3_5_pre_003_transaction_execution_contract_is_available_from_crate_root() {
|
|
let signature = ksp_interface_lib::TransactionSignature::new([0xC7_u8; 64]);
|
|
let event = ksp_interface_lib::TransactionExecutionEvent::new(u64::MAX, signature, ksp_interface_lib::TransactionExecutionOutcome::Succeeded);
|
|
assert_eq!(signature.as_bytes(), &[0xC7_u8; 64]);
|
|
assert_eq!(event.slot(), u64::MAX);
|
|
assert_eq!(event.signature(), signature);
|
|
assert_eq!(event.outcome(), ksp_interface_lib::TransactionExecutionOutcome::Succeeded);
|
|
}
|
|
|
|
fn outcome_label(outcome: ksp_interface_lib::TransactionExecutionOutcome) -> &'static str {
|
|
return match outcome {
|
|
ksp_interface_lib::TransactionExecutionOutcome::Succeeded => "succeeded",
|
|
ksp_interface_lib::TransactionExecutionOutcome::Failed => "failed",
|
|
_ => "future",
|
|
};
|
|
}
|
|
|
|
#[test]
|
|
fn public_v0_3_5_pre_003_transaction_execution_outcome_remains_downstream_evolvable() {
|
|
assert_eq!(outcome_label(ksp_interface_lib::TransactionExecutionOutcome::Succeeded), "succeeded");
|
|
assert_eq!(outcome_label(ksp_interface_lib::TransactionExecutionOutcome::Failed), "failed");
|
|
}
|