#klvm #byte #programs #processing #structures #values #utilities

klvm-utils

Utility functions for processing klvm programs and structures

12 releases (breaking)

0.10.0 Jul 11, 2024
0.8.0 May 16, 2024
0.5.1 Feb 21, 2024
0.2.12 Nov 21, 2023
0.2.7 Jul 24, 2023

#165 in #processing

35 downloads per month
Used in 8 crates (7 directly)

Apache-2.0

65KB
2K SLoC

KLVM Utils

This provides various commonly needed utilities for working with KLVM values.

Currying Example

use klvm_utils::CurriedProgram;
use klvm_traits::{ToKlvm, klvm_curried_args};
use klvmr::{Allocator, serde::node_to_bytes};

let a = &mut Allocator::new();

let program = a.one();

let ptr = CurriedProgram {
    program,
    args: klvm_curried_args!(42, 75),
}
.to_klvm(a)
.unwrap();

let hex = hex::encode(node_to_bytes(a, ptr).unwrap());

// (a (q . 1) (c (q . 42) (c (q . 75) 1)))
assert_eq!(hex, "ff02ffff0101ffff04ffff012affff04ffff014bff01808080");

Dependencies

~12MB
~300K SLoC