@kleros/merkle-tree
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

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

  • leafNodes Array<string> An array of 32-byte hex strings.

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.

Readme

Keywords

none

Package Sidebar

Install

npm i @kleros/merkle-tree

Weekly Downloads

4

Version

0.2.1

License

MIT

Unpacked Size

6.29 MB

Total Files

25

Last publish

Collaborators

  • greenlucid
  • jaybuidl
  • alcercu
  • clesaege
  • ferittuncer
  • danild