@kleros/merkle-tree v0.2.1
Merkle Tree
Merkle Tree implementation, shamelessly adapted from @openzeppelin/contracts test utils.
Installation
yarn add @kleros/merkle-tree
# npm install --save @kleros/merkle-treeAPI
Table of Contents
constructor
Creates a Merkle Tree from an array of hex strings.
Parameters
getRoot
Gets the root of the merkle tree.
Returns Buffer root The merkle root as a Buffer.
getProof
Gets the merkle proof for a given element.
Parameters
elBuffer The element to search for the proof.
Returns Array<Buffer> proof The merkle proof.
getHexRoot
Gets the root of the merkle tree as hex.
Returns string The merkle root as a 0x-prefixed 32-byte hex string.
getHexProof
Gets the merkle proof for a given element as a 32-byte hex string.
Parameters
elstring The element to search for the proof.
Returns Array<string> proof The merkle proof as an array of 32-byte hex strings.
getWidth
Returns the number of leaf nodes in the Merkle Tree.
Returns number width The tree width.
getHeight
Returns the number of layers in the Merkle Tree.
Returns number height The tree height.
static makeLeafNode
Creates a leaf node from any number of args.
This is the equivalent of keccak256(abi.encodePacked(first, ...rest)) on Solidity.
Parameters
firstMixed The data to be transformed into a node.rest...Array<Mixed> Additional args to combine into a node.
Returns string node The sha3 (A.K.A. keccak256) hash of first, ...params as a 32-byte hex string.