@kleros/merkle-tree
v0.2.1
Published
Implementation of a Merkle Tree in plain TypeScript
Downloads
7
Keywords
Readme
Merkle Tree
Merkle Tree implementation, shamelessly adapted from @openzeppelin/contracts
test utils.
Installation
yarn add @kleros/merkle-tree
# npm install --save @kleros/merkle-tree
API
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
el
Buffer 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
el
string 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
first
Mixed 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.