@waku/rln 0.0.2-3ab8023.0 → 0.0.2-9094860.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/bundle/_virtual/utils.js +2 -2
  2. package/bundle/_virtual/utils2.js +2 -2
  3. package/bundle/index.js +2 -0
  4. package/bundle/packages/rln/dist/contract/rln_contract.js +30 -150
  5. package/bundle/packages/rln/dist/identity_generator.js +75 -0
  6. package/bundle/packages/rln/dist/rln.js +0 -2
  7. package/bundle/packages/rln/dist/rln_light.js +228 -0
  8. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/random.js +1 -1
  9. package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/utils.js +2 -2
  10. package/bundle/packages/rln/node_modules/@noble/hashes/_sha2.js +1 -1
  11. package/bundle/packages/rln/node_modules/@noble/hashes/hmac.js +1 -1
  12. package/bundle/packages/rln/node_modules/@noble/hashes/pbkdf2.js +1 -1
  13. package/bundle/packages/rln/node_modules/@noble/hashes/scrypt.js +1 -1
  14. package/bundle/packages/rln/node_modules/@noble/hashes/sha256.js +1 -1
  15. package/bundle/packages/rln/node_modules/@noble/hashes/sha512.js +1 -1
  16. package/bundle/packages/rln/node_modules/@noble/hashes/utils.js +1 -1
  17. package/dist/.tsbuildinfo +1 -1
  18. package/dist/contract/rln_contract.d.ts +4 -10
  19. package/dist/contract/rln_contract.js +30 -150
  20. package/dist/contract/rln_contract.js.map +1 -1
  21. package/dist/identity_generator.d.ts +19 -0
  22. package/dist/identity_generator.js +72 -0
  23. package/dist/identity_generator.js.map +1 -0
  24. package/dist/index.d.ts +4 -1
  25. package/dist/index.js +3 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/rln.js +0 -2
  28. package/dist/rln.js.map +1 -1
  29. package/dist/rln_light.d.ts +95 -0
  30. package/dist/rln_light.js +210 -0
  31. package/dist/rln_light.js.map +1 -0
  32. package/package.json +1 -1
  33. package/src/contract/rln_contract.ts +36 -218
  34. package/src/identity_generator.ts +108 -0
  35. package/src/index.ts +15 -0
  36. package/src/rln.ts +0 -3
  37. package/src/rln_light.ts +304 -0
