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

klvm-utils

Utility functions for processing klvm programs and structures

10 releases (6 breaking)

0.8.0 May 16, 2024
0.6.0 Apr 15, 2024
0.5.1 Feb 21, 2024
0.2.12 Nov 21, 2023
0.2.7 Jul 24, 2023

#2652 in Magic Beans

Download history 553/week @ 2024-02-12 200/week @ 2024-02-19 39/week @ 2024-02-26 13/week @ 2024-03-11 40/week @ 2024-04-01 149/week @ 2024-04-15 330/week @ 2024-05-13 38/week @ 2024-05-20

368 downloads per month
Used in 6 crates (5 directly)

Apache-2.0

58KB
1.5K 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

~11MB
~299K SLoC