@maci-protocol/circuits 0.0.0-ci.85bba2d → 0.0.0-ci.86ec64f

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 (38) hide show
  1. package/README.md +2 -2
  2. package/build/ts/types.d.ts +7 -7
  3. package/build/ts/types.d.ts.map +1 -1
  4. package/build/tsconfig.build.tsbuildinfo +1 -1
  5. package/circom/circuits.json +28 -12
  6. package/circom/coordinator/full/MessageProcessor.circom +253 -0
  7. package/circom/coordinator/full/SingleMessageProcessor.circom +203 -0
  8. package/circom/coordinator/non-qv/{processMessages.circom → MessageProcessor.circom} +12 -206
  9. package/circom/coordinator/non-qv/SingleMessageProcessor.circom +199 -0
  10. package/circom/coordinator/non-qv/{tallyVotes.circom → VoteTally.circom} +22 -99
  11. package/circom/coordinator/qv/{processMessages.circom → MessageProcessor.circom} +13 -214
  12. package/circom/coordinator/qv/SingleMessageProcessor.circom +207 -0
  13. package/circom/coordinator/qv/VoteTally.circom +179 -0
  14. package/circom/coordinator/qv/VoteTallyWithIndividualCounts.circom +226 -0
  15. package/circom/utils/CalculateTotal.circom +6 -6
  16. package/circom/utils/PrivateToPublicKey.circom +3 -3
  17. package/circom/utils/full/MessageValidator.circom +91 -0
  18. package/circom/utils/full/StateLeafAndBallotTransformer.circom +122 -0
  19. package/circom/utils/non-qv/MessageValidator.circom +4 -4
  20. package/circom/utils/non-qv/ResultCommitmentVerifier.circom +84 -0
  21. package/circom/utils/non-qv/StateLeafAndBallotTransformer.circom +7 -7
  22. package/circom/utils/qv/MessageValidator.circom +4 -4
  23. package/circom/utils/qv/ResultCommitmentVerifier.circom +107 -0
  24. package/circom/utils/qv/StateLeafAndBallotTransformer.circom +7 -7
  25. package/circom/utils/trees/BinaryMerkleRoot.circom +6 -3
  26. package/circom/utils/trees/LeafExists.circom +2 -2
  27. package/circom/utils/trees/MerkleTreeInclusionProof.circom +4 -4
  28. package/circom/utils/trees/QuinaryCheckRoot.circom +54 -0
  29. package/circom/utils/trees/{MerklePathIndicesGenerator.circom → QuinaryGeneratePathIndices.circom} +18 -18
  30. package/circom/utils/trees/QuinaryLeafExists.circom +30 -0
  31. package/circom/utils/trees/QuinarySelector.circom +42 -0
  32. package/circom/utils/trees/QuinaryTreeInclusionProof.circom +55 -0
  33. package/circom/utils/trees/Splicer.circom +76 -0
  34. package/circom/voter/PollJoined.circom +5 -5
  35. package/circom/voter/PollJoining.circom +3 -3
  36. package/package.json +15 -13
  37. package/circom/coordinator/qv/tallyVotes.circom +0 -279
  38. package/circom/utils/trees/incrementalQuinaryTree.circom +0 -287
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
 
@@ -22,7 +22,7 @@ export interface IPollJoiningInputs {
22
22
  pollPublicKey: bigint[][];
23
23
  stateLeaf: bigint[];
24
24
  siblings: bigint[][];
25
- indices: bigint[];
25
+ index: bigint;
26
26
  nullifier: bigint;
27
27
  credits: bigint;
28
28
  stateRoot: bigint;
@@ -37,7 +37,7 @@ export interface IPollJoinedInputs {
37
37
  voiceCreditsBalance: bigint;
38
38
  stateLeaf: bigint[];
39
39
  pathElements: bigint[][];
40
- pathIndices: bigint[];
40
+ index: bigint;
41
41
  credits: bigint;
42
42
  stateRoot: bigint;
43
43
  actualStateTreeDepth: bigint;
@@ -71,9 +71,9 @@ export interface IProcessMessagesInputs {
71
71
  voteOptions: bigint;
72
72
  }
73
73
  /**
74
- * Inputs for circuit TallyVotes
74
+ * Inputs for circuit VoteTally
75
75
  */
76
- export interface ITallyVotesInputs {
76
+ export interface IVoteTallyInputs {
77
77
  stateRoot: bigint;
78
78
  ballotRoot: bigint;
79
79
  sbSalt: bigint;
@@ -89,10 +89,10 @@ export interface ITallyVotesInputs {
89
89
  currentResultsRootSalt: bigint;
90
90
  currentSpentVoiceCreditSubtotal: bigint;
91
91
  currentSpentVoiceCreditSubtotalSalt: bigint;
92
- currentPerVOSpentVoiceCredits: bigint[];
93
- currentPerVOSpentVoiceCreditsRootSalt: bigint;
92
+ currentPerVoteOptionSpentVoiceCredits: bigint[];
93
+ currentPerVoteOptionSpentVoiceCreditsRootSalt: bigint;
94
94
  newResultsRootSalt: bigint;
95
- newPerVOSpentVoiceCreditsRootSalt: bigint;
95
+ newPerVoteOptionSpentVoiceCreditsRootSalt: bigint;
96
96
  newSpentVoiceCreditSubtotalSalt: bigint;
97
97
  }
98
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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"}