chik_sdk_test/
lib.rs

1mod announcements;
2mod error;
3mod key_pairs;
4mod simulator;
5mod transaction;
6
7pub use announcements::*;
8pub use error::*;
9pub use key_pairs::*;
10pub use simulator::*;
11pub use transaction::*;
12
13#[cfg(feature = "peer-simulator")]
14mod peer_simulator;
15
16#[cfg(feature = "peer-simulator")]
17pub use peer_simulator::*;
18
19use chik_protocol::{Bytes32, Program};
20use klvm_traits::{FromKlvm, ToKlvm};
21use klvm_utils::tree_hash;
22use klvmr::Allocator;
23
24pub fn to_program(value: impl ToKlvm<Allocator>) -> anyhow::Result<Program> {
25    let mut allocator = Allocator::new();
26    let ptr = value.to_klvm(&mut allocator)?;
27    Ok(Program::from_klvm(&allocator, ptr)?)
28}
29
30pub fn to_puzzle(value: impl ToKlvm<Allocator>) -> anyhow::Result<(Bytes32, Program)> {
31    let mut allocator = Allocator::new();
32    let ptr = value.to_klvm(&mut allocator)?;
33    let puzzle_reveal = Program::from_klvm(&allocator, ptr)?;
34    let puzzle_hash = tree_hash(&allocator, ptr);
35    Ok((puzzle_hash.into(), puzzle_reveal))
36}
37
38pub fn expect_spend<T>(result: Result<T, SimulatorError>, to_pass: bool) {
39    if let Err(error) = result {
40        assert!(!to_pass, "Expected spend to pass, but got {error}");
41    } else if !to_pass {
42        panic!("Expected spend to fail");
43    }
44}