use strict_types::{CompileError, LibBuilder, TypeLib};
use crate::{mpc, MerkleHash, MerkleNode, ReservedBytes, StrictHash, LIB_NAME_COMMIT_VERIFY};
pub const LIB_ID_COMMIT_VERIFY: &str =
"stl:~lvTV1Mw-5xmhpcL-cppKeUz-ZLKBRTZ-cpYZPxp-Okxn5dk#uranium-alien-extend";
fn _commit_verify_stl() -> Result<TypeLib, CompileError> {
LibBuilder::new(libname!(LIB_NAME_COMMIT_VERIFY), tiny_bset! {
strict_types::stl::std_stl().to_dependency()
})
.transpile::<ReservedBytes<1>>()
.transpile::<ReservedBytes<2>>()
.transpile::<ReservedBytes<4>>()
.transpile::<mpc::MerkleConcealed>()
.transpile::<mpc::MerkleTree>()
.transpile::<mpc::MerkleBlock>()
.transpile::<mpc::MerkleProof>()
.transpile::<mpc::Leaf>()
.transpile::<mpc::Commitment>()
.transpile::<MerkleNode>()
.transpile::<MerkleHash>()
.transpile::<StrictHash>()
.compile()
}
pub fn commit_verify_stl() -> TypeLib {
_commit_verify_stl().expect("invalid strict type CommitVerify library")
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn lib_id() {
let lib = commit_verify_stl();
assert_eq!(lib.id().to_string(), LIB_ID_COMMIT_VERIFY);
}
}