@@ -0,0 +1,95 @@
1
+ import { ethers } from "ethers";
2
+ import { RLNContract } from "./contract/index.js";
3
+ import { IdentityCredential } from "./identity.js";
4
+ import type { DecryptedCredentials, EncryptedCredentials } from "./keystore/index.js";
5
+ import { Password } from "./keystore/types.js";
6
+ /**
7
+ * Options for starting the RLNLight instance
8
+ */
9
+ type StartRLNLightOptions = {
10
+ /**
11
+ * If not set - will extract MetaMask account and get signer from it.
12
+ */
13
+ signer?: ethers.Signer;
14
+ /**
15
+ * If not set - will use default SEPOLIA_CONTRACT address.
16
+ */
17
+ address?: string;
18
+ /**
19
+ * Credentials to use for membership registration.
20
+ * If provided used for validating the network chainId and connecting to registry contract.
21
+ */
22
+ credentials?: EncryptedCredentials | DecryptedCredentials;
23
+ /**
24
+ * Rate limit for the member.
25
+ */
26
+ rateLimit?: number;
27
+ };
28
+ /**
29
+ * Options for registering membership
30
+ */
31
+ type RegisterMembershipOptions = {
32
+ signature: string;
33
+ } | {
34
+ identity: IdentityCredential;
35
+ };
36
+ /**
37
+ * Lightweight RLN implementation without Zerokit
38
+ * Only supports Keystore and membership registration
39
+ */
40
+ export declare class RLNLight {
41
+ private started;
42
+ private starting;
43
+ private _contract;
44
+ private _signer;
45
+ private keystore;
46
+ private _credentials;
47
+ private identityGenerator;
48
+ get contract(): undefined | RLNContract;
49
+ get signer(): undefined | ethers.Signer;
50
+ /**
51
+ * Get the current credentials
52
+ */
53
+ get credentials(): undefined | DecryptedCredentials;
54
+ /**
55
+ * Start the RLNLight instance
56
+ * @param options Configuration options
57
+ */
58
+ start(options?: StartRLNLightOptions): Promise<void>;
59
+ /**
60
+ * Find credentials in the keystore by contract address
61
+ */
62
+ private findCredentialsByAddress;
63
+ /**
64
+ * Determine the correct options for starting RLNLight
65
+ */
66
+ private determineStartOptions;
67
+ /**
68
+ * Decrypt credentials if they are encrypted
69
+ */
70
+ private static decryptCredentialsIfNeeded;
71
+ /**
72
+ * Register a membership using an identity or signature
73
+ * @param options Options including identity or signature
74
+ * @returns Decrypted credentials if successful
75
+ */
76
+ registerMembership(options: RegisterMembershipOptions): Promise<undefined | DecryptedCredentials>;
77
+ /**
78
+ * Changes credentials in use by relying on provided Keystore
79
+ * @param id Hash of credentials to select from Keystore
80
+ * @param password Password to decrypt credentials from Keystore
81
+ */
82
+ useCredentials(id: string, password: Password): Promise<void>;
83
+ /**
84
+ * Generate a new identity credential
85
+ * @returns New identity credential
86
+ */
87
+ generateIdentityCredential(): IdentityCredential;
88
+ /**
89
+ * Generate a seeded identity credential
90
+ * @param seed Seed string to generate deterministic identity
91
+ * @returns Seeded identity credential
92
+ */
93
+ generateSeededIdentityCredential(seed: string): IdentityCredential;
94
+ }
95
+ export {};
@@ -0,0 +1,210 @@
1
+ import { Logger } from "@waku/utils";
2
+ import { RLNContract, SEPOLIA_CONTRACT } from "./contract/index.js";
3
+ import { IdentityGenerator } from "./identity_generator.js";
4
+ import { Keystore } from "./keystore/index.js";
5
+ import { extractMetaMaskSigner } from "./utils/index.js";
6
+ const log = new Logger("waku:rln-light");
7
+ /**
8
+ * Lightweight RLN implementation without Zerokit
9
+ * Only supports Keystore and membership registration
10
+ */
11
+ export class RLNLight {
12
+ started = false;
13
+ starting = false;
14
+ _contract;
15
+ _signer;
16
+ keystore = Keystore.create();
17
+ _credentials;
18
+ identityGenerator = new IdentityGenerator();
19
+ get contract() {
20
+ return this._contract;
21
+ }
22
+ get signer() {
23
+ return this._signer;
24
+ }
25
+ /**
26
+ * Get the current credentials
27
+ */
28
+ get credentials() {
29
+ return this._credentials;
30
+ }
31
+ /**
32
+ * Start the RLNLight instance
33
+ * @param options Configuration options
34
+ */
35
+ async start(options = {}) {
36
+ if (this.started || this.starting) {
37
+ log.warn("RLNLight already started or starting");
38
+ return;
39
+ }
40
+ this.starting = true;
41
+ try {
42
+ // Determine correct options based on credentials, if any
43
+ const keystoreCredentials = options.address
44
+ ? await this.findCredentialsByAddress(options.address)
45
+ : undefined;
46
+ const startOptions = await this.determineStartOptions(options, keystoreCredentials);
47
+ // Set the signer
48
+ if (startOptions.signer) {
49
+ this._signer = startOptions.signer;
50
+ }
51
+ else {
52
+ this._signer = await extractMetaMaskSigner();
53
+ }
54
+ // Initialize the contract with the correct address format
55
+ const finalAddress = typeof startOptions.address === "string"
56
+ ? startOptions.address
57
+ : SEPOLIA_CONTRACT.address;
58
+ const contractOptions = {
59
+ signer: this._signer,
60
+ address: finalAddress,
61
+ rateLimit: startOptions.rateLimit
62
+ };
63
+ // We need to create a minimal compatible object with RLNInstance interface
64
+ // but we only need it for contract initialization
65
+ const compatibleRLN = {
66
+ zerokit: {
67
+ getMerkleRoot: () => new Uint8Array(32),
68
+ insertMember: (_idCommitment) => { },
69
+ insertMembers: (_index, ..._idCommitments) => { },
70
+ deleteMember: (_index) => { }
71
+ }
72
+ };
73
+ this._contract = await RLNContract.init(
74
+ // Type assertion needed for compatibility with RLNInstance interface
75
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
76
+ compatibleRLN, contractOptions);
77
+ this.started = true;
78
+ }
79
+ catch (error) {
80
+ log.error("Failed to start RLNLight:", error);
81
+ throw error;
82
+ }
83
+ finally {
84
+ this.starting = false;
85
+ }
86
+ }
87
+ /**
88
+ * Find credentials in the keystore by contract address
89
+ */
90
+ async findCredentialsByAddress(address) {
91
+ // Since Keystore doesn't have a direct method to find by address,
92
+ // we need to iterate through all credentials
93
+ const hashes = this.keystore.keys();
94
+ for (const hash of hashes) {
95
+ try {
96
+ // Try with an empty password - this won't work but lets us check schema
97
+ const credential = await this.keystore.readCredential(hash, new Uint8Array(0));
98
+ if (credential?.membership.address === address) {
99
+ return credential;
100
+ }
101
+ }
102
+ catch (e) {
103
+ // Ignore errors, just means we couldn't read this credential
104
+ }
105
+ }
106
+ return undefined;
107
+ }
108
+ /**
109
+ * Determine the correct options for starting RLNLight
110
+ */
111
+ async determineStartOptions(options, credentials) {
112
+ if (options.credentials) {
113
+ const { credentials: decrypted } = await RLNLight.decryptCredentialsIfNeeded(options.credentials);
114
+ if (decrypted?.membership) {
115
+ this._credentials = decrypted;
116
+ return {
117
+ ...options,
118
+ address: decrypted.membership.address
119
+ };
120
+ }
121
+ }
122
+ else if (credentials) {
123
+ return {
124
+ ...options,
125
+ address: credentials.membership.address
126
+ };
127
+ }
128
+ return options;
129
+ }
130
+ /**
131
+ * Decrypt credentials if they are encrypted
132
+ */
133
+ static async decryptCredentialsIfNeeded(credentials) {
134
+ if (!credentials) {
135
+ return {};
136
+ }
137
+ if ("identity" in credentials) {
138
+ return { credentials };
139
+ }
140
+ else {
141
+ const keystore = Keystore.create();
142
+ try {
143
+ const decrypted = await keystore.readCredential(credentials.id, credentials.password);
144
+ if (!decrypted) {
145
+ return {};
146
+ }
147
+ return {
148
+ credentials: {
149
+ identity: decrypted.identity,
150
+ membership: decrypted.membership
151
+ },
152
+ keystore
153
+ };
154
+ }
155
+ catch (e) {
156
+ log.error("Failed to decrypt credentials", e);
157
+ return {};
158
+ }
159
+ }
160
+ }
161
+ /**
162
+ * Register a membership using an identity or signature
163
+ * @param options Options including identity or signature
164
+ * @returns Decrypted credentials if successful
165
+ */
166
+ async registerMembership(options) {
167
+ if (!this.contract) {
168
+ throw Error("RLN Contract is not initialized.");
169
+ }
170
+ let identity = "identity" in options && options.identity;
171
+ if ("signature" in options) {
172
+ identity = this.identityGenerator.generateSeededIdentityCredential(options.signature);
173
+ }
174
+ if (!identity) {
175
+ throw Error("Missing signature or identity to register membership.");
176
+ }
177
+ return this.contract.registerWithIdentity(identity);
178
+ }
179
+ /**
180
+ * Changes credentials in use by relying on provided Keystore
181
+ * @param id Hash of credentials to select from Keystore
182
+ * @param password Password to decrypt credentials from Keystore
183
+ */
184
+ async useCredentials(id, password) {
185
+ const decrypted = await this.keystore.readCredential(id, password);
186
+ if (!decrypted) {
187
+ throw new Error("Credentials not found or incorrect password");
188
+ }
189
+ this._credentials = {
190
+ identity: decrypted.identity,
191
+ membership: decrypted.membership
192
+ };
193
+ }
194
+ /**
195
+ * Generate a new identity credential
196
+ * @returns New identity credential
197
+ */
198
+ generateIdentityCredential() {
199
+ return this.identityGenerator.generateIdentityCredentials();
200
+ }
201
+ /**
202
+ * Generate a seeded identity credential
203
+ * @param seed Seed string to generate deterministic identity
204
+ * @returns Seeded identity credential
205
+ */
206
+ generateSeededIdentityCredential(seed) {
207
+ return this.identityGenerator.generateSeededIdentityCredential(seed);
208
+ }
209
+ }
210
+ //# sourceMappingURL=rln_light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rln_light.js","sourceRoot":"","sources":["../src/rln_light.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@waku/rln","version":"0.0.2-3ab8023.0","description":"RLN (Rate Limiting Nullifier) implementation for Waku","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"type":"module","homepage":"https://github.com/waku-org/js-waku/tree/master/packages/rln#readme","repository":{"type":"git","url":"https://github.com/waku-org/js-waku.git"},"bugs":{"url":"https://github.com/waku-org/js-waku/issues"},"license":"MIT OR Apache-2.0","keywords":["waku","rln","rate-limiting","privacy","web3"],"scripts":{"build":"run-s build:**","build:copy":"mkdir -p dist/resources && cp -r src/resources/* dist/resources/","build:esm":"tsc","build:bundle":"rollup --config rollup.config.js","fix":"run-s fix:*","fix:lint":"eslint src *.js --fix","check":"run-s check:*","check:tsc":"tsc -p tsconfig.dev.json","check:lint":"eslint \"src/!(resources)/**/*.{ts,js}\" *.js","check:spelling":"cspell \"{README.md,src/**/*.ts}\"","test":"NODE_ENV=test run-s test:*","test:browser":"karma start karma.conf.cjs","watch:build":"tsc -p tsconfig.json -w","watch:test":"mocha --watch","prepublish":"npm run build","reset-hard":"git clean -dfx -e .idea && git reset --hard && npm i && npm run build"},"engines":{"node":">=20"},"devDependencies":{"@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.2.3","@types/chai":"^5.0.1","@types/chai-spies":"^1.0.6","@types/deep-equal-in-any-order":"^1.0.4","@types/lodash":"^4.17.15","@types/sinon":"^17.0.3","@waku/build-utils":"^1.0.0","@waku/message-encryption":"0.0.32-3ab8023.0","chai":"^5.1.2","chai-as-promised":"^8.0.1","chai-spies":"^1.1.0","chai-subset":"^1.6.0","deep-equal-in-any-order":"^2.0.6","fast-check":"^3.23.2","rollup-plugin-copy":"^3.5.0","sinon":"^19.0.2"},"files":["dist","bundle","src/**/*.ts","!**/*.spec.*","!**/*.json","CHANGELOG.md","LICENSE","README.md"],"dependencies":{"@chainsafe/bls-keystore":"3.0.0","@waku/core":"0.0.34-3ab8023.0","@waku/utils":"0.0.22-3ab8023.0","@waku/zerokit-rln-wasm":"^0.0.13","ethereum-cryptography":"^3.1.0","ethers":"^5.7.2","lodash":"^4.17.21","uuid":"^11.0.5"}}
1
+ {"name":"@waku/rln","version":"0.0.2-9094860.0","description":"RLN (Rate Limiting Nullifier) implementation for Waku","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"type":"module","homepage":"https://github.com/waku-org/js-waku/tree/master/packages/rln#readme","repository":{"type":"git","url":"https://github.com/waku-org/js-waku.git"},"bugs":{"url":"https://github.com/waku-org/js-waku/issues"},"license":"MIT OR Apache-2.0","keywords":["waku","rln","rate-limiting","privacy","web3"],"scripts":{"build":"run-s build:**","build:copy":"mkdir -p dist/resources && cp -r src/resources/* dist/resources/","build:esm":"tsc","build:bundle":"rollup --config rollup.config.js","fix":"run-s fix:*","fix:lint":"eslint src *.js --fix","check":"run-s check:*","check:tsc":"tsc -p tsconfig.dev.json","check:lint":"eslint \"src/!(resources)/**/*.{ts,js}\" *.js","check:spelling":"cspell \"{README.md,src/**/*.ts}\"","test":"NODE_ENV=test run-s test:*","test:browser":"karma start karma.conf.cjs","watch:build":"tsc -p tsconfig.json -w","watch:test":"mocha --watch","prepublish":"npm run build","reset-hard":"git clean -dfx -e .idea && git reset --hard && npm i && npm run build"},"engines":{"node":">=20"},"devDependencies":{"@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.2.3","@types/chai":"^5.0.1","@types/chai-spies":"^1.0.6","@types/deep-equal-in-any-order":"^1.0.4","@types/lodash":"^4.17.15","@types/sinon":"^17.0.3","@waku/build-utils":"^1.0.0","@waku/message-encryption":"0.0.32-9094860.0","chai":"^5.1.2","chai-as-promised":"^8.0.1","chai-spies":"^1.1.0","chai-subset":"^1.6.0","deep-equal-in-any-order":"^2.0.6","fast-check":"^3.23.2","rollup-plugin-copy":"^3.5.0","sinon":"^19.0.2"},"files":["dist","bundle","src/**/*.ts","!**/*.spec.*","!**/*.json","CHANGELOG.md","LICENSE","README.md"],"dependencies":{"@chainsafe/bls-keystore":"3.0.0","@ethersproject/keccak256":"^5.7.0","@ethersproject/strings":"^5.7.0","@waku/core":"0.0.34-9094860.0","@waku/utils":"0.0.22-9094860.0","@waku/zerokit-rln-wasm":"^0.0.13","ethereum-cryptography":"^3.1.0","ethers":"^5.7.2","lodash":"^4.17.21","uuid":"^11.0.5"}}