chik-sdk-test 0.20.0

A wallet simulator and related tooling for testing Chik wallet code.
Documentation
mod announcements;
mod error;
mod events;
mod keys;
mod peer_simulator;
mod simulator;
mod transaction;

pub use announcements::*;
pub use error::*;
pub use events::*;
pub use keys::*;
pub use peer_simulator::*;
pub use simulator::*;
pub use transaction::*;

use chik_protocol::{Bytes32, Program};
use klvm_traits::{FromKlvm, ToKlvm};
use klvm_utils::tree_hash;
use klvmr::Allocator;

pub fn to_program(value: impl ToKlvm<Allocator>) -> anyhow::Result<Program> {
    let mut allocator = Allocator::new();
    let ptr = value.to_klvm(&mut allocator)?;
    Ok(Program::from_klvm(&allocator, ptr)?)
}

pub fn to_puzzle(value: impl ToKlvm<Allocator>) -> anyhow::Result<(Bytes32, Program)> {
    let mut allocator = Allocator::new();
    let ptr = value.to_klvm(&mut allocator)?;
    let puzzle_reveal = Program::from_klvm(&allocator, ptr)?;
    let puzzle_hash = tree_hash(&allocator, ptr);
    Ok((puzzle_hash.into(), puzzle_reveal))
}