@waku/rln
Version:
RLN (Rate Limiting Nullifier) implementation for Waku
40 lines (39 loc) • 1.4 kB
TypeScript
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 {};