MerkleTree - corda

corda / net.corda.core.crypto / MerkleTree

# MerkleTree

`sealed class MerkleTree`

Creation and verification of a Merkle tree for a WireTransaction.

See: https://en.wikipedia.org/wiki/Merkle_tree

Transaction is split into following blocks: inputs, attachments' refs, outputs, commands, notary, signers, tx type, time-window. Merkle Tree is kept in a recursive data structure. Building is done bottom up, from all leaves' hashes. If number of leaves is not a power of two, the tree is padded with zero hashes.

### Types

#### Leaf | `data class Leaf : MerkleTree`
#### Node | `data class Node : MerkleTree`

### Properties

#### hash | `abstract val hash: SecureHash`

### Companion Object Functions

#### getMerkleTree | `fun getMerkleTree(allLeavesHashes: List<SecureHash>): MerkleTree` Merkle tree building using hashes, with zero hash padding to full power of 2. `fun getMerkleTree(allLeavesHashes: List<SecureHash>, nodeDigestService: DigestService): MerkleTree`