@waku/rln
Version:
RLN (Rate Limiting Nullifier) implementation for Waku
32 lines (28 loc) • 839 B
text/typescript
import { ethers } from "ethers";
import { IdentityCredential } from "./identity.js";
import {
DecryptedCredentials,
EncryptedCredentials
} from "./keystore/types.js";
export type StartRLNOptions = {
/**
* If not set - will extract MetaMask account and get signer from it.
*/
signer?: ethers.Signer;
/**
* If not set - will use default SEPOLIA_CONTRACT address.
*/
address?: string;
/**
* Credentials to use for generating proofs and connecting to the contract and network.
* If provided used for validating the network chainId and connecting to registry contract.
*/
credentials?: EncryptedCredentials | DecryptedCredentials;
/**
* Rate limit for the member.
*/
rateLimit?: number;
};
export type RegisterMembershipOptions =
| { signature: string }
| { identity: IdentityCredential };