mirror of
https://github.com/logos-messaging/js-waku.git
synced 2026-01-02 13:53:12 +00:00
* feat: use wagmi to generate contract types * feat: migrate rln from ethers to viem * fix: remove .gitmodules * fix: update readme * fix: refactor to use a single viem client object * fix: update comments, tsconfig * feat: remove membership event tracking * fix: script name in package.json and readme * fix: only allow linea sepolia * fix: consolidate viem types, typed window * fix: use viem to infer type of decoded event * fix: use js for generate abi script * feat: generate abi and build rln package as release condition * fix: check that eth_requestAccounts returns an array * fix: handle error messages * fix: use https instead of git for cloning in script * fix: add warning annotations for contract typings check * fix: install deps for rln package before building * fix: use pnpm when installing rln contracts * fix: use workspace flag to run abi script * fix: add ref to checkout action * fix: include pnpm in ci
38 lines
847 B
Markdown
38 lines
847 B
Markdown
# @waku/rln
|
|
|
|
Rate Limiting Nullifier (RLN) implementation for Waku.
|
|
|
|
## Description
|
|
|
|
This package provides RLN functionality for the Waku protocol, enabling rate-limiting capabilities while preserving privacy.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install @waku/rln
|
|
```
|
|
|
|
## Smart Contract Type Generation
|
|
|
|
We use `wagmi` to generate TypeScript bindings for interacting with the RLN smart contracts.
|
|
|
|
When changes are pushed to the `waku-rlnv2-contract` repository, run the following script to fetch and build the latest contracts and generate the TypeScript bindings:
|
|
|
|
```
|
|
npm run setup:contract-abi
|
|
```
|
|
|
|
Note that we commit/bundle the generated typings, so it's not necessary to run this script unless the contracts are updated.
|
|
|
|
## Usage
|
|
|
|
```typescript
|
|
import { RLN } from '@waku/rln';
|
|
|
|
// Usage examples coming soon
|
|
```
|
|
|
|
## License
|
|
|
|
MIT OR Apache-2.0
|