@maci-protocol/testing 0.0.0-ci.fd7cff6 → 0.0.0-ci.ffabe48

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 (50) hide show
  1. package/LICENSE +1 -2
  2. package/build/ts/__tests__/e2e.full.test.d.ts +2 -0
  3. package/build/ts/__tests__/e2e.full.test.d.ts.map +1 -0
  4. package/build/ts/__tests__/e2e.full.test.js +851 -0
  5. package/build/ts/__tests__/e2e.full.test.js.map +1 -0
  6. package/build/ts/__tests__/e2e.nonQv.test.js +422 -32
  7. package/build/ts/__tests__/e2e.nonQv.test.js.map +1 -1
  8. package/build/ts/__tests__/e2e.test.js +250 -250
  9. package/build/ts/__tests__/e2e.test.js.map +1 -1
  10. package/build/ts/__tests__/integration.test.js +48 -43
  11. package/build/ts/__tests__/integration.test.js.map +1 -1
  12. package/build/ts/__tests__/keyChange.test.js +75 -66
  13. package/build/ts/__tests__/keyChange.test.js.map +1 -1
  14. package/build/ts/__tests__/maciKeys.test.d.ts +2 -0
  15. package/build/ts/__tests__/maciKeys.test.d.ts.map +1 -0
  16. package/build/ts/__tests__/maciKeys.test.js +78 -0
  17. package/build/ts/__tests__/maciKeys.test.js.map +1 -0
  18. package/build/ts/__tests__/unit/joinPoll.test.js +95 -20
  19. package/build/ts/__tests__/unit/joinPoll.test.js.map +1 -1
  20. package/build/ts/__tests__/unit/poll.test.js +7 -7
  21. package/build/ts/__tests__/unit/poll.test.js.map +1 -1
  22. package/build/ts/__tests__/unit/publish.test.js +13 -10
  23. package/build/ts/__tests__/unit/publish.test.js.map +1 -1
  24. package/build/ts/__tests__/unit/signup.test.js +9 -9
  25. package/build/ts/__tests__/unit/signup.test.js.map +1 -1
  26. package/build/ts/__tests__/unit/utils.test.js +12 -12
  27. package/build/ts/__tests__/unit/utils.test.js.map +1 -1
  28. package/build/ts/constants.d.ts +40 -41
  29. package/build/ts/constants.d.ts.map +1 -1
  30. package/build/ts/constants.js +86 -62
  31. package/build/ts/constants.js.map +1 -1
  32. package/build/ts/testingClass.d.ts.map +1 -1
  33. package/build/ts/testingClass.js +23 -18
  34. package/build/ts/testingClass.js.map +1 -1
  35. package/build/ts/types.d.ts +4 -4
  36. package/build/ts/types.d.ts.map +1 -1
  37. package/build/ts/user.d.ts +5 -9
  38. package/build/ts/user.d.ts.map +1 -1
  39. package/build/ts/user.js +5 -6
  40. package/build/ts/user.js.map +1 -1
  41. package/build/ts/utils.d.ts +3 -3
  42. package/build/ts/utils.d.ts.map +1 -1
  43. package/build/ts/utils.js +12 -12
  44. package/build/ts/utils.js.map +1 -1
  45. package/build/tsconfig.tsbuildinfo +1 -1
  46. package/package.json +14 -13
  47. package/build/ts/__tests__/maci-keys.test.d.ts +0 -2
  48. package/build/ts/__tests__/maci-keys.test.d.ts.map +0 -1
  49. package/build/ts/__tests__/maci-keys.test.js +0 -78
  50. package/build/ts/__tests__/maci-keys.test.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e.full.test.js","sourceRoot":"","sources":["../../../ts/__tests__/e2e.full.test.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,16 @@ const core_1 = require("@maci-protocol/core");
4
4
  const crypto_1 = require("@maci-protocol/crypto");
5
5
  const domainobjs_1 = require("@maci-protocol/domainobjs");
6
6
  const sdk_1 = require("@maci-protocol/sdk");
7
+ const chai_1 = require("chai");
7
8
  const constants_1 = require("../constants");
8
9
  const utils_1 = require("../utils");
