JSPM

  • Created
  • Published
  • Downloads 119
  • Score
    100M100P100Q105731F

Lib to generate and validate a merkle tree of content hashes

Package Exports

  • @dcl/content-hash-tree
  • @dcl/content-hash-tree/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@dcl/content-hash-tree) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@decentraland/content-hash-tree

Forked from @uniswap/merkle-distributor

Local Development

The following assumes the use of node@>=10.

Install Dependencies

npm ci

Lib

Generate a tree

import { generateTree } from '@dcl/content-hash-tree'

const contentHashes = ['hash1', 'hash2', 'hash3']

const tree = generateTree(contentHashes)

Verify whether a contnet hash is part of the tree or not

import { verifyProof } from '@dcl/content-hash-tree'

const contentHashes = ['hash1', 'hash2', 'hash3']
const proof = tree.getProof(0, contentHashes[0])
const root = tree.getHexRoot()

const isPartOfTheTree = verifyProof(0, contentHashes[0], proof, root)

CLI (Benchmark)

Generate a tree with ~10k content hashes

npm run generate-merkle-root:data

Time to completion 1.049s. Json size: 18mb

This will generate a proofs.json file in the root of the project.

Verify a single proof of a tree with ~10k leafs

npm run verify-merkle-root:proof

Time to completion 9.294ms. Json size: 4kb