0.2.1 • Published 3 years ago

@kleros/merkle-tree v0.2.1

Weekly downloads
166
License
MIT
Repository
-
Last release
3 years ago

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.

0.2.1

3 years ago

0.2.0

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago