Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Epic: js-waku] User Pays Own RLN Membership #109

Open
1 of 2 tasks
fryorcraken opened this issue Jan 10, 2024 · 3 comments
Open
1 of 2 tasks

[Epic: js-waku] User Pays Own RLN Membership #109

fryorcraken opened this issue Jan 10, 2024 · 3 comments
Assignees

Comments

@fryorcraken
Copy link
Contributor

fryorcraken commented Jan 10, 2024

Epic label: E:js-waku User Pays Own RLN Membership

Summary

Enable developers to build application where the users pays for their own credentials.

Acceptance Criteria

  • A developer can build a web app for which a user generate credentials and push them to the RLN smart contract.
  • The API needs to be simple enough so it is usable in a hackathon and can be documented.
  • Import/export to keystore JSON file is supported

Tasks

Notes

For the sake of developer experience, the API should be simple and easy to use (e.g. in less than 20 lines). This means that the library may need to be opinionated in the way contract events are handled, what web3 library is used (etherjs), etc.

Consideration needs to be made on how to handle that in the js-waku package ecosystem. For example. should this be part of the @waku/sdk (I would suggest yes).

Notes that waku-org/research#45 is not in the scope of the issue. The intent is to get RLN in the hands of developer, the second priority will be to fix the UX.

@fryorcraken fryorcraken added this to the User Pays Own RLN Membership milestone Jan 10, 2024
@weboko weboko self-assigned this Jan 10, 2024
@weboko
Copy link

weboko commented Jan 23, 2024

Execution plan

Step 1: improve bootstrapping and connection to ethereum

Metamask:

  • abstraction to get provider with triggering dialog from Metamask
  • ability to pass it from outside

RLN Instance:

  • dedicated step for starting: bootstraps RLN Contract
  • expose RLN contract from instance

Example showcasing it

PRs: waku-org/js-rln#92, waku-org/examples.waku.org#297

Step 2: improve cred management, verification

Keystore

  • easy way to import or hardcode credentials
  • easier way to register credential (use case: simple chat app, e.g light-js)
  • example showcasing Keystore and cred registration

Verification:

  • embed verification into DecodedMessage so that all messages received can be verified;

PR: waku-org/js-rln#93, waku-org/examples.waku.org#299

Step 3: include into @waku/sdk and improve RLN instance interface

RLN Instance:

  • make it resembling Waku node: rln contract exposed;
  • separation of member management and proof verification;

Files:

  • do basic reorganization: e.g rln.ts is too chunky

@weboko
Copy link

weboko commented Feb 5, 2024

Leftovers:

@chair28980 chair28980 changed the title [js-waku] User Pays Own RLN Membership [Epic: js-waku] User Pays Own RLN Membership Feb 14, 2024
@fryorcraken
Copy link
Contributor Author

fryorcraken commented Jun 5, 2024

This is descoped in favour of deliverable "Provision RLN for light push clients PoC" cc @weboko

@chair28980 chair28980 removed this from the User Pays Own RLN Membership milestone Jun 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Code Review / QA
Development

No branches or pull requests

3 participants