Merkle Tree implementation, shamelessly adapted from @openzeppelin/contracts
test utils.
yarn add @kleros/merkle-tree
# npm install --save @kleros/merkle-tree
Creates a Merkle Tree from an array of hex strings.
Gets the root of the merkle tree.
Returns Buffer root The merkle root as a Buffer.
Gets the merkle proof for a given element.
el
Buffer The element to search for the proof.
Returns Array<Buffer> proof The merkle proof.
Gets the root of the merkle tree as hex.
Returns string The merkle root as a 0x-prefixed 32-byte hex string.
Gets the merkle proof for a given element as a 32-byte hex string.
el
string The element to search for the proof.
Returns Array<string> proof The merkle proof as an array of 32-byte hex strings.
Returns the number of leaf nodes in the Merkle Tree.
Returns number width The tree width.
Returns the number of layers in the Merkle Tree.
Returns number height The tree height.
Creates a leaf node from any number of args.
This is the equivalent of keccak256(abi.encodePacked(first, ...rest))
on Solidity.
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.