UNPKG

@jayanth-kumar-morem/indexed-merkle-tree

Version:

Indexed Merkle Tree implemented in Typescript and circom circuits using Poseidon hashing to perform non membership proofs with serialising and deserialising to off chain storage

48 lines 1.29 kB
export interface Leaf { val: bigint; nextVal: bigint; nextIdx: number; } export interface NonMembershipProof { query: bigint; preLeaf: Leaf; path: bigint[]; directions: number[]; root: bigint; } export interface SerializedIMT { depth: number; nodes: string[][]; leaves: { val: string; nextVal: string; nextIdx: number; }[]; } export declare class IndexedMerkleTree { readonly depth = 32; readonly zeros: bigint[]; readonly zero: bigint; private nodes; private leaves; constructor(); new(): Promise<IndexedMerkleTree>; private leafHash; private parentHash; private toField; private predecessorIndex; private setNode; insert(x: bigint): Promise<void>; private updateLeafHash; get root(): bigint; createNonMembershipProof(x: bigint): NonMembershipProof; verifyNonMembershipProof(p: NonMembershipProof): boolean; serialize(): SerializedIMT; static deserialize(data: SerializedIMT): IndexedMerkleTree; saveToFile(filePath: string): Promise<void>; static loadFromFile(filePath: string): IndexedMerkleTree; get size(): number; getLeaves(): Leaf[]; getNodesAtLevel(level: number): bigint[]; } //# sourceMappingURL=index.d.ts.map