@maci-protocol/testing 0.0.0-ci.ec84efe → 0.0.0-ci.eea13a2

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