Skip to content

Commit e57ddd5

Browse files
test
1 parent 8cde397 commit e57ddd5

File tree

3 files changed

+150
-145
lines changed

3 files changed

+150
-145
lines changed

packages/rln/src/create.spec.ts

Lines changed: 140 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -1,137 +1,140 @@
1-
// import { assert, expect } from "chai";
2-
3-
// import { createRLN } from "./create.js";
4-
5-
// describe("js-rln", () => {
6-
// it("should verify a proof", async function () {
7-
// const rlnInstance = await createRLN();
8-
9-
// const credential = rlnInstance.zerokit.generateIdentityCredentials();
10-
11-
// //peer's index in the Merkle Tree
12-
// const index = 5;
13-
14-
// // Create a Merkle tree with random members
15-
// for (let i = 0; i < 10; i++) {
16-
// if (i == index) {
17-
// // insert the current peer's pk
18-
// rlnInstance.zerokit.insertMember(credential.IDCommitment);
19-
// } else {
20-
// // create a new key pair
21-
// rlnInstance.zerokit.insertMember(
22-
// rlnInstance.zerokit.generateIdentityCredentials().IDCommitment
23-
// );
24-
// }
25-
// }
26-
27-
// // prepare the message
28-
// const uint8Msg = Uint8Array.from(
29-
// "Hello World".split("").map((x) => x.charCodeAt(0))
30-
// );
31-
32-
// // setting up the epoch
33-
// const epoch = new Date();
34-
35-
// // generating proof
36-
// const proof = await rlnInstance.zerokit.generateRLNProof(
37-
// uint8Msg,
38-
// index,
39-
// epoch,
40-
// credential.IDSecretHash
41-
// );
42-
43-
// try {
44-
// // verify the proof
45-
// const verifResult = rlnInstance.zerokit.verifyRLNProof(proof, uint8Msg);
46-
// expect(verifResult).to.be.true;
47-
// } catch (err) {
48-
// assert.fail(0, 1, "should not have failed proof verification");
49-
// }
50-
51-
// try {
52-
// // Modifying the signal so it's invalid
53-
// uint8Msg[4] = 4;
54-
// // verify the proof
55-
// const verifResult = rlnInstance.zerokit.verifyRLNProof(proof, uint8Msg);
56-
// expect(verifResult).to.be.false;
57-
// } catch (err) {
58-
// console.log(err);
59-
// }
60-
// });
61-
// it("should verify a proof with a seeded membership key generation", async function () {
62-
// const rlnInstance = await createRLN();
63-
// const seed = "This is a test seed";
64-
// const credential =
65-
// rlnInstance.zerokit.generateSeededIdentityCredential(seed);
66-
67-
// //peer's index in the Merkle Tree
68-
// const index = 5;
69-
70-
// // Create a Merkle tree with random members
71-
// for (let i = 0; i < 10; i++) {
72-
// if (i == index) {
73-
// // insert the current peer's pk
74-
// rlnInstance.zerokit.insertMember(credential.IDCommitment);
75-
// } else {
76-
// // create a new key pair
77-
// rlnInstance.zerokit.insertMember(
78-
// rlnInstance.zerokit.generateIdentityCredentials().IDCommitment
79-
// );
80-
// }
81-
// }
82-
83-
// // prepare the message
84-
// const uint8Msg = Uint8Array.from(
85-
// "Hello World".split("").map((x) => x.charCodeAt(0))
86-
// );
87-
88-
// // setting up the epoch
89-
// const epoch = new Date();
90-
91-
// // generating proof
92-
// const proof = await rlnInstance.zerokit.generateRLNProof(
93-
// uint8Msg,
94-
// index,
95-
// epoch,
96-
// credential.IDSecretHash
97-
// );
98-
99-
// try {
100-
// // verify the proof
101-
// const verifResult = rlnInstance.zerokit.verifyRLNProof(proof, uint8Msg);
102-
// expect(verifResult).to.be.true;
103-
// } catch (err) {
104-
// assert.fail(0, 1, "should not have failed proof verification");
105-
// }
106-
107-
// try {
108-
// // Modifying the signal so it's invalid
109-
// uint8Msg[4] = 4;
110-
// // verify the proof
111-
// const verifResult = rlnInstance.zerokit.verifyRLNProof(proof, uint8Msg);
112-
// expect(verifResult).to.be.false;
113-
// } catch (err) {
114-
// console.log(err);
115-
// }
116-
// });
117-
118-
// it("should generate the same membership key if the same seed is provided", async function () {
119-
// const rlnInstance = await createRLN();
120-
// const seed = "This is a test seed";
121-
// const memKeys1 = rlnInstance.zerokit.generateSeededIdentityCredential(seed);
122-
// const memKeys2 = rlnInstance.zerokit.generateSeededIdentityCredential(seed);
123-
124-
// memKeys1.IDCommitment.forEach((element, index) => {
125-
// expect(element).to.equal(memKeys2.IDCommitment[index]);
126-
// });
127-
// memKeys1.IDNullifier.forEach((element, index) => {
128-
// expect(element).to.equal(memKeys2.IDNullifier[index]);
129-
// });
130-
// memKeys1.IDSecretHash.forEach((element, index) => {
131-
// expect(element).to.equal(memKeys2.IDSecretHash[index]);
132-
// });
133-
// memKeys1.IDTrapdoor.forEach((element, index) => {
134-
// expect(element).to.equal(memKeys2.IDTrapdoor[index]);
135-
// });
136-
// });
137-
// });
1+
import { expect } from "chai";
2+
3+
import { RLNInstance } from "./rln.js";
4+
5+
describe("js-rln", () => {
6+
// it("should verify a proof", async function () {
7+
// const rlnInstance = await createRLN();
8+
9+
// const credential = rlnInstance.zerokit.generateIdentityCredentials();
10+
11+
// //peer's index in the Merkle Tree
12+
// const index = 5;
13+
14+
// // Create a Merkle tree with random members
15+
// for (let i = 0; i < 10; i++) {
16+
// if (i == index) {
17+
// // insert the current peer's pk
18+
// rlnInstance.zerokit.insertMember(credential.IDCommitment);
19+
// } else {
20+
// // create a new key pair
21+
// rlnInstance.zerokit.insertMember(
22+
// rlnInstance.zerokit.generateIdentityCredentials().IDCommitment
23+
// );
24+
// }
25+
// }
26+
27+
// // prepare the message
28+
// const uint8Msg = Uint8Array.from(
29+
// "Hello World".split("").map((x) => x.charCodeAt(0))
30+
// );
31+
32+
// // setting up the epoch
33+
// const epoch = new Date();
34+
35+
// // generating proof
36+
// const proof = await rlnInstance.zerokit.generateRLNProof(
37+
// uint8Msg,
38+
// index,
39+
// epoch,
40+
// credential.IDSecretHash
41+
// );
42+
43+
// try {
44+
// // verify the proof
45+
// const verifResult = rlnInstance.zerokit.verifyRLNProof(proof, uint8Msg);
46+
// expect(verifResult).to.be.true;
47+
// } catch (err) {
48+
// assert.fail(0, 1, "should not have failed proof verification");
49+
// }
50+
51+
// try {
52+
// // Modifying the signal so it's invalid
53+
// uint8Msg[4] = 4;
54+
// // verify the proof
55+
// const verifResult = rlnInstance.zerokit.verifyRLNProof(proof, uint8Msg);
56+
// expect(verifResult).to.be.false;
57+
// } catch (err) {
58+
// console.log(err);
59+
// }
60+
// });
61+
// it("should verify a proof with a seeded membership key generation", async function () {
62+
// const rlnInstance = await createRLN();
63+
// const seed = "This is a test seed";
64+
// const credential =
65+
// rlnInstance.zerokit.generateSeededIdentityCredential(seed);
66+
67+
// //peer's index in the Merkle Tree
68+
// const index = 5;
69+
70+
// // Create a Merkle tree with random members
71+
// for (let i = 0; i < 10; i++) {
72+
// if (i == index) {
73+
// // insert the current peer's pk
74+
// rlnInstance.zerokit.insertMember(credential.IDCommitment);
75+
// } else {
76+
// // create a new key pair
77+
// rlnInstance.zerokit.insertMember(
78+
// rlnInstance.zerokit.generateIdentityCredentials().IDCommitment
79+
// );
80+
// }
81+
// }
82+
83+
// // prepare the message
84+
// const uint8Msg = Uint8Array.from(
85+
// "Hello World".split("").map((x) => x.charCodeAt(0))
86+
// );
87+
88+
// // setting up the epoch
89+
// const epoch = new Date();
90+
91+
// // generating proof
92+
// const proof = await rlnInstance.zerokit.generateRLNProof(
93+
// uint8Msg,
94+
// index,
95+
// epoch,
96+
// credential.IDSecretHash
97+
// );
98+
99+
// try {
100+
// // verify the proof
101+
// const verifResult = rlnInstance.zerokit.verifyRLNProof(proof, uint8Msg);
102+
// expect(verifResult).to.be.true;
103+
// } catch (err) {
104+
// assert.fail(0, 1, "should not have failed proof verification");
105+
// }
106+
107+
// try {
108+
// // Modifying the signal so it's invalid
109+
// uint8Msg[4] = 4;
110+
// // verify the proof
111+
// const verifResult = rlnInstance.zerokit.verifyRLNProof(proof, uint8Msg);
112+
// expect(verifResult).to.be.false;
113+
// } catch (err) {
114+
// console.log(err);
115+
// }
116+
// });
117+
118+
it.only("should generate the same membership key if the same seed is provided", async function () {
119+
const rlnInstance = await RLNInstance.create();
120+
121+
console.log("rlnInstance", rlnInstance);
122+
const seed = "This is a test seed";
123+
const memKeys1 = rlnInstance.zerokit.generateSeededIdentityCredential(seed);
124+
console.log("memKeys1", memKeys1);
125+
const memKeys2 = rlnInstance.zerokit.generateSeededIdentityCredential(seed);
126+
127+
memKeys1.IDCommitment.forEach((element, index) => {
128+
expect(element).to.equal(memKeys2.IDCommitment[index]);
129+
});
130+
memKeys1.IDNullifier.forEach((element, index) => {
131+
expect(element).to.equal(memKeys2.IDNullifier[index]);
132+
});
133+
memKeys1.IDSecretHash.forEach((element, index) => {
134+
expect(element).to.equal(memKeys2.IDSecretHash[index]);
135+
});
136+
memKeys1.IDTrapdoor.forEach((element, index) => {
137+
expect(element).to.equal(memKeys2.IDTrapdoor[index]);
138+
});
139+
});
140+
});

