Sasha 85d8156b7a
feat: re-work rln-js (#281)
* use next.js tempalte

* use next lint rules

* alight UI

* fix problem with margins

* remove old page, rename to hooks

* add constants

* create RLN service, add utils

* add RLN init

* refactor a bit

* add init for Keystore

* add store functions

* add styles

* add contract hooks, add store fields, fix multiple downloads issue

* add features

* add keystore read logic

* add import export

* combine to useContract

* add useWaku stub, add state to Waku block, styles

* add creation of a node

* add messages functionality

* up readme

* update CI

* update readme

* remove and rename, address comments

* update readme

* move const
2023-11-20 19:00:11 +03:00

30 lines
892 B
Markdown

# Using [RLN](https://rfc.vac.dev/spec/32/) in JavaScript
> Rate limiting nullifier (RLN) is a construct based on zero-knowledge proofs
> that provides an anonymous rate-limited signaling/messaging framework
> suitable for decentralized (and centralized) environments
**Demonstrates**:
- RLN:
- Generate credentials
- Insert membership to smart contract (Goerli testnet)
- Retrieve smart contract state
- Generate and send proofs
- Verify incoming proofs
- Keystore
- Next.js framework
# Getting Started
```shell
git clone https://github.com/waku-org/js-waku-examples
cd js-waku-examples/examples/rln-js
npm install
npm run dev
# open http://127.0.0.1:3000 In your browser
```
**There are a known issue using this webapp with Firefox + MetaMask. Try Chrome or Brave if you encounter any issue**.
The `master` branch's HEAD is deployed at https://examples.waku.org/rln-js/.