Struct simplicity::Imr
source · pub struct Imr(/* private fields */);Expand description
Identity Merkle root
A Merkle root that commits to a node’s combinator, its witness data (if present), its source and target types, and recursively its children.
Uniquely identifies a program’s structure in terms of combinators at redemption time.
Implementations§
source§impl Imr
impl Imr
sourcepub fn update(self, left: Self, right: Self) -> Self
pub fn update(self, left: Self, right: Self) -> Self
Extend the given tagged hash by the given left and right hashes.
The hash self is taken as initial value,
left and right hash are combined to create a 512-bit block,
and the compression function is run once
sourcepub fn update_1(self, right: Self) -> Self
pub fn update_1(self, right: Self) -> Self
Extend the given tagged hash by 256 bits of zeroes and the right hash.
The hash self is taken as initial value,
256 bits of zeroes and right hash are combined to create a 512-bit block,
and the compression function is run once
sourcepub fn update_with_weight(self, left_weight: u64, right: Self) -> Self
pub fn update_with_weight(self, left_weight: u64, right: Self) -> Self
Updates the given tagged hash with given left cost and right hash.
The cost is serialized as the last 64 bits in the left block
pub fn update_fail_entropy(self, entropy: FailEntropy) -> Self
sourcepub fn from_byte_array(data: [u8; 32]) -> Self
pub fn from_byte_array(data: [u8; 32]) -> Self
Converts the given tagged hash into a byte array
sourcepub fn to_byte_array(self) -> [u8; 32]
pub fn to_byte_array(self) -> [u8; 32]
Converts the given tagged hash into a byte array
source§impl Imr
impl Imr
sourcepub fn compute_pass2(first_pass: FirstPassImr, ty: &FinalArrow) -> Imr
pub fn compute_pass2(first_pass: FirstPassImr, ty: &FinalArrow) -> Imr
Do the second pass of the IMR computation. This must be called on the result of first pass.
Trait Implementations§
source§impl Ord for Imr
impl Ord for Imr
source§impl PartialOrd for Imr
impl PartialOrd for Imr
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read more