UNPKG

@waku/rln

Version:

RLN (Rate Limiting Nullifier) implementation for Waku

40 lines (39 loc) 1.4 kB
import * as ethers from "ethers"; import sinon from "sinon"; import type { IdentityCredential } from "../identity.js"; export declare const mockRateLimits: { minRate: number; maxRate: number; maxTotalRate: number; currentTotalRate: number; }; type MockProvider = { getLogs: () => never[]; getBlockNumber: () => Promise<number>; getNetwork: () => Promise<{ chainId: number; }>; }; type MockFilters = { MembershipRegistered: () => { address: string; }; MembershipErased: () => { address: string; }; MembershipExpired: () => { address: string; }; }; export declare function createMockProvider(): MockProvider; export declare function createMockFilters(): MockFilters; type ContractOverrides = Partial<{ filters: Record<string, unknown>; [key: string]: unknown; }>; export declare function createMockRegistryContract(overrides?: ContractOverrides): ethers.Contract; export declare function mockRLNRegisteredEvent(idCommitment?: string): ethers.Event; export declare function formatIdCommitment(idCommitmentBigInt: bigint): string; export declare function createRegisterStub(identity: IdentityCredential): sinon.SinonStub; export declare function verifyRegistration(decryptedCredentials: any, identity: IdentityCredential, registerStub: sinon.SinonStub, insertMemberSpy: sinon.SinonStub): void; export {};