#programs #clvm #chia #byte #processing #structures #clvmr

clvm-utils

Utility functions for processing clvm programs and structures

21 releases (11 breaking)

new 0.15.0 Oct 11, 2024
0.11.0 Aug 7, 2024
0.9.0 May 23, 2024
0.6.0 Mar 21, 2024
0.1.15 Nov 28, 2022

#5 in #chia

Download history 53/week @ 2024-06-20 37/week @ 2024-06-27 36/week @ 2024-07-04 63/week @ 2024-07-11 96/week @ 2024-07-18 280/week @ 2024-07-25 181/week @ 2024-08-01 149/week @ 2024-08-08 175/week @ 2024-08-15 145/week @ 2024-08-22 444/week @ 2024-08-29 210/week @ 2024-09-05 100/week @ 2024-09-12 317/week @ 2024-09-19 135/week @ 2024-09-26 121/week @ 2024-10-03

695 downloads per month
Used in 16 crates (12 directly)

Apache-2.0

76KB
2K SLoC

CLVM Utils

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

Currying Example

use clvm_utils::CurriedProgram;
use clvm_traits::{ToClvm, clvm_curried_args};
use clvmr::{Allocator, serde::node_to_bytes};

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

let program = a.one();

let ptr = CurriedProgram {
    program,
    args: clvm_curried_args!(42, 75),
}
.to_clvm(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

~10MB
~260K SLoC