@maci-protocol/sdk 0.0.0-ci.9342f07 → 0.0.0-ci.9819a21

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 (212) hide show
  1. package/LICENSE +1 -2
  2. package/build/package.json +16 -8
  3. package/build/ts/browser/index.d.ts +4 -2
  4. package/build/ts/browser/index.d.ts.map +1 -1
  5. package/build/ts/browser/index.js +7 -1
  6. package/build/ts/browser/index.js.map +1 -1
  7. package/build/ts/browser/joinPoll.d.ts +4 -2
  8. package/build/ts/browser/joinPoll.d.ts.map +1 -1
  9. package/build/ts/browser/joinPoll.js +21 -17
  10. package/build/ts/browser/joinPoll.js.map +1 -1
  11. package/build/ts/browser/utils.d.ts +2 -2
  12. package/build/ts/browser/utils.d.ts.map +1 -1
  13. package/build/ts/browser/utils.js +3 -3
  14. package/build/ts/browser/utils.js.map +1 -1
  15. package/build/ts/deploy/index.d.ts +2 -2
  16. package/build/ts/deploy/index.d.ts.map +1 -1
  17. package/build/ts/deploy/index.js +3 -3
  18. package/build/ts/deploy/index.js.map +1 -1
  19. package/build/ts/deploy/maci.js +1 -1
  20. package/build/ts/deploy/maci.js.map +1 -1
  21. package/build/ts/deploy/poll.d.ts +1 -1
  22. package/build/ts/deploy/poll.d.ts.map +1 -1
  23. package/build/ts/deploy/poll.js +13 -9
  24. package/build/ts/deploy/poll.js.map +1 -1
  25. package/build/ts/deploy/types.d.ts +19 -10
  26. package/build/ts/deploy/types.d.ts.map +1 -1
  27. package/build/ts/deploy/utils.js +1 -1
  28. package/build/ts/deploy/utils.js.map +1 -1
  29. package/build/ts/deploy/verifyingKeysRegistry.d.ts +7 -0
  30. package/build/ts/deploy/verifyingKeysRegistry.d.ts.map +1 -0
  31. package/build/ts/deploy/verifyingKeysRegistry.js +14 -0
  32. package/build/ts/deploy/verifyingKeysRegistry.js.map +1 -0
  33. package/build/ts/index.d.ts +3 -2
  34. package/build/ts/index.d.ts.map +1 -1
  35. package/build/ts/index.js +16 -9
  36. package/build/ts/index.js.map +1 -1
  37. package/build/ts/maci/state.d.ts +1 -1
  38. package/build/ts/maci/state.js +8 -8
  39. package/build/ts/maci/state.js.map +1 -1
  40. package/build/ts/maci/types.d.ts +1 -1
  41. package/build/ts/maciKeys/__tests__/keypair.test.js +7 -7
  42. package/build/ts/maciKeys/__tests__/keypair.test.js.map +1 -1
  43. package/build/ts/maciKeys/__tests__/publicKeys.test.js +7 -7
  44. package/build/ts/maciKeys/__tests__/publicKeys.test.js.map +1 -1
  45. package/build/ts/maciKeys/keypair.d.ts.map +1 -1
  46. package/build/ts/maciKeys/keypair.js +4 -3
  47. package/build/ts/maciKeys/keypair.js.map +1 -1
  48. package/build/ts/maciKeys/publicKeys.d.ts +2 -2
  49. package/build/ts/maciKeys/publicKeys.d.ts.map +1 -1
  50. package/build/ts/maciKeys/publicKeys.js +6 -6
  51. package/build/ts/maciKeys/publicKeys.js.map +1 -1
  52. package/build/ts/maciKeys/types.d.ts +5 -0
  53. package/build/ts/maciKeys/types.d.ts.map +1 -1
  54. package/build/ts/poll/poll.d.ts.map +1 -1
  55. package/build/ts/poll/poll.js +9 -9
  56. package/build/ts/poll/poll.js.map +1 -1
  57. package/build/ts/poll/types.d.ts +6 -6
  58. package/build/ts/poll/types.d.ts.map +1 -1
  59. package/build/ts/proof/__tests__/download.test.js +8 -5
  60. package/build/ts/proof/__tests__/download.test.js.map +1 -1
  61. package/build/ts/proof/download.d.ts +3 -3
  62. package/build/ts/proof/download.d.ts.map +1 -1
  63. package/build/ts/proof/download.js +5 -7
  64. package/build/ts/proof/download.js.map +1 -1
  65. package/build/ts/proof/generate.d.ts +2 -2
  66. package/build/ts/proof/generate.d.ts.map +1 -1
  67. package/build/ts/proof/generate.js +29 -23
  68. package/build/ts/proof/generate.js.map +1 -1
  69. package/build/ts/proof/prove.js +13 -13
  70. package/build/ts/proof/prove.js.map +1 -1
  71. package/build/ts/proof/types.d.ts +40 -14
  72. package/build/ts/proof/types.d.ts.map +1 -1
  73. package/build/ts/proof/utils.d.ts +10 -0
  74. package/build/ts/proof/utils.d.ts.map +1 -0
  75. package/build/ts/proof/utils.js +24 -0
  76. package/build/ts/proof/utils.js.map +1 -0
  77. package/build/ts/relayer/__tests__/messages.test.js +1 -1
  78. package/build/ts/relayer/__tests__/messages.test.js.map +1 -1
  79. package/build/ts/relayer/__tests__/utils.test.js +3 -3
  80. package/build/ts/relayer/__tests__/utils.test.js.map +1 -1
  81. package/build/ts/relayer/messages.js +1 -1
  82. package/build/ts/relayer/utils.js +1 -1
  83. package/build/ts/relayer/utils.js.map +1 -1
  84. package/build/ts/subgraph/index.d.ts +3 -0
  85. package/build/ts/subgraph/index.d.ts.map +1 -0
  86. package/build/ts/subgraph/index.js +18 -0
  87. package/build/ts/subgraph/index.js.map +1 -0
  88. package/build/ts/subgraph/maciSubgraph.d.ts +28 -0
  89. package/build/ts/subgraph/maciSubgraph.d.ts.map +1 -0
  90. package/build/ts/subgraph/maciSubgraph.js +64 -0
  91. package/build/ts/subgraph/maciSubgraph.js.map +1 -0
  92. package/build/ts/subgraph/types.d.ts +20 -0
  93. package/build/ts/subgraph/types.d.ts.map +1 -0
  94. package/build/ts/subgraph/types.js +3 -0
  95. package/build/ts/subgraph/types.js.map +1 -0
  96. package/build/ts/tally/commitments.d.ts.map +1 -1
  97. package/build/ts/tally/commitments.js +8 -7
  98. package/build/ts/tally/commitments.js.map +1 -1
  99. package/build/ts/tally/index.d.ts +2 -1
  100. package/build/ts/tally/index.d.ts.map +1 -1
  101. package/build/ts/tally/index.js +5 -1
  102. package/build/ts/tally/index.js.map +1 -1
  103. package/build/ts/tally/results.d.ts +20 -0
  104. package/build/ts/tally/results.d.ts.map +1 -0
  105. package/build/ts/tally/results.js +49 -0
  106. package/build/ts/tally/results.js.map +1 -0
  107. package/build/ts/tally/types.d.ts +55 -15
  108. package/build/ts/tally/types.d.ts.map +1 -1
  109. package/build/ts/tally/utils.d.ts +3 -3
  110. package/build/ts/tally/utils.d.ts.map +1 -1
  111. package/build/ts/tally/utils.js +10 -10
  112. package/build/ts/tally/utils.js.map +1 -1
  113. package/build/ts/tally/verification.d.ts +1 -1
  114. package/build/ts/tally/verification.d.ts.map +1 -1
  115. package/build/ts/tally/verification.js +10 -10
  116. package/build/ts/tally/verification.js.map +1 -1
  117. package/build/ts/trees/index.d.ts +2 -2
  118. package/build/ts/trees/index.d.ts.map +1 -1
  119. package/build/ts/trees/index.js +3 -1
  120. package/build/ts/trees/index.js.map +1 -1
  121. package/build/ts/trees/stateTree.d.ts +23 -1
  122. package/build/ts/trees/stateTree.d.ts.map +1 -1
  123. package/build/ts/trees/stateTree.js +74 -13
  124. package/build/ts/trees/stateTree.js.map +1 -1
  125. package/build/ts/trees/types.d.ts +11 -2
  126. package/build/ts/trees/types.d.ts.map +1 -1
  127. package/build/ts/user/index.d.ts +2 -2
  128. package/build/ts/user/index.d.ts.map +1 -1
  129. package/build/ts/user/index.js +5 -1
  130. package/build/ts/user/index.js.map +1 -1
  131. package/build/ts/user/joinPoll.d.ts +1 -1
  132. package/build/ts/user/joinPoll.d.ts.map +1 -1
  133. package/build/ts/user/joinPoll.js +11 -11
  134. package/build/ts/user/joinPoll.js.map +1 -1
  135. package/build/ts/user/signup.d.ts +3 -3
  136. package/build/ts/user/signup.d.ts.map +1 -1
  137. package/build/ts/user/signup.js +26 -21
  138. package/build/ts/user/signup.js.map +1 -1
  139. package/build/ts/user/types.d.ts +63 -19
  140. package/build/ts/user/types.d.ts.map +1 -1
  141. package/build/ts/user/utils.d.ts +34 -14
  142. package/build/ts/user/utils.d.ts.map +1 -1
  143. package/build/ts/user/utils.js +91 -57
  144. package/build/ts/user/utils.js.map +1 -1
  145. package/build/ts/utils/index.d.ts +1 -1
  146. package/build/ts/utils/index.d.ts.map +1 -1
  147. package/build/ts/utils/index.js +2 -1
  148. package/build/ts/utils/index.js.map +1 -1
  149. package/build/ts/utils/params.d.ts +1 -1
  150. package/build/ts/utils/params.d.ts.map +1 -1
  151. package/build/ts/utils/params.js +3 -3
  152. package/build/ts/utils/params.js.map +1 -1
  153. package/build/ts/utils/proofs.d.ts +2 -2
  154. package/build/ts/utils/proofs.d.ts.map +1 -1
  155. package/build/ts/utils/proofs.js +4 -4
  156. package/build/ts/utils/proofs.js.map +1 -1
  157. package/build/ts/utils/types.d.ts +2 -2
  158. package/build/ts/utils/types.d.ts.map +1 -1
  159. package/build/ts/utils/utils.d.ts +5 -0
  160. package/build/ts/utils/utils.d.ts.map +1 -1
  161. package/build/ts/utils/utils.js +13 -1
  162. package/build/ts/utils/utils.js.map +1 -1
  163. package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts +1 -1
  164. package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts.map +1 -1
  165. package/build/ts/verifyingKeys/checkVerifyingKeys.js +18 -19
  166. package/build/ts/verifyingKeys/checkVerifyingKeys.js.map +1 -1
  167. package/build/ts/verifyingKeys/index.d.ts +2 -2
  168. package/build/ts/verifyingKeys/index.d.ts.map +1 -1
  169. package/build/ts/verifyingKeys/index.js +5 -5
  170. package/build/ts/verifyingKeys/index.js.map +1 -1
  171. package/build/ts/verifyingKeys/setVerifyingKeys.d.ts +1 -1
  172. package/build/ts/verifyingKeys/setVerifyingKeys.d.ts.map +1 -1
  173. package/build/ts/verifyingKeys/setVerifyingKeys.js +75 -41
  174. package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -1
  175. package/build/ts/verifyingKeys/types.d.ts +56 -48
  176. package/build/ts/verifyingKeys/types.d.ts.map +1 -1
  177. package/build/ts/verifyingKeys/utils.d.ts +10 -10
  178. package/build/ts/verifyingKeys/utils.d.ts.map +1 -1
  179. package/build/ts/verifyingKeys/utils.js +75 -60
  180. package/build/ts/verifyingKeys/utils.js.map +1 -1
  181. package/build/ts/vote/generate.d.ts +1 -1
  182. package/build/ts/vote/generate.d.ts.map +1 -1
  183. package/build/ts/vote/generate.js +4 -4
  184. package/build/ts/vote/generate.js.map +1 -1
  185. package/build/ts/vote/index.d.ts +2 -1
  186. package/build/ts/vote/index.d.ts.map +1 -1
  187. package/build/ts/vote/index.js +4 -2
  188. package/build/ts/vote/index.js.map +1 -1
  189. package/build/ts/vote/invalidate.js +4 -4
  190. package/build/ts/vote/invalidate.js.map +1 -1
  191. package/build/ts/vote/publish.d.ts +1 -1
  192. package/build/ts/vote/publish.d.ts.map +1 -1
  193. package/build/ts/vote/publish.js +19 -19
  194. package/build/ts/vote/publish.js.map +1 -1
  195. package/build/ts/vote/submit.js +2 -2
  196. package/build/ts/vote/submit.js.map +1 -1
  197. package/build/ts/vote/types.d.ts +6 -6
  198. package/build/ts/vote/types.d.ts.map +1 -1
  199. package/build/ts/vote/utils.d.ts +2 -2
  200. package/build/ts/vote/utils.d.ts.map +1 -1
  201. package/build/ts/vote/utils.js +5 -5
  202. package/build/ts/vote/utils.js.map +1 -1
  203. package/build/tsconfig.build.tsbuildinfo +1 -1
  204. package/package.json +22 -14
  205. package/build/ts/deploy/vkRegistry.d.ts +0 -7
  206. package/build/ts/deploy/vkRegistry.d.ts.map +0 -1
  207. package/build/ts/deploy/vkRegistry.js +0 -14
  208. package/build/ts/deploy/vkRegistry.js.map +0 -1
  209. package/build/ts/proof/constants.d.ts +0 -17
  210. package/build/ts/proof/constants.d.ts.map +0 -1
  211. package/build/ts/proof/constants.js +0 -20
  212. package/build/ts/proof/constants.js.map +0 -1
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MaciSubgraph = void 0;
4
+ const domainobjs_1 = require("@maci-protocol/domainobjs");
5
+ /**
6
+ * A class that can be used to interact with MACI's subgraph
7
+ * @dev refer to apps/subgraph for subgraph deployment and configuration
8
+ */
9
+ class MaciSubgraph {
10
+ /**
11
+ * Create a new instance of the MaciSubgraph class
12
+ *
13
+ * @param url - The URL of the subgraph
14
+ */
15
+ constructor(url) {
16
+ /**
17
+ * The query to get all MACIs public keys signed up
18
+ */
19
+ this.userQuery = `
20
+ query {
21
+ users (orderBy: createdAt, orderDirection: asc) {
22
+ id
23
+ }
24
+ }
25
+ `;
26
+ this.url = url;
27
+ }
28
+ /**
29
+ * Get the public keys of all MACIs signed up
30
+ *
31
+ * @returns Array of public keys including pad key
32
+ */
33
+ async getKeys() {
34
+ const res = await fetch(this.url, {
35
+ method: "POST",
36
+ body: JSON.stringify({
37
+ query: this.userQuery,
38
+ }),
39
+ headers: {
40
+ "Content-Type": "application/json",
41
+ Accept: "application/json",
42
+ },
43
+ });
44
+ if (!res.ok) {
45
+ throw new Error(`GraphQL query failed: ${res.statusText}`);
46
+ }
47
+ const json = (await res.json());
48
+ if (json.errors) {
49
+ throw new Error(`GraphQL errors: ${JSON.stringify(json.errors)}`);
50
+ }
51
+ if (!json.data?.users) {
52
+ throw new Error("No users data in response");
53
+ }
54
+ const userKeys = json.data.users.map((user) => {
55
+ // Split the id into x and y coordinates and convert to BigInt
56
+ const [x, y] = user.id.split(" ");
57
+ return new domainobjs_1.PublicKey([BigInt(x), BigInt(y)]);
58
+ });
59
+ userKeys.unshift(domainobjs_1.padKey);
60
+ return userKeys;
61
+ }
62
+ }
63
+ exports.MaciSubgraph = MaciSubgraph;
64
+ //# sourceMappingURL=maciSubgraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maciSubgraph.js","sourceRoot":"","sources":["../../../ts/subgraph/maciSubgraph.ts"],"names":[],"mappings":";;;AAAA,0DAA8D;AAI9D;;;GAGG;AACH,MAAa,YAAY;IAiBvB;;;;OAIG;IACH,YAAY,GAAW;QAhBvB;;WAEG;QACK,cAAS,GAAG;;;;;;KAMjB,CAAC;QAQF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,SAAS;aACtB,CAAC;YACF,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAC;QAEnD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,8DAA8D;YAC9D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO,IAAI,sBAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,mBAAM,CAAC,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAlED,oCAkEC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The response from the GraphQL query
3
+ */
4
+ export interface GraphQLResponse {
5
+ /**
6
+ * The data from the query
7
+ */
8
+ data?: {
9
+ users: {
10
+ id: string;
11
+ }[];
12
+ };
13
+ /**
14
+ * The errors from the query
15
+ */
16
+ errors?: {
17
+ message: string;
18
+ }[];
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/subgraph/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,KAAK,EAAE;YACL,EAAE,EAAE,MAAM,CAAC;SACZ,EAAE,CAAC;KACL,CAAC;IACF;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;CACL"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/subgraph/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"commitments.d.ts","sourceRoot":"","sources":["../../../ts/tally/commitments.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,qCAGtC,6BAA6B,KAAG,iBAyClC,CAAC"}
1
+ {"version":3,"file":"commitments.d.ts","sourceRoot":"","sources":["../../../ts/tally/commitments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,qCAGtC,6BAA6B,KAAG,iBAyClC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateTallyCommitments = void 0;
4
+ const core_1 = require("@maci-protocol/core");
4
5
  const crypto_1 = require("@maci-protocol/crypto");
5
6
  /**
6
7
  * Generate the tally commitments for this current batch of proving
@@ -10,22 +11,22 @@ const crypto_1 = require("@maci-protocol/crypto");
10
11
  */
11
12
  const generateTallyCommitments = ({ tallyData, voteOptionTreeDepth, }) => {
12
13
  // compute newResultsCommitment
13
- const newResultsCommitment = (0, crypto_1.genTreeCommitment)(tallyData.results.tally.map((x) => BigInt(x)), BigInt(tallyData.results.salt), voteOptionTreeDepth);
14
+ const newResultsCommitment = (0, crypto_1.generateTreeCommitment)(tallyData.results.tally.map((x) => BigInt(x)), BigInt(tallyData.results.salt), voteOptionTreeDepth);
14
15
  // compute newSpentVoiceCreditsCommitment
15
16
  const newSpentVoiceCreditsCommitment = (0, crypto_1.hash2)([
16
17
  BigInt(tallyData.totalSpentVoiceCredits.spent),
17
18
  BigInt(tallyData.totalSpentVoiceCredits.salt),
18
19
  ]);
19
20
  let newTallyCommitment;
20
- let newPerVOSpentVoiceCreditsCommitment;
21
- if (tallyData.isQuadratic) {
22
- // compute newPerVOSpentVoiceCreditsCommitment
23
- newPerVOSpentVoiceCreditsCommitment = (0, crypto_1.genTreeCommitment)(tallyData.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), BigInt(tallyData.perVOSpentVoiceCredits.salt), voteOptionTreeDepth);
21
+ let newPerVoteOptionSpentVoiceCreditsCommitment;
22
+ if (tallyData.mode === core_1.EMode.QV) {
23
+ // compute newPerVoteOptionSpentVoiceCreditsCommitment
24
+ newPerVoteOptionSpentVoiceCreditsCommitment = (0, crypto_1.generateTreeCommitment)(tallyData.perVoteOptionSpentVoiceCredits.tally.map((x) => BigInt(x)), BigInt(tallyData.perVoteOptionSpentVoiceCredits.salt), voteOptionTreeDepth);
24
25
  // compute newTallyCommitment
25
26
  newTallyCommitment = (0, crypto_1.hash3)([
26
27
  newResultsCommitment,
27
28
  newSpentVoiceCreditsCommitment,
28
- newPerVOSpentVoiceCreditsCommitment,
29
+ newPerVoteOptionSpentVoiceCreditsCommitment,
29
30
  ]);
30
31
  }
31
32
  else {
@@ -34,7 +35,7 @@ const generateTallyCommitments = ({ tallyData, voteOptionTreeDepth, }) => {
34
35
  return {
35
36
  newTallyCommitment,
36
37
  newSpentVoiceCreditsCommitment,
37
- newPerVOSpentVoiceCreditsCommitment,
38
+ newPerVoteOptionSpentVoiceCreditsCommitment,
38
39
  newResultsCommitment,
39
40
  };
40
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"commitments.js","sourceRoot":"","sources":["../../../ts/tally/commitments.ts"],"names":[],"mappings":";;;AAAA,kDAAuF;AAIvF;;;;;GAKG;AACI,MAAM,wBAAwB,GAAG,CAAC,EACvC,SAAS,EACT,mBAAmB,GACW,EAAqB,EAAE;IACrD,+BAA+B;IAC/B,MAAM,oBAAoB,GAAG,IAAA,0BAAiB,EAC5C,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAC9B,mBAAmB,CACpB,CAAC;IAEF,yCAAyC;IACzC,MAAM,8BAA8B,GAAG,IAAA,cAAK,EAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC;KAC9C,CAAC,CAAC;IAEH,IAAI,kBAA0B,CAAC;IAC/B,IAAI,mCAAuD,CAAC;IAE5D,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,8CAA8C;QAC9C,mCAAmC,GAAG,IAAA,0BAAiB,EACrD,SAAS,CAAC,sBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7D,MAAM,CAAC,SAAS,CAAC,sBAAuB,CAAC,IAAI,CAAC,EAC9C,mBAAmB,CACpB,CAAC;QAEF,6BAA6B;QAC7B,kBAAkB,GAAG,IAAA,cAAK,EAAC;YACzB,oBAAoB;YACpB,8BAA8B;YAC9B,mCAAmC;SACpC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,kBAAkB,GAAG,IAAA,sBAAa,EAAC,oBAAoB,EAAE,8BAA8B,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,8BAA8B;QAC9B,mCAAmC;QACnC,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,wBAAwB,4BA4CnC"}
1
+ {"version":3,"file":"commitments.js","sourceRoot":"","sources":["../../../ts/tally/commitments.ts"],"names":[],"mappings":";;;AAAA,8CAA4C;AAC5C,kDAA4F;AAI5F;;;;;GAKG;AACI,MAAM,wBAAwB,GAAG,CAAC,EACvC,SAAS,EACT,mBAAmB,GACW,EAAqB,EAAE;IACrD,+BAA+B;IAC/B,MAAM,oBAAoB,GAAG,IAAA,+BAAsB,EACjD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAC9B,mBAAmB,CACpB,CAAC;IAEF,yCAAyC;IACzC,MAAM,8BAA8B,GAAG,IAAA,cAAK,EAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC;KAC9C,CAAC,CAAC;IAEH,IAAI,kBAA0B,CAAC;IAC/B,IAAI,2CAA+D,CAAC;IAEpE,IAAI,SAAS,CAAC,IAAI,KAAK,YAAK,CAAC,EAAE,EAAE,CAAC;QAChC,sDAAsD;QACtD,2CAA2C,GAAG,IAAA,+BAAsB,EAClE,SAAS,CAAC,8BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACrE,MAAM,CAAC,SAAS,CAAC,8BAA+B,CAAC,IAAI,CAAC,EACtD,mBAAmB,CACpB,CAAC;QAEF,6BAA6B;QAC7B,kBAAkB,GAAG,IAAA,cAAK,EAAC;YACzB,oBAAoB;YACpB,8BAA8B;YAC9B,2CAA2C;SAC5C,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,kBAAkB,GAAG,IAAA,sBAAa,EAAC,oBAAoB,EAAE,8BAA8B,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,8BAA8B;QAC9B,2CAA2C;QAC3C,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,wBAAwB,4BA4CnC"}
@@ -1,4 +1,5 @@
1
1
  export { generateTallyCommitments } from "./commitments";
2
2
  export { verify } from "./verification";
3
- export type { ITallyData, IVerifyArgs, IGenerateTallyCommitmentsArgs, ITallyCommitments, ITallyVotesInputs, } from "./types";
3
+ export type { ITallyData, IVerifyArgs, IGenerateTallyCommitmentsArgs, ITallyCommitments, IVoteTallyInputs, IGetResultPerOptionArgs, IGetResultsArgs, IResult, } from "./types";
4
+ export { getResultPerOption, getResults, isTallied } from "./results";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/tally/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EACV,UAAU,EACV,WAAW,EACX,6BAA6B,EAC7B,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/tally/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EACV,UAAU,EACV,WAAW,EACX,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,OAAO,GACR,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verify = exports.generateTallyCommitments = void 0;
3
+ exports.isTallied = exports.getResults = exports.getResultPerOption = exports.verify = exports.generateTallyCommitments = void 0;
4
4
  var commitments_1 = require("./commitments");
5
5
  Object.defineProperty(exports, "generateTallyCommitments", { enumerable: true, get: function () { return commitments_1.generateTallyCommitments; } });
6
6
  var verification_1 = require("./verification");
7
7
  Object.defineProperty(exports, "verify", { enumerable: true, get: function () { return verification_1.verify; } });
8
+ var results_1 = require("./results");
9
+ Object.defineProperty(exports, "getResultPerOption", { enumerable: true, get: function () { return results_1.getResultPerOption; } });
10
+ Object.defineProperty(exports, "getResults", { enumerable: true, get: function () { return results_1.getResults; } });
11
+ Object.defineProperty(exports, "isTallied", { enumerable: true, get: function () { return results_1.isTallied; } });
8
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/tally/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AAAhD,uHAAA,wBAAwB,OAAA;AACjC,+CAAwC;AAA/B,sGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/tally/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyD;AAAhD,uHAAA,wBAAwB,OAAA;AACjC,+CAAwC;AAA/B,sGAAA,MAAM,OAAA;AAWf,qCAAsE;AAA7D,6GAAA,kBAAkB,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,oGAAA,SAAS,OAAA"}
@@ -0,0 +1,20 @@
1
+ import type { IGetResultPerOptionArgs, IGetResultsArgs, IResult } from "./types";
2
+ /**
3
+ * Get result per option
4
+ * @param {IGetResultPerOptionsArgs} - The arguments to get result per option
5
+ * @returns The result per option
6
+ */
7
+ export declare const getResultPerOption: ({ maciAddress, pollId, index, signer, }: IGetResultPerOptionArgs) => Promise<IResult>;
8
+ /**
9
+ * Get all results from the Tally contract
10
+ * @param {IGetResultsArgs} - The arguments to get all the results
11
+ * @returns The results array (The final result of vote option n is in index n-1)
12
+ */
13
+ export declare const getResults: ({ maciAddress, pollId, signer }: IGetResultsArgs) => Promise<IResult[]>;
14
+ /**
15
+ * Check if the poll is tallied
16
+ * @param {IGetResultsArgs} - The arguments to check if the poll is tallied
17
+ * @returns {boolean} - True if the poll is tallied, false otherwise
18
+ */
19
+ export declare const isTallied: ({ maciAddress, pollId, signer }: IGetResultsArgs) => Promise<boolean>;
20
+ //# sourceMappingURL=results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../../ts/tally/results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIjF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAU,yCAKtC,uBAAuB,KAAG,OAAO,CAAC,OAAO,CAS3C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,iCAAiC,eAAe,KAAG,OAAO,CAAC,OAAO,EAAE,CAkBpG,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAU,iCAAiC,eAAe,KAAG,OAAO,CAAC,OAAO,CAIjG,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTallied = exports.getResults = exports.getResultPerOption = void 0;
4
+ const poll_1 = require("../poll");
5
+ /**
6
+ * Get result per option
7
+ * @param {IGetResultPerOptionsArgs} - The arguments to get result per option
8
+ * @returns The result per option
9
+ */
10
+ const getResultPerOption = async ({ maciAddress, pollId, index, signer, }) => {
11
+ const { tally } = await (0, poll_1.getPollContracts)({ maciAddress, pollId, signer });
12
+ const { value, isSet } = await tally.getTallyResults(index);
13
+ return {
14
+ value,
15
+ isSet,
16
+ };
17
+ };
18
+ exports.getResultPerOption = getResultPerOption;
19
+ /**
20
+ * Get all results from the Tally contract
21
+ * @param {IGetResultsArgs} - The arguments to get all the results
22
+ * @returns The results array (The final result of vote option n is in index n-1)
23
+ */
24
+ const getResults = async ({ maciAddress, pollId, signer }) => {
25
+ const { poll, tally } = await (0, poll_1.getPollContracts)({ maciAddress, pollId, signer });
26
+ const numberOfVoteOptions = await poll.voteOptions();
27
+ const results = [];
28
+ for (let i = 0; i < numberOfVoteOptions; i += 1) {
29
+ // eslint-disable-next-line no-await-in-loop
30
+ const { value, isSet } = await tally.getTallyResults(i);
31
+ results.push({
32
+ value,
33
+ isSet,
34
+ });
35
+ }
36
+ return results;
37
+ };
38
+ exports.getResults = getResults;
39
+ /**
40
+ * Check if the poll is tallied
41
+ * @param {IGetResultsArgs} - The arguments to check if the poll is tallied
42
+ * @returns {boolean} - True if the poll is tallied, false otherwise
43
+ */
44
+ const isTallied = async ({ maciAddress, pollId, signer }) => {
45
+ const { tally } = await (0, poll_1.getPollContracts)({ maciAddress, pollId, signer });
46
+ return tally.isTallied();
47
+ };
48
+ exports.isTallied = isTallied;
49
+ //# sourceMappingURL=results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../../../ts/tally/results.ts"],"names":[],"mappings":";;;AAEA,kCAA2C;AAE3C;;;;GAIG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,WAAW,EACX,MAAM,EACN,KAAK,EACL,MAAM,GACkB,EAAoB,EAAE;IAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAE5D,OAAO;QACL,KAAK;QACL,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,kBAAkB,sBAc7B;AAEF;;;;GAIG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAmB,EAAsB,EAAE;IACvG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEhF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAErD,MAAM,OAAO,GAAc,EAAE,CAAC;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,4CAA4C;QAC5C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAExD,OAAO,CAAC,IAAI,CAAC;YACX,KAAK;YACL,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAlBW,QAAA,UAAU,cAkBrB;AAEF;;;;GAIG;AACI,MAAM,SAAS,GAAG,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAmB,EAAoB,EAAE;IACpG,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;AAC3B,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB"}
@@ -1,3 +1,4 @@
1
+ import type { EMode } from "@maci-protocol/core";
1
2
  import type { Signer } from "ethers";
2
3
  /**
3
4
  * Interface for the tally file data.
@@ -21,9 +22,9 @@ export interface ITallyData {
21
22
  */
22
23
  chainId?: string;
23
24
  /**
24
- * Whether the poll is using quadratic voting or not.
25
+ * Voting mode
25
26
  */
26
- isQuadratic: boolean;
27
+ mode: EMode;
27
28
  /**
28
29
  * The address of the Tally contract.
29
30
  */
@@ -67,19 +68,19 @@ export interface ITallyData {
67
68
  commitment: string;
68
69
  };
69
70
  /**
70
- * The per VO spent voice credits.
71
+ * The per vote option spent voice credits.
71
72
  */
72
- perVOSpentVoiceCredits?: {
73
+ perVoteOptionSpentVoiceCredits?: {
73
74
  /**
74
- * The tally of the per VO spent voice credits.
75
+ * The tally of the per vote option spent voice credits.
75
76
  */
76
77
  tally: string[];
77
78
  /**
78
- * The salt of the per VO spent voice credits.
79
+ * The salt of the per vote option spent voice credits.
79
80
  */
80
81
  salt: string;
81
82
  /**
82
- * The commitment of the per VO spent voice credits.
83
+ * The commitment of the per vote option spent voice credits.
83
84
  */
84
85
  commitment: string;
85
86
  };
@@ -111,7 +112,7 @@ export interface IVerifyArgs {
111
112
  /**
112
113
  * The number of vote options
113
114
  */
114
- numVoteOptions: number;
115
+ totalVoteOptions: number;
115
116
  /**
116
117
  * The vote option tree depth
117
118
  */
@@ -145,21 +146,21 @@ export interface ITallyCommitments {
145
146
  /**
146
147
  * The new per vote option spent voice credits commitment
147
148
  */
148
- newPerVOSpentVoiceCreditsCommitment?: bigint;
149
+ newPerVoteOptionSpentVoiceCreditsCommitment?: bigint;
149
150
  /**
150
151
  * The commitment to the results tree root
151
152
  */
152
153
  newResultsCommitment: bigint;
153
154
  }
154
155
  /**
155
- * Inputs for circuit TallyVotes
156
+ * Inputs for circuit VoteTally
156
157
  */
157
- export interface ITallyVotesInputs {
158
+ export interface IVoteTallyInputs {
158
159
  stateRoot: bigint;
159
160
  ballotRoot: bigint;
160
161
  sbSalt: bigint;
161
162
  index: bigint;
162
- numSignUps: bigint;
163
+ totalSignups: bigint;
163
164
  sbCommitment: bigint;
164
165
  currentTallyCommitment: bigint;
165
166
  newTallyCommitment: bigint;
@@ -170,10 +171,49 @@ export interface ITallyVotesInputs {
170
171
  currentResultsRootSalt: bigint;
171
172
  currentSpentVoiceCreditSubtotal: bigint;
172
173
  currentSpentVoiceCreditSubtotalSalt: bigint;
173
- currentPerVOSpentVoiceCredits: bigint[];
174
- currentPerVOSpentVoiceCreditsRootSalt: bigint;
174
+ currentPerVoteOptionSpentVoiceCredits: bigint[];
175
+ currentPerVoteOptionSpentVoiceCreditsRootSalt: bigint;
175
176
  newResultsRootSalt: bigint;
176
- newPerVOSpentVoiceCreditsRootSalt: bigint;
177
+ newPerVoteOptionSpentVoiceCreditsRootSalt: bigint;
177
178
  newSpentVoiceCreditSubtotalSalt: bigint;
178
179
  }
180
+ /**
181
+ * Get results args
182
+ */
183
+ export interface IGetResultsArgs {
184
+ /**
185
+ * The address of the MACI contract
186
+ */
187
+ maciAddress: string;
188
+ /**
189
+ * The ID of the poll
190
+ */
191
+ pollId: string;
192
+ /**
193
+ * The signer
194
+ */
195
+ signer: Signer;
196
+ }
197
+ /**
198
+ * Get result per option args
199
+ */
200
+ export interface IGetResultPerOptionArgs extends IGetResultsArgs {
201
+ /**
202
+ * The index of the vote option
203
+ */
204
+ index: number;
205
+ }
206
+ /**
207
+ * Interface for the result of a voting option
208
+ */
209
+ export interface IResult {
210
+ /**
211
+ * The result
212
+ */
213
+ value: bigint;
214
+ /**
215
+ * Whether the result is set or not
216
+ */
217
+ isSet: boolean;
218
+ }
179
219
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/tally/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,KAAK,EAAE,MAAM,EAAE,CAAC;QAEhB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,sBAAsB,EAAE;QACtB;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QAEd;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,sBAAsB,CAAC,EAAE;QACvB;;WAEG;QACH,KAAK,EAAE,MAAM,EAAE,CAAC;QAEhB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,UAAU,CAAC;IAEtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,iBAAiB,CAAC;IAEpC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,SAAS,EAAE,UAAU,CAAC;IACtB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,8BAA8B,EAAE,MAAM,CAAC;IACvC;;OAEG;IACH,mCAAmC,CAAC,EAAE,MAAM,CAAC;IAC7C;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+BAA+B,EAAE,MAAM,CAAC;IACxC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,6BAA6B,EAAE,MAAM,EAAE,CAAC;IACxC,qCAAqC,EAAE,MAAM,CAAC;IAC9C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iCAAiC,EAAE,MAAM,CAAC;IAC1C,+BAA+B,EAAE,MAAM,CAAC;CACzC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/tally/types.ts"],"names":[],"mappings":"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"}
@@ -10,15 +10,15 @@ import type { Tally } from "@maci-protocol/contracts";
10
10
  * @param newResultsCommitment The tally result commitment
11
11
  * @returns list of the indexes of the tally result that failed on-chain verification
12
12
  */
13
- export declare const verifyPerVOSpentVoiceCredits: (tallyContract: Tally, tallyData: ITallyData, voteOptionTreeDepth: number, newSpentVoiceCreditsCommitment: bigint, newResultsCommitment: bigint) => Promise<number[]>;
13
+ export declare const verifyPerVoteOptionSpentVoiceCredits: (tallyContract: Tally, tallyData: ITallyData, voteOptionTreeDepth: number, newSpentVoiceCreditsCommitment: bigint, newResultsCommitment: bigint) => Promise<number[]>;
14
14
  /**
15
15
  * Loop through each tally result and verify it on-chain
16
16
  * @param tallyContract The tally contract
17
17
  * @param tallyData The tally.json file data
18
18
  * @param voteOptionTreeDepth The vote option tree depth
19
19
  * @param newSpentVoiceCreditsCommitment The total spent voice credits commitment
20
- * @param newPerVOSpentVoiceCreditsCommitment The per vote option voice credits commitment
20
+ * @param newPerVoteOptionSpentVoiceCreditsCommitment The per vote option voice credits commitment
21
21
  * @returns list of the indexes of the tally result that failed on-chain verification
22
22
  */
23
- export declare const verifyTallyResults: (tallyContract: Tally, tallyData: ITallyData, voteOptionTreeDepth: number, newSpentVoiceCreditsCommitment: bigint, newPerVOSpentVoiceCreditsCommitment?: bigint) => Promise<number[]>;
23
+ export declare const verifyTallyResults: (tallyContract: Tally, tallyData: ITallyData, voteOptionTreeDepth: number, newSpentVoiceCreditsCommitment: bigint, newPerVoteOptionSpentVoiceCreditsCommitment?: bigint) => Promise<number[]>;
24
24
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/tally/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,GACvC,eAAe,KAAK,EACpB,WAAW,UAAU,EACrB,qBAAqB,MAAM,EAC3B,gCAAgC,MAAM,EACtC,sBAAsB,MAAM,KAC3B,OAAO,CAAC,MAAM,EAAE,CA2BlB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,eAAe,KAAK,EACpB,WAAW,UAAU,EACrB,qBAAqB,MAAM,EAC3B,gCAAgC,MAAM,EACtC,sCAAsC,MAAM,KAC3C,OAAO,CAAC,MAAM,EAAE,CA2BlB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/tally/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,oCAAoC,GAC/C,eAAe,KAAK,EACpB,WAAW,UAAU,EACrB,qBAAqB,MAAM,EAC3B,gCAAgC,MAAM,EACtC,sBAAsB,MAAM,KAC3B,OAAO,CAAC,MAAM,EAAE,CA2BlB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,eAAe,KAAK,EACpB,WAAW,UAAU,EACrB,qBAAqB,MAAM,EAC3B,gCAAgC,MAAM,EACtC,8CAA8C,MAAM,KACnD,OAAO,CAAC,MAAM,EAAE,CA2BlB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyTallyResults = exports.verifyPerVOSpentVoiceCredits = void 0;
3
+ exports.verifyTallyResults = exports.verifyPerVoteOptionSpentVoiceCredits = void 0;
4
4
  const crypto_1 = require("@maci-protocol/crypto");
5
5
  /**
6
6
  * Loop through each per vote option spent voice credits and verify it on-chain
@@ -12,34 +12,34 @@ const crypto_1 = require("@maci-protocol/crypto");
12
12
  * @param newResultsCommitment The tally result commitment
13
13
  * @returns list of the indexes of the tally result that failed on-chain verification
14
14
  */
15
- const verifyPerVOSpentVoiceCredits = async (tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment) => {
15
+ const verifyPerVoteOptionSpentVoiceCredits = async (tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment) => {
16
16
  const failedIndices = [];
17
- for (let i = 0; i < tallyData.perVOSpentVoiceCredits.tally.length; i += 1) {
18
- const proof = (0, crypto_1.genTreeProof)(i, tallyData.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), voteOptionTreeDepth);
17
+ for (let i = 0; i < tallyData.perVoteOptionSpentVoiceCredits.tally.length; i += 1) {
18
+ const proof = (0, crypto_1.generateTreeProof)(i, tallyData.perVoteOptionSpentVoiceCredits.tally.map((x) => BigInt(x)), voteOptionTreeDepth);
19
19
  // eslint-disable-next-line no-await-in-loop
20
- const isValid = await tallyContract.verifyPerVOSpentVoiceCredits(i, tallyData.perVOSpentVoiceCredits.tally[i], proof, tallyData.perVOSpentVoiceCredits.salt, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment);
20
+ const isValid = await tallyContract.verifyPerVoteOptionSpentVoiceCredits(i, tallyData.perVoteOptionSpentVoiceCredits.tally[i], proof, tallyData.perVoteOptionSpentVoiceCredits.salt, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment);
21
21
  if (!isValid) {
22
22
  failedIndices.push(i);
23
23
  }
24
24
  }
25
25
  return failedIndices;
26
26
  };
27
- exports.verifyPerVOSpentVoiceCredits = verifyPerVOSpentVoiceCredits;
27
+ exports.verifyPerVoteOptionSpentVoiceCredits = verifyPerVoteOptionSpentVoiceCredits;
28
28
  /**
29
29
  * Loop through each tally result and verify it on-chain
30
30
  * @param tallyContract The tally contract
31
31
  * @param tallyData The tally.json file data
32
32
  * @param voteOptionTreeDepth The vote option tree depth
33
33
  * @param newSpentVoiceCreditsCommitment The total spent voice credits commitment
34
- * @param newPerVOSpentVoiceCreditsCommitment The per vote option voice credits commitment
34
+ * @param newPerVoteOptionSpentVoiceCreditsCommitment The per vote option voice credits commitment
35
35
  * @returns list of the indexes of the tally result that failed on-chain verification
36
36
  */
37
- const verifyTallyResults = async (tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment) => {
37
+ const verifyTallyResults = async (tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVoteOptionSpentVoiceCreditsCommitment) => {
38
38
  const failedIndices = [];
39
39
  for (let i = 0; i < tallyData.results.tally.length; i += 1) {
40
- const proof = (0, crypto_1.genTreeProof)(i, tallyData.results.tally.map((x) => BigInt(x)), voteOptionTreeDepth);
40
+ const proof = (0, crypto_1.generateTreeProof)(i, tallyData.results.tally.map((x) => BigInt(x)), voteOptionTreeDepth);
41
41
  // eslint-disable-next-line no-await-in-loop
42
- const isValid = await tallyContract.verifyTallyResult(i, tallyData.results.tally[i], proof, tallyData.results.salt, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment ?? 0n);
42
+ const isValid = await tallyContract.verifyTallyResult(i, tallyData.results.tally[i], proof, tallyData.results.salt, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVoteOptionSpentVoiceCreditsCommitment ?? 0n);
43
43
  if (!isValid) {
44
44
  failedIndices.push(i);
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/tally/utils.ts"],"names":[],"mappings":";;;AAAA,kDAAqD;AAKrD;;;;;;;;;GASG;AACI,MAAM,4BAA4B,GAAG,KAAK,EAC/C,aAAoB,EACpB,SAAqB,EACrB,mBAA2B,EAC3B,8BAAsC,EACtC,oBAA4B,EACT,EAAE;IACrB,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,sBAAuB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,IAAA,qBAAY,EACxB,CAAC,EACD,SAAS,CAAC,sBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7D,mBAAmB,CACpB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,4BAA4B,CAC9D,CAAC,EACD,SAAS,CAAC,sBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1C,KAAK,EACL,SAAS,CAAC,sBAAuB,CAAC,IAAI,EACtC,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,CACrB,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAjCW,QAAA,4BAA4B,gCAiCvC;AAEF;;;;;;;;GAQG;AACI,MAAM,kBAAkB,GAAG,KAAK,EACrC,aAAoB,EACpB,SAAqB,EACrB,mBAA2B,EAC3B,8BAAsC,EACtC,mCAA4C,EACzB,EAAE;IACrB,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAA,qBAAY,EACxB,CAAC,EACD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7C,mBAAmB,CACpB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CACnD,CAAC,EACD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1B,KAAK,EACL,SAAS,CAAC,OAAO,CAAC,IAAI,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,mCAAmC,IAAI,EAAE,CAC1C,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAjCW,QAAA,kBAAkB,sBAiC7B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/tally/utils.ts"],"names":[],"mappings":";;;AAAA,kDAA0D;AAK1D;;;;;;;;;GASG;AACI,MAAM,oCAAoC,GAAG,KAAK,EACvD,aAAoB,EACpB,SAAqB,EACrB,mBAA2B,EAC3B,8BAAsC,EACtC,oBAA4B,EACT,EAAE;IACrB,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,8BAA+B,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnF,MAAM,KAAK,GAAG,IAAA,0BAAiB,EAC7B,CAAC,EACD,SAAS,CAAC,8BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACrE,mBAAmB,CACpB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,oCAAoC,CACtE,CAAC,EACD,SAAS,CAAC,8BAA+B,CAAC,KAAK,CAAC,CAAC,CAAC,EAClD,KAAK,EACL,SAAS,CAAC,8BAA+B,CAAC,IAAI,EAC9C,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,CACrB,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAjCW,QAAA,oCAAoC,wCAiC/C;AAEF;;;;;;;;GAQG;AACI,MAAM,kBAAkB,GAAG,KAAK,EACrC,aAAoB,EACpB,SAAqB,EACrB,mBAA2B,EAC3B,8BAAsC,EACtC,2CAAoD,EACjC,EAAE;IACrB,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAA,0BAAiB,EAC7B,CAAC,EACD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7C,mBAAmB,CACpB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CACnD,CAAC,EACD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1B,KAAK,EACL,SAAS,CAAC,OAAO,CAAC,IAAI,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,2CAA2C,IAAI,EAAE,CAClD,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAjCW,QAAA,kBAAkB,sBAiC7B"}
@@ -3,5 +3,5 @@ import type { IVerifyArgs } from "./types";
3
3
  * Verify the results of a poll on-chain
4
4
  * @param VerifyArgs - The arguments for the verify command
5
5
  */
6
- export declare const verify: ({ pollId, tallyData, signer, tallyCommitments, numVoteOptions, voteOptionTreeDepth, }: IVerifyArgs) => Promise<boolean>;
6
+ export declare const verify: ({ pollId, tallyData, signer, tallyCommitments, totalVoteOptions, voteOptionTreeDepth, }: IVerifyArgs) => Promise<boolean>;
7
7
  //# sourceMappingURL=verification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../ts/tally/verification.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM3C;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAU,uFAO1B,WAAW,KAAG,OAAO,CAAC,OAAO,CAiG/B,CAAC"}
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../ts/tally/verification.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM3C;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAU,yFAO1B,WAAW,KAAG,OAAO,CAAC,OAAO,CAgG/B,CAAC"}
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.verify = void 0;
4
4
  const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
5
+ const core_1 = require("@maci-protocol/core");
5
6
  const contracts_1 = require("../utils/contracts");
6
7
  const utils_1 = require("./utils");
7
8
  /**
8
9
  * Verify the results of a poll on-chain
9
10
  * @param VerifyArgs - The arguments for the verify command
10
11
  */
11
- const verify = async ({ pollId, tallyData, signer, tallyCommitments, numVoteOptions, voteOptionTreeDepth, }) => {
12
- const useQv = tallyData.isQuadratic;
12
+ const verify = async ({ pollId, tallyData, signer, tallyCommitments, totalVoteOptions, voteOptionTreeDepth, }) => {
13
13
  const maciContractAddress = tallyData.maci;
14
14
  const validContract = await (0, contracts_1.contractExists)(signer.provider, maciContractAddress);
15
15
  if (!validContract) {
@@ -26,33 +26,33 @@ const verify = async ({ pollId, tallyData, signer, tallyCommitments, numVoteOpti
26
26
  if (!validResultsCommitment) {
27
27
  throw new Error("Invalid results commitment format");
28
28
  }
29
- if (tallyData.results.tally.length !== numVoteOptions) {
29
+ if (tallyData.results.tally.length !== totalVoteOptions) {
30
30
  throw new Error("Wrong number of vote options.");
31
31
  }
32
32
  // destructure the tally commitments
33
- const { newTallyCommitment, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment, newResultsCommitment, } = tallyCommitments;
34
- // verify that the results commitment matches the output of genTreeCommitment()
33
+ const { newTallyCommitment, newSpentVoiceCreditsCommitment, newPerVoteOptionSpentVoiceCreditsCommitment, newResultsCommitment, } = tallyCommitments;
34
+ // verify that the results commitment matches the output of generateTreeCommitment()
35
35
  if (onChainTallyCommitment !== newTallyCommitment) {
36
36
  throw new Error("The on-chain tally commitment does not match.");
37
37
  }
38
38
  // verify total spent voice credits on-chain
39
- const verified = await tallyContract.verifySpentVoiceCredits(tallyData.totalSpentVoiceCredits.spent, tallyData.totalSpentVoiceCredits.salt, newResultsCommitment, newPerVOSpentVoiceCreditsCommitment ?? 0n);
39
+ const verified = await tallyContract.verifySpentVoiceCredits(tallyData.totalSpentVoiceCredits.spent, tallyData.totalSpentVoiceCredits.salt, newResultsCommitment, newPerVoteOptionSpentVoiceCreditsCommitment ?? 0n);
40
40
  if (!verified) {
41
41
  throw new Error("The on-chain verification of total spent voice credits failed.");
42
42
  }
43
43
  // verify tally result on-chain for each vote option
44
- const failedPerVOSpentCredits = await (0, utils_1.verifyTallyResults)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment);
44
+ const failedPerVOSpentCredits = await (0, utils_1.verifyTallyResults)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVoteOptionSpentVoiceCreditsCommitment);
45
45
  if (failedPerVOSpentCredits.length > 0) {
46
46
  throw new Error(`At least one spent voice credits entry in the tally results failed the on-chain verification. Please check your tally results at these indexes: ${failedPerVOSpentCredits.join(", ")}`);
47
47
  }
48
- if (!useQv) {
48
+ if (tallyData.mode !== core_1.EMode.QV) {
49
49
  return true;
50
50
  }
51
- if (tallyData.perVOSpentVoiceCredits?.tally.length !== numVoteOptions) {
51
+ if (tallyData.perVoteOptionSpentVoiceCredits?.tally.length !== totalVoteOptions) {
52
52
  throw new Error("Wrong number of vote options.");
53
53
  }
54
54
  // verify per vote option voice credits on-chain
55
- const failedSpentCredits = await (0, utils_1.verifyPerVOSpentVoiceCredits)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment);
55
+ const failedSpentCredits = await (0, utils_1.verifyPerVoteOptionSpentVoiceCredits)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment);
56
56
  if (failedSpentCredits.length > 0) {
57
57
  throw new Error(`At least one tally result failed the on-chain verification. Please check your Tally data at these indexes: ${failedSpentCredits.join(", ")}`);
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../ts/tally/verification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../ts/tally/verification.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { generateSignUpTree } from "./stateTree";
2
- export type { IGenerateSignUpTreeArgs, IGenerateSignUpTree } from "./types";
1
+ export { generateSignUpTree, generateSignUpTreeWithEndKey, generateSignUpTreeFromKeys } from "./stateTree";
2
+ export type { IGenerateSignUpTreeArgs, IGenerateSignUpTree, IGenerateSignUpTreeWithEndKeyArgs } from "./types";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/trees/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/trees/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC3G,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAC"}