net.corda.core.transactions / MerkleTree

# MerkleTree

`sealed class MerkleTree`

Creation and verification of a Merkle Tree for a Wire Transaction.

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

Transaction is split into following blocks: inputs, outputs, commands, attachments refs. Merkle Tree is kept in a recursive data structure. Building is done bottom up, from all leaves hashes. If a row in a tree has an odd number of elements - the final hash is hashed with itself.

### Types

DuplicatedLeaf | `class DuplicatedLeaf : MerkleTree`
Leaf | `class Leaf : MerkleTree`
Node | `class Node : MerkleTree`

### Properties

hash | `val hash: SecureHash`

### Functions

hashNodes | `fun hashNodes(right: MerkleTree): MerkleTree`

### Companion Object Functions

getMerkleTree | `fun getMerkleTree(allLeavesHashes: List<SecureHash>): MerkleTree` Merkle tree building using hashes.

### Inheritors

DuplicatedLeaf | `class DuplicatedLeaf : MerkleTree`
Leaf | `class Leaf : MerkleTree`
Node | `class Node : MerkleTree`