9
10
  /**
10
11
  Test scenarios:
11
12
  1 signup, 1 message with quadratic voting disabled
12
13
  1 signup, 1 relayed message
14
+ 1 signup, 2 valid messages
15
+ 1 signup, 2 valid and 2 invalid messages
16
+ 2 signups, 2 different messages
13
17
  */
14
18
  describe("e2e tests with non quadratic voting", function test() {
15
19
  const useWasm = (0, sdk_1.isArm)();
@@ -18,47 +22,48 @@ describe("e2e tests with non quadratic voting", function test() {
18
22
  let initialVoiceCreditProxyContractAddress;
19
23
  let verifierContractAddress;
20
24
  let signer;
21
- let vkRegistryAddress;
25
+ let verifyingKeysRegistryAddress;
22
26
  const generateProofsArgs = {
23
27
  outputDir: constants_1.testProofsDirPath,
24
28
  tallyFile: constants_1.testTallyFilePath,
25
- tallyZkey: constants_1.tallyVotesTestNonQvZkeyPath,
26
- processZkey: constants_1.processMessageTestNonQvZkeyPath,
29
+ tallyZkey: constants_1.testTallyVotesNonQvZkeyPath,
30
+ processZkey: constants_1.testProcessMessageNonQvZkeyPath,
27
31
  pollId: 0n,
28
32
  rapidsnark: constants_1.testRapidsnarkPath,
29
33
  processWitgen: constants_1.testProcessMessagesNonQvWitnessPath,
30
34
  processDatFile: constants_1.testProcessMessagesNonQvWitnessDatPath,
31
35
  tallyWitgen: constants_1.testTallyVotesNonQvWitnessPath,
32
36
  tallyDatFile: constants_1.testTallyVotesNonQvWitnessDatPath,
33
- coordinatorPrivateKey: constants_1.coordinatorPrivKey,
37
+ coordinatorPrivateKey: constants_1.coordinatorPrivateKey,
34
38
  processWasm: constants_1.testProcessMessagesNonQvWasmPath,
35
39
  tallyWasm: constants_1.testTallyVotesNonQvWasmPath,
36
40
  useWasm,
37
- useQuadraticVoting: false,
41
+ mode: sdk_1.EMode.NON_QV,
38
42
  };
39
- // before all tests we deploy the vk registry contract and set the verifying keys
43
+ // before all tests we deploy the verifying keys registry contract and set the verifying keys
40
44
  before(async () => {
41
45
  signer = await (0, sdk_1.getDefaultSigner)();
42
- // we deploy the vk registry contract
43
- vkRegistryAddress = await (0, sdk_1.deployVkRegistryContract)({ signer });
46
+ // we deploy the verifying keys registry contract
47
+ verifyingKeysRegistryAddress = await (0, sdk_1.deployVerifyingKeysRegistryContract)({ signer });
44
48
  const [initialVoiceCreditProxy] = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, signer, undefined, true);
45
49
  initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
46
50
  const verifier = await (0, sdk_1.deployVerifier)(signer, true);
47
51
  verifierContractAddress = await verifier.getAddress();
48
- // we deploy the vk registry contract
49
- vkRegistryAddress = await (0, sdk_1.deployVkRegistryContract)({ signer });
52
+ // we deploy the verifying keys registry contract
53
+ verifyingKeysRegistryAddress = await (0, sdk_1.deployVerifyingKeysRegistryContract)({ signer });
50
54
  // we set the verifying keys
51
- await (0, sdk_1.setVerifyingKeys)({ ...(await (0, constants_1.verifyingKeysArgs)(signer, sdk_1.EMode.NON_QV)), vkRegistryAddress });
55
+ await (0, sdk_1.setVerifyingKeys)({ ...(await (0, constants_1.verifyingKeysArgs)(signer, sdk_1.EMode.NON_QV)), verifyingKeysRegistryAddress });
52
56
  });
53
57
  describe("1 signup, 1 message", () => {
54
58
  after(async () => {
55
59
  await (0, utils_1.clean)();
56
60
  });
57
61
  const user = new domainobjs_1.Keypair();
62
+ const voteWeight = 9n;
58
63
  before(async () => {
59
- const [signupPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)(signer, true);
64
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
60
65
  const signupPolicyContractAddress = await signupPolicy.getAddress();
61
- const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)(signer, true);
66
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
62
67
  const pollPolicyContractAddress = await pollPolicy.getAddress();
63
68
  // deploy the smart contracts
64
69
  maciAddresses = await (0, sdk_1.deployMaci)({
@@ -76,7 +81,7 @@ describe("e2e tests with non quadratic voting", function test() {
76
81
  relayers: [await signer.getAddress()],
77
82
  maciAddress: maciAddresses.maciContractAddress,
78
83
  verifierContractAddress,
79
- vkRegistryContractAddress: vkRegistryAddress,
84
+ verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
80
85
  policyContractAddress: pollPolicyContractAddress,
81
86
  initialVoiceCreditProxyContractAddress,
82
87
  mode: sdk_1.EMode.NON_QV,
@@ -85,22 +90,38 @@ describe("e2e tests with non quadratic voting", function test() {
85
90
  it("should signup one user", async () => {
86
91
  await (0, sdk_1.signup)({
87
92
  maciAddress: maciAddresses.maciContractAddress,
88
- maciPubKey: user.pubKey.serialize(),
93
+ maciPublicKey: user.publicKey.serialize(),
89
94
  sgData: constants_1.DEFAULT_SG_DATA,
90
95
  signer,
91
96
  });
92
97
  });
98
+ it("should join one user", async () => {
99
+ await (0, sdk_1.joinPoll)({
100
+ maciAddress: maciAddresses.maciContractAddress,
101
+ privateKey: user.privateKey.serialize(),
102
+ stateIndex: 1n,
103
+ pollId: 0n,
104
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
105
+ useWasm: true,
106
+ pollWasm: constants_1.testPollJoiningWasmPath,
107
+ pollWitgen: constants_1.testPollJoiningWitnessPath,
108
+ rapidsnark: constants_1.testRapidsnarkPath,
109
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
110
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
111
+ signer,
112
+ });
113
+ });
93
114
  it("should publish one message", async () => {
94
115
  await (0, sdk_1.publish)({
95
- pubkey: user.pubKey.serialize(),
116
+ publicKey: user.publicKey.serialize(),
96
117
  stateIndex: 1n,
97
118
  voteOptionIndex: 0n,
98
119
  nonce: 1n,
99
120
  pollId: 0n,
100
- newVoteWeight: 9n,
121
+ newVoteWeight: voteWeight,
101
122
  maciAddress: maciAddresses.maciContractAddress,
102
- salt: (0, crypto_1.genRandomSalt)(),
103
- privateKey: user.privKey.serialize(),
123
+ salt: (0, crypto_1.generateRandomSalt)(),
124
+ privateKey: user.privateKey.serialize(),
104
125
  signer,
105
126
  });
106
127
  });
@@ -111,7 +132,7 @@ describe("e2e tests with non quadratic voting", function test() {
111
132
  ...generateProofsArgs,
112
133
  signer,
113
134
  maciAddress: maciAddresses.maciContractAddress,
114
- useQuadraticVoting: false,
135
+ mode: sdk_1.EMode.NON_QV,
115
136
  });
116
137
  await (0, sdk_1.proveOnChain)({ ...constants_1.proveOnChainArgs, maciAddress: maciAddresses.maciContractAddress, signer });
117
138
  await (0, sdk_1.verify)({
@@ -119,6 +140,10 @@ describe("e2e tests with non quadratic voting", function test() {
119
140
  tallyData: tallyFileData,
120
141
  maciAddress: tallyFileData.maci,
121
142
  });
143
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq(voteWeight.toString());
144
+ tallyFileData.results.tally.forEach((result, index) => {
145
+ (0, chai_1.expect)(result.toString()).to.eq(index === 0 ? voteWeight.toString() : "0");
146
+ });
122
147
  });
123
148
  });
124
149
  describe("1 signup, 1 relayed message", () => {
@@ -126,10 +151,11 @@ describe("e2e tests with non quadratic voting", function test() {
126
151
  await (0, utils_1.clean)();
127
152
  });
128
153
  const user = new domainobjs_1.Keypair();
154
+ const voteWeight = 9n;
129
155
  before(async () => {
130
- const [signupPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)(signer, true);
156
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
131
157
  const signupPolicyContractAddress = await signupPolicy.getAddress();
132
- const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)(signer, true);
158
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
133
159
  const pollPolicyContractAddress = await pollPolicy.getAddress();
134
160
  // deploy the smart contracts
135
161
  maciAddresses = await (0, sdk_1.deployMaci)({
@@ -147,7 +173,7 @@ describe("e2e tests with non quadratic voting", function test() {
147
173
  relayers: [await signer.getAddress()],
148
174
  maciAddress: maciAddresses.maciContractAddress,
149
175
  verifierContractAddress,
150
- vkRegistryContractAddress: vkRegistryAddress,
176
+ verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
151
177
  policyContractAddress: pollPolicyContractAddress,
152
178
  initialVoiceCreditProxyContractAddress,
153
179
  mode: sdk_1.EMode.NON_QV,
@@ -156,31 +182,47 @@ describe("e2e tests with non quadratic voting", function test() {
156
182
  it("should signup one user", async () => {
157
183
  await (0, sdk_1.signup)({
158
184
  maciAddress: maciAddresses.maciContractAddress,
159
- maciPubKey: user.pubKey.serialize(),
185
+ maciPublicKey: user.publicKey.serialize(),
160
186
  sgData: constants_1.DEFAULT_SG_DATA,
161
187
  signer,
162
188
  });
163
189
  });
190
+ it("should join one user", async () => {
191
+ await (0, sdk_1.joinPoll)({
192
+ maciAddress: maciAddresses.maciContractAddress,
193
+ privateKey: user.privateKey.serialize(),
194
+ stateIndex: 1n,
195
+ pollId: 0n,
196
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
197
+ useWasm: true,
198
+ pollWasm: constants_1.testPollJoiningWasmPath,
199
+ pollWitgen: constants_1.testPollJoiningWitnessPath,
200
+ rapidsnark: constants_1.testRapidsnarkPath,
201
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
202
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
203
+ signer,
204
+ });
205
+ });
164
206
  it("should relay one message", async () => {
165
207
  const { message, ephemeralKeypair } = (0, sdk_1.generateVote)({
166
208
  pollId: 0n,
167
209
  voteOptionIndex: 0n,
168
- salt: (0, crypto_1.genRandomSalt)(),
210
+ salt: (0, crypto_1.generateRandomSalt)(),
169
211
  nonce: 1n,
170
- privateKey: user.privKey,
212
+ privateKey: user.privateKey,
171
213
  stateIndex: 1n,
172
- voteWeight: 9n,
173
- coordinatorPubKey: constants_1.coordinatorKeypair.pubKey,
214
+ voteWeight,
215
+ coordinatorPublicKey: constants_1.coordinatorKeypair.publicKey,
174
216
  maxVoteOption: BigInt(core_1.VOTE_OPTION_TREE_ARITY ** constants_1.deployPollArgs.voteOptionTreeDepth),
175
- newPubKey: user.pubKey,
217
+ newPublicKey: user.publicKey,
176
218
  });
177
219
  const messages = [
178
220
  {
179
221
  maciAddress: maciAddresses.maciContractAddress,
180
222
  poll: 0,
181
223
  data: message.data.map(String),
182
- publicKey: ephemeralKeypair.pubKey.asArray().map(String),
183
- hash: message.hash(ephemeralKeypair.pubKey).toString(),
224
+ publicKey: ephemeralKeypair.publicKey.asArray().map(String),
225
+ hash: message.hash(ephemeralKeypair.publicKey).toString(),
184
226
  },
185
227
  ];
186
228
  await (0, utils_1.relayTestMessages)({ messages, signer, pollId: 0, maciAddress: maciAddresses.maciContractAddress });
@@ -194,7 +236,351 @@ describe("e2e tests with non quadratic voting", function test() {
194
236
  signer,
195
237
  maciAddress: maciAddresses.maciContractAddress,
196
238
  ipfsMessageBackupFiles,
197
- useQuadraticVoting: false,
239
+ mode: sdk_1.EMode.NON_QV,
240
+ });
241
+ await (0, sdk_1.proveOnChain)({ ...constants_1.proveOnChainArgs, maciAddress: maciAddresses.maciContractAddress, signer });
242
+ await (0, sdk_1.verify)({
243
+ ...(await (0, constants_1.verifyArgs)(signer)),
244
+ tallyData: tallyFileData,
245
+ maciAddress: tallyFileData.maci,
246
+ });
247
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq(voteWeight.toString());
248
+ tallyFileData.results.tally.forEach((result, index) => {
249
+ (0, chai_1.expect)(result.toString()).to.eq(index === 0 ? voteWeight.toString() : "0");
250
+ });
251
+ });
252
+ });
253
+ describe("1 signup, 2 valid messages", () => {
254
+ after(async () => {
255
+ await (0, utils_1.clean)();
256
+ });
257
+ const user = new domainobjs_1.Keypair();
258
+ before(async () => {
259
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
260
+ const signupPolicyContractAddress = await signupPolicy.getAddress();
261
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
262
+ const pollPolicyContractAddress = await pollPolicy.getAddress();
263
+ // deploy the smart contracts
264
+ maciAddresses = await (0, sdk_1.deployMaci)({
265
+ ...constants_1.deployArgs,
266
+ signer,
267
+ signupPolicyAddress: signupPolicyContractAddress,
268
+ });
269
+ const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
270
+ // deploy a poll contract
271
+ await (0, sdk_1.deployPoll)({
272
+ ...constants_1.deployPollArgs,
273
+ signer,
274
+ pollStartTimestamp: startDate,
275
+ pollEndTimestamp: startDate + constants_1.pollDuration,
276
+ relayers: [await signer.getAddress()],
277
+ maciAddress: maciAddresses.maciContractAddress,
278
+ verifierContractAddress,
279
+ verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
280
+ policyContractAddress: pollPolicyContractAddress,
281
+ initialVoiceCreditProxyContractAddress,
282
+ mode: sdk_1.EMode.NON_QV,
283
+ });
284
+ });
285
+ it("should signup one user", async () => {
286
+ await (0, sdk_1.signup)({
287
+ maciAddress: maciAddresses.maciContractAddress,
288
+ maciPublicKey: user.publicKey.serialize(),
289
+ sgData: constants_1.DEFAULT_SG_DATA,
290
+ signer,
291
+ });
292
+ });
293
+ it("should join one user", async () => {
294
+ await (0, sdk_1.joinPoll)({
295
+ maciAddress: maciAddresses.maciContractAddress,
296
+ privateKey: user.privateKey.serialize(),
297
+ stateIndex: 1n,
298
+ pollId: 0n,
299
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
300
+ useWasm: true,
301
+ pollWasm: constants_1.testPollJoiningWasmPath,
302
+ pollWitgen: constants_1.testPollJoiningWitnessPath,
303
+ rapidsnark: constants_1.testRapidsnarkPath,
304
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
305
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
306
+ signer,
307
+ });
308
+ });
309
+ it("should publish two messages", async () => {
310
+ await (0, sdk_1.publish)({
311
+ publicKey: user.publicKey.serialize(),
312
+ stateIndex: 1n,
313
+ voteOptionIndex: 0n,
314
+ nonce: 2n,
315
+ pollId: 0n,
316
+ newVoteWeight: BigInt(constants_1.DEFAULT_INITIAL_VOICE_CREDITS),
317
+ maciAddress: maciAddresses.maciContractAddress,
318
+ salt: (0, crypto_1.generateRandomSalt)(),
319
+ privateKey: user.privateKey.serialize(),
320
+ signer,
321
+ });
322
+ await (0, sdk_1.publish)({
323
+ publicKey: user.publicKey.serialize(),
324
+ stateIndex: 1n,
325
+ voteOptionIndex: 1n,
326
+ nonce: 1n,
327
+ pollId: 0n,
328
+ newVoteWeight: BigInt(constants_1.DEFAULT_INITIAL_VOICE_CREDITS),
329
+ maciAddress: maciAddresses.maciContractAddress,
330
+ salt: (0, crypto_1.generateRandomSalt)(),
331
+ privateKey: user.privateKey.serialize(),
332
+ signer,
333
+ });
334
+ });
335
+ it("should generate zk-SNARK proofs and verify them", async () => {
336
+ await (0, sdk_1.timeTravel)({ seconds: constants_1.pollDuration, signer });
337
+ await (0, sdk_1.mergeSignups)({ ...constants_1.mergeSignupsArgs, maciAddress: maciAddresses.maciContractAddress, signer });
338
+ const { tallyData: tallyFileData } = await (0, sdk_1.generateProofs)({
339
+ ...generateProofsArgs,
340
+ signer,
341
+ maciAddress: maciAddresses.maciContractAddress,
342
+ mode: sdk_1.EMode.NON_QV,
343
+ });
344
+ await (0, sdk_1.proveOnChain)({ ...constants_1.proveOnChainArgs, maciAddress: maciAddresses.maciContractAddress, signer });
345
+ await (0, sdk_1.verify)({
346
+ ...(await (0, constants_1.verifyArgs)(signer)),
347
+ tallyData: tallyFileData,
348
+ maciAddress: tallyFileData.maci,
349
+ });
350
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq(constants_1.DEFAULT_INITIAL_VOICE_CREDITS.toString());
351
+ tallyFileData.results.tally.forEach((result, index) => {
352
+ (0, chai_1.expect)(result.toString()).to.eq(index === 1 ? constants_1.DEFAULT_INITIAL_VOICE_CREDITS.toString() : "0");
353
+ });
354
+ });
355
+ });
356
+ describe("1 signup, 2 valid and 1 invalid message", () => {
357
+ after(async () => {
358
+ await (0, utils_1.clean)();
359
+ });
360
+ const user = new domainobjs_1.Keypair();
361
+ const voteWeight = 9n;
362
+ before(async () => {
363
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
364
+ const signupPolicyContractAddress = await signupPolicy.getAddress();
365
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
366
+ const pollPolicyContractAddress = await pollPolicy.getAddress();
367
+ // deploy the smart contracts
368
+ maciAddresses = await (0, sdk_1.deployMaci)({
369
+ ...constants_1.deployArgs,
370
+ signer,
371
+ signupPolicyAddress: signupPolicyContractAddress,
372
+ });
373
+ const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
374
+ // deploy a poll contract
375
+ await (0, sdk_1.deployPoll)({
376
+ ...constants_1.deployPollArgs,
377
+ signer,
378
+ pollStartTimestamp: startDate,
379
+ pollEndTimestamp: startDate + constants_1.pollDuration,
380
+ relayers: [await signer.getAddress()],
381
+ maciAddress: maciAddresses.maciContractAddress,
382
+ verifierContractAddress,
383
+ verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
384
+ policyContractAddress: pollPolicyContractAddress,
385
+ initialVoiceCreditProxyContractAddress,
386
+ mode: sdk_1.EMode.NON_QV,
387
+ });
388
+ });
389
+ it("should signup one user", async () => {
390
+ await (0, sdk_1.signup)({
391
+ maciAddress: maciAddresses.maciContractAddress,
392
+ maciPublicKey: user.publicKey.serialize(),
393
+ sgData: constants_1.DEFAULT_SG_DATA,
394
+ signer,
395
+ });
396
+ });
397
+ it("should join one user", async () => {
398
+ await (0, sdk_1.joinPoll)({
399
+ maciAddress: maciAddresses.maciContractAddress,
400
+ privateKey: user.privateKey.serialize(),
401
+ stateIndex: 1n,
402
+ pollId: 0n,
403
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
404
+ useWasm: true,
405
+ pollWasm: constants_1.testPollJoiningWasmPath,
406
+ pollWitgen: constants_1.testPollJoiningWitnessPath,
407
+ rapidsnark: constants_1.testRapidsnarkPath,
408
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
409
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
410
+ signer,
411
+ });
412
+ });
413
+ it("should publish two valid and two invalid messages", async () => {
414
+ await (0, sdk_1.publish)({
415
+ publicKey: user.publicKey.serialize(),
416
+ stateIndex: 1n,
417
+ voteOptionIndex: 0n,
418
+ nonce: 1n,
419
+ pollId: 0n,
420
+ newVoteWeight: voteWeight,
421
+ maciAddress: maciAddresses.maciContractAddress,
422
+ salt: (0, crypto_1.generateRandomSalt)(),
423
+ privateKey: user.privateKey.serialize(),
424
+ signer,
425
+ });
426
+ await (0, sdk_1.publish)({
427
+ publicKey: user.publicKey.serialize(),
428
+ stateIndex: 1n,
429
+ voteOptionIndex: 1n,
430
+ nonce: 1n,
431
+ pollId: 0n,
432
+ newVoteWeight: BigInt(constants_1.DEFAULT_INITIAL_VOICE_CREDITS + 10),
433
+ maciAddress: maciAddresses.maciContractAddress,
434
+ salt: (0, crypto_1.generateRandomSalt)(),
435
+ privateKey: user.privateKey.serialize(),
436
+ signer,
437
+ });
438
+ await (0, sdk_1.publish)({
439
+ publicKey: user.publicKey.serialize(),
440
+ stateIndex: 1n,
441
+ voteOptionIndex: 1n,
442
+ nonce: 1n,
443
+ pollId: 0n,
444
+ newVoteWeight: -voteWeight,
445
+ maciAddress: maciAddresses.maciContractAddress,
446
+ salt: (0, crypto_1.generateRandomSalt)(),
447
+ privateKey: user.privateKey.serialize(),
448
+ signer,
449
+ });
450
+ await (0, sdk_1.publish)({
451
+ publicKey: user.publicKey.serialize(),
452
+ stateIndex: 1n,
453
+ voteOptionIndex: 1n,
454
+ nonce: 1n,
455
+ pollId: 0n,
456
+ newVoteWeight: voteWeight,
457
+ maciAddress: maciAddresses.maciContractAddress,
458
+ salt: (0, crypto_1.generateRandomSalt)(),
459
+ privateKey: user.privateKey.serialize(),
460
+ signer,
461
+ });
462
+ });
463
+ it("should generate zk-SNARK proofs and verify them", async () => {
464
+ await (0, sdk_1.timeTravel)({ seconds: constants_1.pollDuration, signer });
465
+ await (0, sdk_1.mergeSignups)({ ...constants_1.mergeSignupsArgs, maciAddress: maciAddresses.maciContractAddress, signer });
466
+ const { tallyData: tallyFileData } = await (0, sdk_1.generateProofs)({
467
+ ...generateProofsArgs,
468
+ signer,
469
+ maciAddress: maciAddresses.maciContractAddress,
470
+ mode: sdk_1.EMode.NON_QV,
471
+ });
472
+ await (0, sdk_1.proveOnChain)({ ...constants_1.proveOnChainArgs, maciAddress: maciAddresses.maciContractAddress, signer });
473
+ await (0, sdk_1.verify)({
474
+ ...(await (0, constants_1.verifyArgs)(signer)),
475
+ tallyData: tallyFileData,
476
+ maciAddress: tallyFileData.maci,
477
+ });
478
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq(voteWeight.toString());
479
+ tallyFileData.results.tally.forEach((result, index) => {
480
+ (0, chai_1.expect)(result.toString()).to.eq(index === 1 ? voteWeight.toString() : "0");
481
+ });
482
+ });
483
+ });
484
+ describe("2 signups, 2 different messages", () => {
485
+ after(async () => {
486
+ await (0, utils_1.clean)();
487
+ });
488
+ const users = [new domainobjs_1.Keypair(), new domainobjs_1.Keypair()];
489
+ const voteWeight = 9n;
490
+ before(async () => {
491
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
492
+ const signupPolicyContractAddress = await signupPolicy.getAddress();
493
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
494
+ const pollPolicyContractAddress = await pollPolicy.getAddress();
495
+ // deploy the smart contracts
496
+ maciAddresses = await (0, sdk_1.deployMaci)({
497
+ ...constants_1.deployArgs,
498
+ signer,
499
+ signupPolicyAddress: signupPolicyContractAddress,
500
+ });
501
+ const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
502
+ // deploy a poll contract
503
+ await (0, sdk_1.deployPoll)({
504
+ ...constants_1.deployPollArgs,
505
+ signer,
506
+ pollStartTimestamp: startDate,
507
+ pollEndTimestamp: startDate + constants_1.pollDuration,
508
+ relayers: [await signer.getAddress()],
509
+ maciAddress: maciAddresses.maciContractAddress,
510
+ verifierContractAddress,
511
+ verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
512
+ policyContractAddress: pollPolicyContractAddress,
513
+ initialVoiceCreditProxyContractAddress,
514
+ mode: sdk_1.EMode.NON_QV,
515
+ });
516
+ });
517
+ it("should signup two users", async () => {
518
+ await (0, sdk_1.signup)({
519
+ maciAddress: maciAddresses.maciContractAddress,
520
+ maciPublicKey: users[0].publicKey.serialize(),
521
+ sgData: constants_1.DEFAULT_SG_DATA,
522
+ signer,
523
+ });
524
+ await (0, sdk_1.signup)({
525
+ maciAddress: maciAddresses.maciContractAddress,
526
+ maciPublicKey: users[1].publicKey.serialize(),
527
+ sgData: constants_1.DEFAULT_SG_DATA,
528
+ signer,
529
+ });
530
+ });
531
+ it("should join two users", async () => {
532
+ for (let index = 0; index < users.length; index += 1) {
533
+ // eslint-disable-next-line no-await-in-loop
534
+ await (0, sdk_1.joinPoll)({
535
+ maciAddress: maciAddresses.maciContractAddress,
536
+ privateKey: users[index].privateKey.serialize(),
537
+ stateIndex: BigInt(index + 1),
538
+ pollId: 0n,
539
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
540
+ useWasm: true,
541
+ pollWasm: constants_1.testPollJoiningWasmPath,
542
+ pollWitgen: constants_1.testPollJoiningWitnessPath,
543
+ rapidsnark: constants_1.testRapidsnarkPath,
544
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
545
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
546
+ signer,
547
+ });
548
+ }
549
+ });
550
+ it("should publish two different messages", async () => {
551
+ await (0, sdk_1.publish)({
552
+ publicKey: users[0].publicKey.serialize(),
553
+ stateIndex: 1n,
554
+ voteOptionIndex: 0n,
555
+ nonce: 1n,
556
+ pollId: 0n,
557
+ newVoteWeight: voteWeight,
558
+ maciAddress: maciAddresses.maciContractAddress,
559
+ salt: (0, crypto_1.generateRandomSalt)(),
560
+ privateKey: users[0].privateKey.serialize(),
561
+ signer,
562
+ });
563
+ await (0, sdk_1.publish)({
564
+ publicKey: users[1].publicKey.serialize(),
565
+ stateIndex: 2n,
566
+ voteOptionIndex: 1n,
567
+ nonce: 1n,
568
+ pollId: 0n,
569
+ newVoteWeight: voteWeight,
570
+ maciAddress: maciAddresses.maciContractAddress,
571
+ salt: (0, crypto_1.generateRandomSalt)(),
572
+ privateKey: users[1].privateKey.serialize(),
573
+ signer,
574
+ });
575
+ });
576
+ it("should generate zk-SNARK proofs and verify them", async () => {
577
+ await (0, sdk_1.timeTravel)({ seconds: constants_1.pollDuration, signer });
578
+ await (0, sdk_1.mergeSignups)({ ...constants_1.mergeSignupsArgs, maciAddress: maciAddresses.maciContractAddress, signer });
579
+ const { tallyData: tallyFileData } = await (0, sdk_1.generateProofs)({
580
+ ...generateProofsArgs,
581
+ signer,
582
+ maciAddress: maciAddresses.maciContractAddress,
583
+ mode: sdk_1.EMode.NON_QV,
198
584
  });
199
585
  await (0, sdk_1.proveOnChain)({ ...constants_1.proveOnChainArgs, maciAddress: maciAddresses.maciContractAddress, signer });
200
586
  await (0, sdk_1.verify)({
@@ -202,6 +588,10 @@ describe("e2e tests with non quadratic voting", function test() {
202
588
  tallyData: tallyFileData,
203
589
  maciAddress: tallyFileData.maci,
204
590
  });
591
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq((voteWeight * 2n).toString());
592
+ tallyFileData.results.tally.forEach((result, index) => {
593
+ (0, chai_1.expect)(result.toString()).to.eq(index < 2 ? voteWeight.toString() : "0");
594
+ });
205
595
  });
206
596
  });
207
597
  });