LeafOp represents the raw key-value data we wish to prove, and must be flexible to represent the internal transformation from the original key-value pairs into the basis hash, for many existing merkle trees.

key and value are passed in. So that the signature of this operation is: leafOp(key, value) -> output

To process this, first prehash the keys and values if needed (ANY means no hash in this case): hkey = prehashKey(key) hvalue = prehashValue(value)

Then combine the bytes, and hash it output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue)

interface LeafOpAmino {
    hash?: HashOp;
    length?: LengthOp;
    prefix?: string;
    prehash_key?: HashOp;
    prehash_value?: HashOp;
}

Properties

hash?: HashOp
length?: LengthOp
prefix?: string

prefix is a fixed bytes that may optionally be included at the beginning to differentiate a leaf node from an inner node.

prehash_key?: HashOp
prehash_value?: HashOp