@maci-protocol/circuits 0.0.0-ci.f4bc8a6 → 0.0.0-ci.f4e2c46

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 (58) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +2 -2
  3. package/build/ts/{genZkeys.d.ts → generateZkeys.d.ts} +1 -1
  4. package/build/ts/generateZkeys.d.ts.map +1 -0
  5. package/build/ts/{genZkeys.js → generateZkeys.js} +1 -1
  6. package/build/ts/generateZkeys.js.map +1 -0
  7. package/build/ts/types.d.ts +13 -14
  8. package/build/ts/types.d.ts.map +1 -1
  9. package/build/tsconfig.build.tsbuildinfo +1 -1
  10. package/circom/circuits.json +35 -19
  11. package/circom/coordinator/full/MessageProcessor.circom +253 -0
  12. package/circom/coordinator/full/SingleMessageProcessor.circom +204 -0
  13. package/circom/coordinator/non-qv/MessageProcessor.circom +252 -0
  14. package/circom/coordinator/non-qv/SingleMessageProcessor.circom +200 -0
  15. package/circom/coordinator/non-qv/VoteTally.circom +162 -0
  16. package/circom/coordinator/qv/MessageProcessor.circom +250 -0
  17. package/circom/coordinator/qv/SingleMessageProcessor.circom +208 -0
  18. package/circom/coordinator/qv/VoteTally.circom +180 -0
  19. package/circom/utils/{calculateTotal.circom → CalculateTotal.circom} +8 -6
  20. package/circom/utils/{verifySignature.circom → EdDSAPoseidonVerifier.circom} +40 -66
  21. package/circom/utils/MessageHasher.circom +57 -0
  22. package/circom/utils/MessageToCommand.circom +107 -0
  23. package/circom/utils/PoseidonHasher.circom +29 -0
  24. package/circom/utils/{privToPubKey.circom → PrivateToPublicKey.circom} +12 -10
  25. package/circom/utils/VerifySignature.circom +39 -0
  26. package/circom/utils/full/MessageValidator.circom +91 -0
  27. package/circom/utils/full/StateLeafAndBallotTransformer.circom +122 -0
  28. package/circom/utils/non-qv/{messageValidator.circom → MessageValidator.circom} +17 -15
  29. package/circom/utils/non-qv/ResultCommitmentVerifier.circom +84 -0
  30. package/circom/utils/non-qv/{stateLeafAndBallotTransformer.circom → StateLeafAndBallotTransformer.circom} +36 -36
  31. package/circom/utils/qv/{messageValidator.circom → MessageValidator.circom} +17 -15
  32. package/circom/utils/qv/ResultCommitmentVerifier.circom +107 -0
  33. package/circom/utils/qv/{stateLeafAndBallotTransformer.circom → StateLeafAndBallotTransformer.circom} +36 -36
  34. package/circom/utils/trees/BinaryMerkleRoot.circom +62 -0
  35. package/circom/utils/trees/CheckRoot.circom +49 -0
  36. package/circom/utils/trees/LeafExists.circom +27 -0
  37. package/circom/utils/trees/MerklePathIndicesGenerator.circom +44 -0
  38. package/circom/utils/trees/MerkleTreeInclusionProof.circom +50 -0
  39. package/circom/utils/trees/QuinaryCheckRoot.circom +54 -0
  40. package/circom/utils/trees/QuinaryGeneratePathIndices.circom +44 -0
  41. package/circom/utils/trees/QuinaryLeafExists.circom +30 -0
  42. package/circom/utils/trees/QuinarySelector.circom +42 -0
  43. package/circom/utils/trees/QuinaryTreeInclusionProof.circom +55 -0
  44. package/circom/utils/trees/Splicer.circom +76 -0
  45. package/circom/voter/PollJoined.circom +43 -0
  46. package/circom/voter/PollJoining.circom +54 -0
  47. package/package.json +20 -17
  48. package/build/ts/genZkeys.d.ts.map +0 -1
  49. package/build/ts/genZkeys.js.map +0 -1
  50. package/circom/coordinator/non-qv/processMessages.circom +0 -447
  51. package/circom/coordinator/non-qv/tallyVotes.circom +0 -232
  52. package/circom/coordinator/qv/processMessages.circom +0 -449
  53. package/circom/coordinator/qv/tallyVotes.circom +0 -277
  54. package/circom/utils/hashers.circom +0 -78
  55. package/circom/utils/messageToCommand.circom +0 -78
  56. package/circom/utils/trees/incrementalMerkleTree.circom +0 -198
  57. package/circom/utils/trees/incrementalQuinaryTree.circom +0 -287
  58. package/circom/voter/poll.circom +0 -93
package/LICENSE CHANGED
@@ -1,7 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020 Barry WhiteHat, Kendrick Tan, Kobi Gurkan, Kirill Goncharov
4
- Cory Dickson, Han Jian, Chih-Cheng Liang, and Koh Wei Jie
3
+ Copyright (c) 2025 Ethereum Foundation
5
4
 
