/semaphore-merkle-tree

A fork of zkp-sbmtjs

Primary LanguageTypeScript

semaphore-merkle-tree

This package offers a Merkle tree implementation which is meant to work with the Semaphore zero-knowledge signalling system.

Installation

npm i semaphore-merkle-tree

Usage

import { storage, hashers, tree } from 'semaphore-merkle-tree'

const storage = new storage.MemStorage()
const hasher = new hashers.MimcSpongeHasher();
const prefix = 'semaphore';
const default_value = '0';
const depth = 2

const tree = new tree.MerkleTree(
    prefix,
    storage,
    hasher,
    depth,
    default_value,
)

Functions

tree.update(index, value)

Adds value to the leaf at index

tree.path(index)

Returns the Merkle path to the leaf at the specified index

tree.rollback(updates)

Rolls back the tree by the specified number of updates

Building

git clone https://github.com/weijiekoh/semaphore-merkle-tree.git && \
cd semaphore-merkle-tree && \
npm i && \
npm run build

Testing

npm run test