UNPKG

@waku/rln

Version:

RLN (Rate Limiting Nullifier) implementation for Waku

24 lines (23 loc) 1.47 kB
import type { IRateLimitProof } from "@waku/interfaces"; import { IdentityCredential } from "./identity.js"; import { WitnessCalculator } from "./resources/witness_calculator"; export declare class Zerokit { private readonly zkRLN; private readonly witnessCalculator; private readonly _rateLimit; constructor(zkRLN: number, witnessCalculator: WitnessCalculator, _rateLimit?: number); get getZkRLN(): number; get getWitnessCalculator(): WitnessCalculator; get rateLimit(): number; generateIdentityCredentials(): IdentityCredential; generateSeededIdentityCredential(seed: string): IdentityCredential; insertMember(idCommitment: Uint8Array): void; insertMembers(index: number, ...idCommitments: Array<Uint8Array>): void; deleteMember(index: number): void; getMerkleRoot(): Uint8Array; serializeMessage(uint8Msg: Uint8Array, memIndex: number, epoch: Uint8Array, idKey: Uint8Array, rateLimit?: number): Uint8Array; generateRLNProof(msg: Uint8Array, index: number, epoch: Uint8Array | Date | undefined, idSecretHash: Uint8Array, rateLimit?: number): Promise<IRateLimitProof>; verifyRLNProof(proof: IRateLimitProof | Uint8Array, msg: Uint8Array, rateLimit?: number): boolean; verifyWithRoots(proof: IRateLimitProof | Uint8Array, msg: Uint8Array, roots: Array<Uint8Array>, rateLimit?: number): boolean; verifyWithNoRoot(proof: IRateLimitProof | Uint8Array, msg: Uint8Array, rateLimit?: number): boolean; }