MerkleTree
Defined in: lib/provable/merkle-tree.ts:28
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).
Constructors
new MerkleTree()
new MerkleTree(height: number): MerkleTree
Defined in: lib/provable/merkle-tree.ts:37
Creates a new, empty Merkle Tree.
Parameters
height
number
The height of Merkle Tree.
Returns
A new MerkleTree
Properties
height
readonly height: number;
Defined in: lib/provable/merkle-tree.ts:37
The height of Merkle Tree.
nodes
nodes: Record<number, Record<string, Field>> = {};
Defined in: lib/provable/merkle-tree.ts:29
zeroes
zeroes: Field[];
Defined in: lib/provable/merkle-tree.ts:30
Accessors
leafCount
Get Signature
get leafCount(): bigint
Defined in: lib/provable/merkle-tree.ts:160
Returns the amount of leaf nodes.
Returns
bigint
Amount of leaf nodes.
Methods
clone()
clone(): MerkleTree
Defined in: lib/provable/merkle-tree.ts:48
Return a new MerkleTree with the same contents as this one.
Returns
fill()
fill(leaves: Field[]): void
Defined in: lib/provable/merkle-tree.ts:150
Fills all leaves of the tree.
Parameters
leaves
Field
[]
Values to fill the leaves with.
Returns
void
getLeaf()
getLeaf(index: bigint): Field
Defined in: lib/provable/merkle-tree.ts:71
Returns a leaf at a given index.
Parameters
index
bigint
Index of the leaf.
Returns
The data of the leaf.
getNode()
getNode(level: number, index: bigint): Field
Defined in: lib/provable/merkle-tree.ts:62
Returns a node which lives at a given index and level.
Parameters
level
number
Level of the node.
index
bigint
Index of the node.
Returns
The data of the node.
getRoot()
getRoot(): Field
Defined in: lib/provable/merkle-tree.ts:79
Returns the root of the Merkle Tree.
Returns
The root of the Merkle Tree.
getWitness()
getWitness(index: bigint): Witness
Defined in: lib/provable/merkle-tree.ts:115
Returns the witness (also known as Merkle Proof or Merkle Witness) for the leaf at the given index.
Parameters
index
bigint
Position of the leaf node.
Returns
The witness that belongs to the leaf.
setLeaf()
setLeaf(index: bigint, leaf: Field): void
Defined in: lib/provable/merkle-tree.ts:94
Sets the value of a leaf node at a given index to a given value.
Parameters
index
bigint
Position of the leaf node.
leaf
New value.
Returns
void
validate()
validate(index: bigint): boolean
Defined in: lib/provable/merkle-tree.ts:135
Checks if the witness that belongs to the leaf at the given index is a valid witness.
Parameters
index
bigint
Position of the leaf node.
Returns
boolean
True if the witness for the leaf node is valid.