UNPKG

@cryptkeeperzk/rlnjs

Version:

Client library for generating and using RLN ZK proofs, is a forked repo from main Rate-Limiting-Nullifier/rlnjs to make it work with Cryptkeeper Browser Extension using `@cryptkeeperzk/snarkjs` and `@cryptkeeperzk/ffjavascript`

59 lines (58 loc) 1.99 kB
import { Proof } from './types'; import { ethers } from 'ethers'; export declare const rlnContractABI: any; type User = { userAddress: string; messageLimit: bigint; index: bigint; }; type Withdrawal = { blockNumber: bigint; amount: bigint; receiver: string; }; /** event MemberRegistered(uint256 identityCommitment, uint256 messageLimit, uint256 index); event MemberWithdrawn(uint256 index); event MemberSlashed(uint256 index, address slasher); */ export type EventMemberRegistered = { name: 'MemberRegistered'; identityCommitment: bigint; messageLimit: bigint; index: bigint; }; export type EventMemberWithdrawn = { name: 'MemberWithdrawn'; index: bigint; }; export type EventMemberSlashed = { name: 'MemberSlashed'; index: bigint; slasher: string; }; export declare class RLNContract { private provider; private signer?; private rlnContract; private contractAtBlock; constructor(args: { provider: ethers.Provider; signer?: ethers.Signer; contractAddress: string; contractAtBlock: number; }); private getContractRunner; getTokenAddress(): Promise<any>; getSignerAddress(): Promise<string>; getLogs(): Promise<(EventMemberRegistered | EventMemberWithdrawn | EventMemberSlashed)[]>; private handleLog; register(identityCommitment: bigint, messageLimit: bigint): Promise<ethers.TransactionReceipt>; getUser(identityCommitment: bigint): Promise<User>; getWithdrawal(identityCommitment: bigint): Promise<Withdrawal>; withdraw(identityCommitment: bigint, proof: Proof): Promise<ethers.TransactionReceipt>; release(identityCommitment: bigint): Promise<ethers.TransactionReceipt>; slash(identityCommitment: bigint, receiver: string, proof: Proof): Promise<ethers.TransactionReceipt>; isRegistered(identityCommitment: bigint): Promise<boolean>; } export {};