Class: MerkleTree
A Merkle Tree is a binary tree in which every leaf is the cryptography hash of a piece of data, and every node is the hash of the concatenation of its two child nodes.
A Merkle Tree allows developers to easily and securely verify the integrity of large amounts of data.
Take a look at our documentation on how to use Merkle Trees in combination with zkApps and zero knowledge programming!
Levels are indexed from leaves (level 0) to root (level N - 1).
Table of contents
Constructors
Properties
Accessors
Methods
Constructors
constructor
• new MerkleTree(height
)
Creates a new, empty Merkle Tree.
Parameters
Name | Type | Description |
---|---|---|
height | number | The height of Merkle Tree. |
Defined in
Properties
height
• Readonly
height: number
The height of Merkle Tree.
Defined in
nodes
• Private
nodes: Record
<number
, Record
<string
, Field
>> = {}
Defined in
zeroes
• Private
zeroes: Field
[]
Defined in
Accessors
leafCount
• get
leafCount(): bigint
Returns the amount of leaf nodes.
Returns
bigint
Amount of leaf nodes.
Defined in
Methods
fill
▸ fill(leaves
): void
Fills all leaves of the tree.
Parameters
Name | Type | Description |
---|---|---|
leaves | Field [] | Values to fill the leaves with. |
Returns
void
Defined in
getNode
▸ getNode(level
, index
): Field
Returns a node which lives at a given index and level.
Parameters
Name | Type | Description |
---|---|---|
level | number | Level of the node. |
index | bigint | Index of the node. |
Returns
The data of the node.
Defined in
getRoot
▸ getRoot(): Field
Returns the root of the Merkle Tree.
Returns
The root of the Merkle Tree.
Defined in
getWitness
▸ getWitness(index
): Witness
Returns the witness (also known as Merkle Proof or Merkle Witness) for the leaf at the given index.
Parameters
Name | Type | Description |
---|---|---|
index | bigint | Position of the leaf node. |
Returns
Witness
The witness that belongs to the leaf.
Defined in
setLeaf
▸ setLeaf(index
, leaf
): void
Sets the value of a leaf node at a given index to a given value.
Parameters
Name | Type | Description |
---|---|---|
index | bigint | Position of the leaf node. |
leaf | Field | New value. |
Returns
void
Defined in
setNode
▸ Private
setNode(level
, index
, value
): void
Parameters
Name | Type |
---|---|
level | number |
index | bigint |
value | Field |
Returns
void
Defined in
validate
▸ validate(index
): boolean
Checks if the witness that belongs to the leaf at the given index is a valid witness.
Parameters
Name | Type | Description |
---|---|---|
index | bigint | Position of the leaf node. |
Returns
boolean
True if the witness for the leaf node is valid.