6
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -7,8 +7,8 @@ This package contains the zk-SNARK circuits written in Circom 2.0.
7
7
 
8
8
  The main circuits are:
9
9
 
10
- - `processMessages.circom`
11
- - `tallyVotes.circom`
10
+ - `MessageProcessor.circom`
11
+ - `VoteTally.circom`
12
12
 
13
13
  The rest of the circuits are utilities templates that are required for the main circuits to work correctly. These include utilities such as float math, conversion of private keys, and Poseidon hashing/encryption.
14
14
 
@@ -6,4 +6,4 @@
6
6
  * @param outPath - the path to the output folder
7
7
  */
8
8
  export declare const generateZkeys: (outputPath?: string) => Promise<void>;
9
- //# sourceMappingURL=genZkeys.d.ts.map
9
+ //# sourceMappingURL=generateZkeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateZkeys.d.ts","sourceRoot":"","sources":["../../ts/generateZkeys.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CA2CrE,CAAC"}
@@ -64,4 +64,4 @@ if (require.main === module) {
64
64
  }
65
65
  })();
66
66
  }
67
- //# sourceMappingURL=genZkeys.js.map
67
+ //# sourceMappingURL=generateZkeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateZkeys.js","sourceRoot":"","sources":["../../ts/generateZkeys.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,8 @@ export interface ISnarkJSVerificationKey {
18
18
  * Inputs for circuit PollJoining
19
19
  */
20
20
  export interface IPollJoiningInputs {
21
- privKey: bigint;
22
- pollPubKey: bigint[][];
21
+ privateKey: bigint;
22
+ pollPublicKey: bigint[][];
23
23
  stateLeaf: bigint[];
24
24
  siblings: bigint[][];
25
25
  indices: bigint[];
@@ -33,9 +33,8 @@ export interface IPollJoiningInputs {
33
33
  * Inputs for circuit PollJoined
34
34
  */
35
35
  export interface IPollJoinedInputs {
36
- privKey: bigint;
36
+ privateKey: bigint;
37
37
  voiceCreditsBalance: bigint;
38
- joinTimestamp: bigint;
39
38
  stateLeaf: bigint[];
40
39
  pathElements: bigint[][];
41
40
  pathIndices: bigint[];
@@ -48,15 +47,15 @@ export interface IPollJoinedInputs {
48
47
  */
49
48
  export interface IProcessMessagesInputs {
50
49
  actualStateTreeDepth: bigint;
51
- numSignUps: bigint;
50
+ totalSignups: bigint;
52
51
  batchEndIndex: bigint;
53
52
  index: bigint;
54
53
  inputBatchHash: bigint;
55
54
  outputBatchHash: bigint;
56
- msgs: bigint[];
57
- coordPrivKey: bigint;
55
+ messages: bigint[];
56
+ coordinatorPrivateKey: bigint;
58
57
  coordinatorPublicKeyHash: bigint;
59
- encPubKeys: bigint[];
58
+ encryptionPublicKeys: bigint[];
60
59
  currentStateRoot: bigint;
61
60
  currentStateLeaves: bigint[];
62
61
  currentStateLeavesPathElements: bigint[][];
@@ -72,14 +71,14 @@ export interface IProcessMessagesInputs {
72
71
  voteOptions: bigint;
73
72
  }
74
73
  /**
75
- * Inputs for circuit TallyVotes
74
+ * Inputs for circuit VoteTally
76
75
  */
77
- export interface ITallyVotesInputs {
76
+ export interface IVoteTallyInputs {
78
77
  stateRoot: bigint;
79
78
  ballotRoot: bigint;
80
79
  sbSalt: bigint;
81
80
  index: bigint;
82
- numSignUps: bigint;
81
+ totalSignups: bigint;
83
82
  sbCommitment: bigint;
84
83
  currentTallyCommitment: bigint;
85
84
  newTallyCommitment: bigint;
@@ -90,10 +89,10 @@ export interface ITallyVotesInputs {
90
89
  currentResultsRootSalt: bigint;
91
90
  currentSpentVoiceCreditSubtotal: bigint;
92
91
  currentSpentVoiceCreditSubtotalSalt: bigint;
93
- currentPerVOSpentVoiceCredits: bigint[];
94
- currentPerVOSpentVoiceCreditsRootSalt: bigint;
92
+ currentPerVoteOptionSpentVoiceCredits: bigint[];
93
+ currentPerVoteOptionSpentVoiceCreditsRootSalt: bigint;
95
94
  newResultsRootSalt: bigint;
96
- newPerVOSpentVoiceCreditsRootSalt: bigint;
95
+ newPerVoteOptionSpentVoiceCreditsRootSalt: bigint;
97
96
  newSpentVoiceCreditSubtotalSalt: bigint;
98
97
  }
99
98
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../ts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../ts/types.ts"],"names":[],"mappings":"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"}