packages/rln/src/rln.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { Logger } from "@waku/utils";
2-
import init from "@waku/zerokit-rln-wasm";
3-
import * as zerokitRLN from "@waku/zerokit-rln-wasm";
2+
import init, * as zerokitRLN from "@waku/zerokit-rln-wasm";
43

54
import { DEFAULT_RATE_LIMIT } from "./contract/constants.js";
65
import { RLNCredentialsManager } from "./credentials_manager.js";
@@ -17,8 +16,8 @@ export class RLNInstance extends RLNCredentialsManager {
1716
*/
1817
public static async create(): Promise<RLNInstance> {
1918
try {
20-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
21-
await (init as any)?.();
19+
await init();
20+
2221
zerokitRLN.initPanicHook();
2322

2423
const witnessCalculator = await RLNInstance.loadWitnessCalculator();

packages/rln/src/zerokit.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-disable no-console */
21
import * as zerokitRLN from "@waku/zerokit-rln-wasm";
32

43
import { DEFAULT_RATE_LIMIT } from "./contract/constants.js";
@@ -32,13 +31,17 @@ export class Zerokit {
3231
public generateSeededIdentityCredential(seed: string): IdentityCredential {
3332
const stringEncoder = new TextEncoder();
3433
const seedBytes = stringEncoder.encode(seed);
35-
console.log("seedBytes", seedBytes);
36-
// TODO: rename this function in zerokit rln-wasm
34+
// eslint-disable-next-line no-console
35+
console.log({
36+
zkRLN: this.zkRLN,
37+
seedBytes
38+
});
3739
const memKeys = zerokitRLN.generateSeededExtendedMembershipKey(
3840
this.zkRLN,
3941
seedBytes
4042
);
41-
console.log("memKeys", memKeys);
43+
// eslint-disable-next-line no-console
44+
console.log({ memKeys });
4245
return IdentityCredential.fromBytes(memKeys);
4346
}
4447
}

0 commit comments

Comments
 (0)