@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
@@ -3,5 +3,5 @@ import type { ICircuitParams } from "./types";
3
3
  * Validate the circuit parameters
4
4
  * @param params - The circuit parameters
5
5
  */
6
- export declare const validateParams: ({ stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, }: ICircuitParams) => boolean;
6
+ export declare const validateParams: ({ stateTreeDepth, tallyProcessingStateTreeDepth, voteOptionTreeDepth, messageBatchSize, }: ICircuitParams) => boolean;
7
7
  //# sourceMappingURL=params.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../../ts/utils/params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,+EAK5B,cAAc,KAAG,OAWnB,CAAC"}
1
+ {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../../ts/utils/params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,2FAK5B,cAAc,KAAG,OAWnB,CAAC"}
@@ -5,12 +5,12 @@ exports.validateParams = void 0;
5
5
  * Validate the circuit parameters
6
6
  * @param params - The circuit parameters
7
7
  */
8
- const validateParams = ({ stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, }) => {
8
+ const validateParams = ({ stateTreeDepth, tallyProcessingStateTreeDepth, voteOptionTreeDepth, messageBatchSize, }) => {
9
9
  // validate args
10
- if (stateTreeDepth < 1 || intStateTreeDepth < 1 || voteOptionTreeDepth < 1 || messageBatchSize < 1) {
10
+ if (stateTreeDepth < 1 || tallyProcessingStateTreeDepth < 1 || voteOptionTreeDepth < 1 || messageBatchSize < 1) {
11
11
  throw new Error("Invalid depth or batch size parameters");
12
12
  }
13
- if (stateTreeDepth < intStateTreeDepth) {
13
+ if (stateTreeDepth < tallyProcessingStateTreeDepth) {
14
14
  throw new Error("Invalid state tree depth or intermediate state tree depth");
15
15
  }
16
16
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"params.js","sourceRoot":"","sources":["../../../ts/utils/params.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAC,EAC7B,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACD,EAAW,EAAE;IAC5B,gBAAgB;IAChB,IAAI,cAAc,GAAG,CAAC,IAAI,iBAAiB,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,cAAc,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB"}
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../../ts/utils/params.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAC,EAC7B,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,EACnB,gBAAgB,GACD,EAAW,EAAE;IAC5B,gBAAgB;IAChB,IAAI,cAAc,GAAG,CAAC,IAAI,6BAA6B,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC/G,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,cAAc,GAAG,6BAA6B,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB"}
@@ -1,4 +1,4 @@
1
- import type { CircuitInputs } from "./types";
1
+ import type { TCircuitInputs } from "./types";
2
2
  /**
3
3
  * Generate and verify poll proof
4
4
  * @param inputs - the inputs to the circuit
@@ -9,5 +9,5 @@ import type { CircuitInputs } from "./types";
9
9
  * @param wasmPath - the path to the wasm witness
10
10
  * @returns proof - an array of strings
11
11
  */
12
- export declare const generateAndVerifyProof: (inputs: CircuitInputs, zkeyPath: string, useWasm: boolean | undefined, rapidsnarkExePath: string | undefined, witnessExePath: string | undefined, wasmPath: string | undefined) => Promise<string[]>;
12
+ export declare const generateAndVerifyProof: (inputs: TCircuitInputs, zkeyPath: string, useWasm: boolean | undefined, rapidsnarkExePath: string | undefined, witnessExePath: string | undefined, wasmPath: string | undefined) => Promise<string[]>;
13
13
  //# sourceMappingURL=proofs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proofs.d.ts","sourceRoot":"","sources":["../../../ts/utils/proofs.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,aAAa,EACrB,UAAU,MAAM,EAChB,SAAS,OAAO,GAAG,SAAS,EAC5B,mBAAmB,MAAM,GAAG,SAAS,EACrC,gBAAgB,MAAM,GAAG,SAAS,EAClC,UAAU,MAAM,GAAG,SAAS,KAC3B,OAAO,CAAC,MAAM,EAAE,CA4BlB,CAAC"}
1
+ {"version":3,"file":"proofs.d.ts","sourceRoot":"","sources":["../../../ts/utils/proofs.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,cAAc,EACtB,UAAU,MAAM,EAChB,SAAS,OAAO,GAAG,SAAS,EAC5B,mBAAmB,MAAM,GAAG,SAAS,EACrC,gBAAgB,MAAM,GAAG,SAAS,EAClC,UAAU,MAAM,GAAG,SAAS,KAC3B,OAAO,CAAC,MAAM,EAAE,CA4BlB,CAAC"}
@@ -14,16 +14,16 @@ const contracts_1 = require("@maci-protocol/contracts");
14
14
  */
15
15
  const generateAndVerifyProof = async (inputs, zkeyPath, useWasm, rapidsnarkExePath, witnessExePath, wasmPath) => {
16
16
  let r;
17
- const vk = await (0, contracts_1.extractVk)(zkeyPath);
17
+ const verifyingKey = await (0, contracts_1.extractVerifyingKey)(zkeyPath);
18
18
  if (useWasm === true || useWasm === undefined) {
19
- r = await (0, contracts_1.genProofSnarkjs)({
19
+ r = await (0, contracts_1.generateProofSnarkjs)({
20
20
  inputs,
21
21
  zkeyPath,
22
22
  wasmPath,
23
23
  });
24
24
  }
25
25
  else {
26
- r = await (0, contracts_1.genProofRapidSnark)({
26
+ r = await (0, contracts_1.generateProofRapidSnark)({
27
27
  inputs,
28
28
  zkeyPath,
29
29
  rapidsnarkExePath,
@@ -31,7 +31,7 @@ const generateAndVerifyProof = async (inputs, zkeyPath, useWasm, rapidsnarkExePa
31
31
  });
32
32
  }
33
33
  // verify it
34
- const isValid = await (0, contracts_1.verifyProof)(r.publicSignals, r.proof, vk);
34
+ const isValid = await (0, contracts_1.verifyProof)(r.publicSignals, r.proof, verifyingKey);
35
35
  if (!isValid) {
36
36
  throw new Error("Generated an invalid proof");
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"proofs.js","sourceRoot":"","sources":["../../../ts/utils/proofs.ts"],"names":[],"mappings":";;;AAAA,wDAOkC;AAIlC;;;;;;;;;GASG;AACI,MAAM,sBAAsB,GAAG,KAAK,EACzC,MAAqB,EACrB,QAAgB,EAChB,OAA4B,EAC5B,iBAAqC,EACrC,cAAkC,EAClC,QAA4B,EACT,EAAE;IACrB,IAAI,CAAkB,CAAC;IAEvB,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAS,EAAC,QAAQ,CAAC,CAAC;IAErC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC;YACxB,MAAM;YACN,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,MAAM,IAAA,8BAAkB,EAAC;YAC3B,MAAM;YACN,QAAQ;YACR,iBAAiB;YACjB,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACZ,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAW,EAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEhE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,IAAA,0CAA8B,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AAnCW,QAAA,sBAAsB,0BAmCjC"}
1
+ {"version":3,"file":"proofs.js","sourceRoot":"","sources":["../../../ts/utils/proofs.ts"],"names":[],"mappings":";;;AAAA,wDAOkC;AAIlC;;;;;;;;;GASG;AACI,MAAM,sBAAsB,GAAG,KAAK,EACzC,MAAsB,EACtB,QAAgB,EAChB,OAA4B,EAC5B,iBAAqC,EACrC,cAAkC,EAClC,QAA4B,EACT,EAAE;IACrB,IAAI,CAAkB,CAAC;IAEvB,MAAM,YAAY,GAAG,MAAM,IAAA,+BAAmB,EAAC,QAAQ,CAAC,CAAC;IAEzD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,CAAC,GAAG,MAAM,IAAA,gCAAoB,EAAC;YAC7B,MAAM;YACN,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,MAAM,IAAA,mCAAuB,EAAC;YAChC,MAAM;YACN,QAAQ;YACR,iBAAiB;YACjB,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACZ,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAW,EAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAE1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,IAAA,0CAA8B,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AAnCW,QAAA,sBAAsB,0BAmCjC"}
@@ -2,7 +2,7 @@ import type { BigNumberish, Signer } from "ethers";
2
2
  /**
3
3
  * A circuit inputs for the circom circuit
4
4
  */
5
- export type CircuitInputs = Record<string, string | bigint | bigint[] | bigint[][] | string[] | bigint[][][]>;
5
+ export type TCircuitInputs = Record<string, string | bigint | bigint[] | bigint[][] | string[] | bigint[][][]>;
6
6
  /**
7
7
  * Circuit parameters
8
8
  */
@@ -14,7 +14,7 @@ export interface ICircuitParams {
14
14
  /**
15
15
  * The intermediate state tree depth (ballot tree)
16
16
  */
17
- intStateTreeDepth: number;
17
+ tallyProcessingStateTreeDepth: number;
18
18
  /**
19
19
  * The vote option tree depth
20
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAE9G;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC;IAC5B,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAC7B,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAC7B,eAAe,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IACpC,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAE/G;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC;IACtC;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC;IAC5B,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAC7B,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAC7B,eAAe,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IACpC,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -13,6 +13,11 @@ export declare const unlinkFile: (filepath: string) => Promise<void>;
13
13
  * @param ms - the amount of time to sleep in milliseconds
14
14
  */
15
15
  export declare const sleep: (ms: number) => Promise<void>;
16
+ /**
17
+ * Pause until a specific timestamp
18
+ * @param timestamp - the timestamp to wait for in milliseconds
19
+ */
20
+ export declare const sleepUntil: (timestamp: number) => Promise<void>;
16
21
  declare global {
17
22
  interface ITerminatable {
18
23
  terminate: () => Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/utils/utils.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAO,OAAoC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAM/D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAIpD,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,aAAa;QACrB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;KACnC;IAGD,IAAI,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;IAG3C,IAAI,cAAc,EAAE,aAAa,GAAG,SAAS,CAAC;CAC/C;AAMD,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAUjD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/utils/utils.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAO,OAAoC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAM/D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAIpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAOhE,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,aAAa;QACrB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;KACnC;IAGD,IAAI,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;IAG3C,IAAI,cAAc,EAAE,aAAa,GAAG,SAAS,CAAC;CAC/C;AAMD,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAUjD,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.cleanThreads = exports.sleep = exports.unlinkFile = exports.isArm = void 0;
6
+ exports.cleanThreads = exports.sleepUntil = exports.sleep = exports.unlinkFile = exports.isArm = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const os_1 = __importDefault(require("os"));
9
9
  /**
@@ -33,6 +33,18 @@ const sleep = async (ms) => {
33
33
  });
34
34
  };
35
35
  exports.sleep = sleep;
36
+ /**
37
+ * Pause until a specific timestamp
38
+ * @param timestamp - the timestamp to wait for in milliseconds
39
+ */
40
+ const sleepUntil = async (timestamp) => {
41
+ const now = Date.now();
42
+ const msToWait = timestamp - now;
43
+ if (msToWait > 0) {
44
+ await (0, exports.sleep)(msToWait);
45
+ }
46
+ };
47
+ exports.sleepUntil = sleepUntil;
36
48
  /*
37
49
  * https://github.com/iden3/snarkjs/issues/152
38
50
  * Need to cleanup the threads to avoid stalling
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/utils/utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,4CAAoB;AAEpB;;;GAGG;AACI,MAAM,KAAK,GAAG,GAAY,EAAE,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAAjD,QAAA,KAAK,SAA4C;AAE9D;;;GAGG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAClE,MAAM,YAAY,GAAG,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEF;;;GAGG;AACI,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE;IACvD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,KAAK,SAIhB;AAcF;;;GAGG;AACI,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;IACpD,uEAAuE;IACvE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACjD,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAyC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1G,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/utils/utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,4CAAoB;AAEpB;;;GAGG;AACI,MAAM,KAAK,GAAG,GAAY,EAAE,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAAjD,QAAA,KAAK,SAA4C;AAE9D;;;GAGG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAClE,MAAM,YAAY,GAAG,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEF;;;GAGG;AACI,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE;IACvD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,KAAK,SAIhB;AAEF;;;GAGG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,SAAiB,EAAiB,EAAE;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAC;IAEjC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,MAAM,IAAA,aAAK,EAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB;AAcF;;;GAGG;AACI,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;IACpD,uEAAuE;IACvE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACjD,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAyC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1G,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB"}
@@ -6,5 +6,5 @@ import type { ICheckVerifyingKeysArgs } from "./types";
6
6
  * @param CheckVerifyingKeysArgs - The arguments for the checkVerifyingKeys command
7
7
  * @returns Whether the verifying keys match or not
8
8
  */
9
- export declare const checkVerifyingKeys: ({ stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, processMessagesZkeyPath, tallyVotesZkeyPath, pollJoiningZkeyPath, pollJoinedZkeyPath, vkRegistry, signer, useQuadraticVoting, }: ICheckVerifyingKeysArgs) => Promise<boolean>;
9
+ export declare const checkVerifyingKeys: ({ stateTreeDepth, tallyProcessingStateTreeDepth, voteOptionTreeDepth, messageBatchSize, messageProcessorZkeyPath, voteTallyZkeyPath, pollJoiningZkeyPath, pollJoinedZkeyPath, verifyingKeysRegistry, signer, mode, }: ICheckVerifyingKeysArgs) => Promise<boolean>;
10
10
  //# sourceMappingURL=checkVerifyingKeys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkVerifyingKeys.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/checkVerifyingKeys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAMvD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAU,6MAYtC,uBAAuB,KAAG,OAAO,CAAC,OAAO,CA6D3C,CAAC"}
1
+ {"version":3,"file":"checkVerifyingKeys.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/checkVerifyingKeys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAMvD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAU,sNAYtC,uBAAuB,KAAG,OAAO,CAAC,OAAO,CAiE3C,CAAC"}
@@ -15,50 +15,49 @@ const utils_2 = require("./utils");
15
15
  * @param CheckVerifyingKeysArgs - The arguments for the checkVerifyingKeys command
16
16
  * @returns Whether the verifying keys match or not
17
17
  */
18
- const checkVerifyingKeys = async ({ stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, processMessagesZkeyPath, tallyVotesZkeyPath, pollJoiningZkeyPath, pollJoinedZkeyPath, vkRegistry, signer, useQuadraticVoting = true, }) => {
19
- if (!vkRegistry) {
20
- throw new Error("Please provide a VkRegistry contract address");
18
+ const checkVerifyingKeys = async ({ stateTreeDepth, tallyProcessingStateTreeDepth, voteOptionTreeDepth, messageBatchSize, messageProcessorZkeyPath, voteTallyZkeyPath, pollJoiningZkeyPath, pollJoinedZkeyPath, verifyingKeysRegistry, signer, mode = contracts_1.EMode.QV, }) => {
19
+ if (!verifyingKeysRegistry) {
20
+ throw new Error("Please provide a VerifyingKeysRegistry contract address");
21
21
  }
22
- const isVkExists = await (0, utils_1.contractExists)(signer.provider, vkRegistry);
23
- if (!isVkExists) {
24
- throw new Error("The VkRegistry contract does not exist");
22
+ const isVerifyingKeyExists = await (0, utils_1.contractExists)(signer.provider, verifyingKeysRegistry);
23
+ if (!isVerifyingKeyExists) {
24
+ throw new Error("The VerifyingKeysRegistry contract does not exist");
25
25
  }
26
26
  // we need to ensure that the zkey files exist
27
- const isProcessMessagesZkeyPathExists = fs_1.default.existsSync(processMessagesZkeyPath);
27
+ const isProcessMessagesZkeyPathExists = fs_1.default.existsSync(messageProcessorZkeyPath);
28
28
  if (!isProcessMessagesZkeyPathExists) {
29
29
  throw new Error("The provided Process messages zkey does not exist");
30
30
  }
31
- const isTallyVotesZkeyPathExists = fs_1.default.existsSync(tallyVotesZkeyPath);
31
+ const isTallyVotesZkeyPathExists = fs_1.default.existsSync(voteTallyZkeyPath);
32
32
  if (!isTallyVotesZkeyPathExists) {
33
33
  throw new Error("The provided Tally votes zkey does not exist");
34
34
  }
35
35
  // extract the verification keys from the zkey files
36
- const { pollJoiningVk, pollJoinedVk, processVk, tallyVk } = await (0, utils_2.extractAllVks)({
37
- processMessagesZkeyPath,
38
- tallyVotesZkeyPath,
36
+ const { pollJoiningVerifyingKey, pollJoinedVerifyingKey, processVerifyingKey, tallyVerifyingKey } = await (0, utils_2.extractAllVerifyingKeys)({
37
+ messageProcessorZkeyPath,
38
+ voteTallyZkeyPath,
39
39
  pollJoiningZkeyPath,
40
40
  pollJoinedZkeyPath,
41
41
  });
42
- const mode = useQuadraticVoting ? contracts_1.EMode.QV : contracts_1.EMode.NON_QV;
43
- const { pollJoiningVkOnChain, pollJoinedVkOnChain, processVkOnChain, tallyVkOnChain } = await (0, utils_2.getAllOnChainVks)({
44
- vkRegistryAddress: vkRegistry,
42
+ const { pollJoiningVerifyingKeyOnChain, pollJoinedVerifyingKeyOnChain, processVerifyingKeyOnChain, tallyVerifyingKeyOnChain, } = await (0, utils_2.getAllOnChainVerifyingKeys)({
43
+ verifyingKeysRegistryAddress: verifyingKeysRegistry,
45
44
  signer,
46
45
  stateTreeDepth,
47
46
  voteOptionTreeDepth,
48
47
  messageBatchSize,
49
- intStateTreeDepth,
48
+ tallyProcessingStateTreeDepth,
50
49
  mode,
51
50
  });
52
- if (!(0, utils_2.compareVks)(pollJoiningVkOnChain, pollJoiningVk)) {
51
+ if (!(0, utils_2.compareVerifyingKeys)(pollJoiningVerifyingKeyOnChain, pollJoiningVerifyingKey)) {
53
52
  throw new Error("Poll verifying keys do not match");
54
53
  }
55
- if (!(0, utils_2.compareVks)(pollJoinedVkOnChain, pollJoinedVk)) {
54
+ if (!(0, utils_2.compareVerifyingKeys)(pollJoinedVerifyingKeyOnChain, pollJoinedVerifyingKey)) {
56
55
  throw new Error("Poll verifying keys do not match");
57
56
  }
58
- if (!(0, utils_2.compareVks)(processVkOnChain, processVk)) {
57
+ if (!(0, utils_2.compareVerifyingKeys)(processVerifyingKeyOnChain, processVerifyingKey)) {
59
58
  throw new Error("Process verifying keys do not match");
60
59
  }
61
- if (!(0, utils_2.compareVks)(tallyVkOnChain, tallyVk)) {
60
+ if (!(0, utils_2.compareVerifyingKeys)(tallyVerifyingKeyOnChain, tallyVerifyingKey)) {
62
61
  throw new Error("Tally verifying keys do not match");
63
62
  }
64
63
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"checkVerifyingKeys.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/checkVerifyingKeys.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiD;AAEjD,4CAAoB;AAIpB,oCAA0C;AAE1C,mCAAsE;AAEtE;;;;;;GAMG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,MAAM,EACN,kBAAkB,GAAG,IAAI,GACD,EAAoB,EAAE;IAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,sBAAc,EAAC,MAAM,CAAC,QAAS,EAAE,UAAU,CAAC,CAAC;IAEtE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,8CAA8C;IAC9C,MAAM,+BAA+B,GAAG,YAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAE/E,IAAI,CAAC,+BAA+B,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,0BAA0B,GAAG,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAErE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,oDAAoD;IACpD,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,qBAAa,EAAC;QAC9E,uBAAuB;QACvB,kBAAkB;QAClB,mBAAmB;QACnB,kBAAkB;KACnB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,iBAAK,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAK,CAAC,MAAM,CAAC;IAE1D,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,wBAAgB,EAAC;QAC7G,iBAAiB,EAAE,UAAU;QAC7B,MAAM;QACN,cAAc;QACd,mBAAmB;QACnB,gBAAgB;QAChB,iBAAiB;QACjB,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,IAAA,kBAAU,EAAC,oBAAoB,EAAE,aAAa,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,IAAA,kBAAU,EAAC,mBAAmB,EAAE,YAAY,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,IAAA,kBAAU,EAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,IAAA,kBAAU,EAAC,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAzEW,QAAA,kBAAkB,sBAyE7B"}
1
+ {"version":3,"file":"checkVerifyingKeys.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/checkVerifyingKeys.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiD;AAEjD,4CAAoB;AAIpB,oCAA0C;AAE1C,mCAAoG;AAEpG;;;;;;GAMG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,EACN,IAAI,GAAG,iBAAK,CAAC,EAAE,GACS,EAAoB,EAAE;IAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,oBAAoB,GAAG,MAAM,IAAA,sBAAc,EAAC,MAAM,CAAC,QAAS,EAAE,qBAAqB,CAAC,CAAC;IAE3F,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,8CAA8C;IAC9C,MAAM,+BAA+B,GAAG,YAAE,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAEhF,IAAI,CAAC,+BAA+B,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,0BAA0B,GAAG,YAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAEpE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,oDAAoD;IACpD,MAAM,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,GAC/F,MAAM,IAAA,+BAAuB,EAAC;QAC5B,wBAAwB;QACxB,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB;KACnB,CAAC,CAAC;IAEL,MAAM,EACJ,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,GACzB,GAAG,MAAM,IAAA,kCAA0B,EAAC;QACnC,4BAA4B,EAAE,qBAAqB;QACnD,MAAM;QACN,cAAc;QACd,mBAAmB;QACnB,gBAAgB;QAChB,6BAA6B;QAC7B,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,IAAA,4BAAoB,EAAC,8BAA8B,EAAE,uBAAuB,CAAC,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,IAAA,4BAAoB,EAAC,6BAA6B,EAAE,sBAAsB,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,IAAA,4BAAoB,EAAC,0BAA0B,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,IAAA,4BAAoB,EAAC,wBAAwB,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA7EW,QAAA,kBAAkB,sBA6E7B"}
@@ -1,5 +1,5 @@
1
1
  export { checkVerifyingKeys } from "./checkVerifyingKeys";
2
2
  export { setVerifyingKeys } from "./setVerifyingKeys";
3
- export { getAllOnChainVks, compareVks, extractAllVks, extractVkToFile } from "./utils";
4
- export type { IGetAllVksArgs, IMaciVerifyingKeys, IExtractAllVksArgs, IMaciVks, ISetVerifyingKeysArgs, ICheckVerifyingKeysArgs, } from "./types";
3
+ export { getAllOnChainVerifyingKeys, compareVerifyingKeys, extractAllVerifyingKeys, extractVerifyingKeyToFile, } from "./utils";
4
+ export type { IGetAllVerifyingKeysArgs, IMaciVerifyingKeysOnchain, IExtractAllVerifyingKeysArgs, IMaciVerifyingKeys, ISetVerifyingKeysArgs, ICheckVerifyingKeysArgs, } from "./types";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACvF,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,SAAS,CAAC"}
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractVkToFile = exports.extractAllVks = exports.compareVks = exports.getAllOnChainVks = exports.setVerifyingKeys = exports.checkVerifyingKeys = void 0;
3
+ exports.extractVerifyingKeyToFile = exports.extractAllVerifyingKeys = exports.compareVerifyingKeys = exports.getAllOnChainVerifyingKeys = exports.setVerifyingKeys = exports.checkVerifyingKeys = void 0;
4
4
  var checkVerifyingKeys_1 = require("./checkVerifyingKeys");
5
5
  Object.defineProperty(exports, "checkVerifyingKeys", { enumerable: true, get: function () { return checkVerifyingKeys_1.checkVerifyingKeys; } });
6
6
  var setVerifyingKeys_1 = require("./setVerifyingKeys");
7
7
  Object.defineProperty(exports, "setVerifyingKeys", { enumerable: true, get: function () { return setVerifyingKeys_1.setVerifyingKeys; } });
8
8
  var utils_1 = require("./utils");
9
- Object.defineProperty(exports, "getAllOnChainVks", { enumerable: true, get: function () { return utils_1.getAllOnChainVks; } });
10
- Object.defineProperty(exports, "compareVks", { enumerable: true, get: function () { return utils_1.compareVks; } });
11
- Object.defineProperty(exports, "extractAllVks", { enumerable: true, get: function () { return utils_1.extractAllVks; } });
12
- Object.defineProperty(exports, "extractVkToFile", { enumerable: true, get: function () { return utils_1.extractVkToFile; } });
9
+ Object.defineProperty(exports, "getAllOnChainVerifyingKeys", { enumerable: true, get: function () { return utils_1.getAllOnChainVerifyingKeys; } });
10
+ Object.defineProperty(exports, "compareVerifyingKeys", { enumerable: true, get: function () { return utils_1.compareVerifyingKeys; } });
11
+ Object.defineProperty(exports, "extractAllVerifyingKeys", { enumerable: true, get: function () { return utils_1.extractAllVerifyingKeys; } });
12
+ Object.defineProperty(exports, "extractVerifyingKeyToFile", { enumerable: true, get: function () { return utils_1.extractVerifyingKeyToFile; } });
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/index.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,iCAAuF;AAA9E,yGAAA,gBAAgB,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,wGAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/index.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,iCAKiB;AAJf,mHAAA,0BAA0B,OAAA;AAC1B,6GAAA,oBAAoB,OAAA;AACpB,gHAAA,uBAAuB,OAAA;AACvB,kHAAA,yBAAyB,OAAA"}
@@ -3,5 +3,5 @@ import type { ISetVerifyingKeysArgs } from "./types";
3
3
  * Set the verifying keys on the contract
4
4
  * @param args - The arguments for the setVerifyingKeys function
5
5
  */
6
- export declare const setVerifyingKeys: ({ pollJoiningVk, pollJoinedVk, processMessagesVk, tallyVotesVk, stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, vkRegistryAddress, signer, mode, }: ISetVerifyingKeysArgs) => Promise<void>;
6
+ export declare const setVerifyingKeys: ({ pollJoiningVerifyingKey, pollJoinedVerifyingKey, processMessagesVerifyingKeys, tallyVotesVerifyingKeys, stateTreeDepth, pollStateTreeDepth, tallyProcessingStateTreeDepth, voteOptionTreeDepth, messageBatchSize, verifyingKeysRegistryAddress, signer, modes, }: ISetVerifyingKeysArgs) => Promise<void>;
7
7
  //# sourceMappingURL=setVerifyingKeys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setVerifyingKeys.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/setVerifyingKeys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAMrD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,8KAYpC,qBAAqB,KAAG,OAAO,CAAC,IAAI,CAwFtC,CAAC"}
1
+ {"version":3,"file":"setVerifyingKeys.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/setVerifyingKeys.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAMrD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,oQAapC,qBAAqB,KAAG,OAAO,CAAC,IAAI,CAmItC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setVerifyingKeys = void 0;
4
- const contracts_1 = require("@maci-protocol/contracts");
5
4
  const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
6
5
  const core_1 = require("@maci-protocol/core");
7
6
  const utils_1 = require("../utils");
@@ -10,64 +9,99 @@ const utils_2 = require("./utils");
10
9
  * Set the verifying keys on the contract
11
10
  * @param args - The arguments for the setVerifyingKeys function
12
11
  */
13
- const setVerifyingKeys = async ({ pollJoiningVk, pollJoinedVk, processMessagesVk, tallyVotesVk, stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, vkRegistryAddress, signer, mode, }) => {
12
+ const setVerifyingKeys = async ({ pollJoiningVerifyingKey, pollJoinedVerifyingKey, processMessagesVerifyingKeys, tallyVotesVerifyingKeys, stateTreeDepth, pollStateTreeDepth, tallyProcessingStateTreeDepth, voteOptionTreeDepth, messageBatchSize, verifyingKeysRegistryAddress, signer, modes, }) => {
14
13
  // validate args
15
- if (stateTreeDepth < 1 || intStateTreeDepth < 1 || voteOptionTreeDepth < 1 || messageBatchSize < 1) {
14
+ if (stateTreeDepth < 1 || tallyProcessingStateTreeDepth < 1 || voteOptionTreeDepth < 1 || messageBatchSize < 1) {
16
15
  throw new Error("Invalid depth or batch size parameters");
17
16
  }
18
- if (stateTreeDepth < intStateTreeDepth) {
17
+ if (stateTreeDepth < tallyProcessingStateTreeDepth) {
19
18
  throw new Error("Invalid state tree depth or intermediate state tree depth");
20
19
  }
21
- const vkRegistryContractExists = await (0, utils_1.contractExists)(signer.provider, vkRegistryAddress);
22
- // ensure we have a contract deployed at the provided address
23
- if (!vkRegistryContractExists) {
24
- throw new Error(`A VkRegistry contract is not deployed at ${vkRegistryAddress}`);
20
+ if (processMessagesVerifyingKeys.length !== modes.length) {
21
+ throw new Error("Number of process messages verifying keys must match number of modes");
25
22
  }
26
- // connect to VkRegistry contract
27
- const vkRegistryContract = typechain_types_1.VkRegistry__factory.connect(vkRegistryAddress, signer);
28
- // check if the poll vk was already set
29
- const pollJoiningVkSig = (0, core_1.genPollJoiningVkSig)(stateTreeDepth);
30
- if (await vkRegistryContract.isPollJoiningVkSet(pollJoiningVkSig)) {
31
- throw new Error("This poll verifying key is already set in the contract");
23
+ if (tallyVotesVerifyingKeys.length !== modes.length) {
24
+ throw new Error("Number of tally votes verifying keys must match number of modes");
32
25
  }
33
- // check if the poll vk was already set
34
- const pollJoinedVkSig = (0, core_1.genPollJoinedVkSig)(stateTreeDepth);
35
- if (await vkRegistryContract.isPollJoinedVkSet(pollJoinedVkSig)) {
36
- throw new Error("This poll verifying key is already set in the contract");
26
+ const isContractExists = await (0, utils_1.contractExists)(signer.provider, verifyingKeysRegistryAddress);
27
+ // ensure we have a contract deployed at the provided address
28
+ if (!isContractExists) {
29
+ throw new Error(`A VerifyingKeysRegistry contract is not deployed at ${verifyingKeysRegistryAddress}`);
37
30
  }
38
- // check if the process messages vk was already set
39
- const processVkSig = (0, core_1.genProcessVkSig)(stateTreeDepth, voteOptionTreeDepth, messageBatchSize);
40
- if (await vkRegistryContract.isProcessVkSet(processVkSig, contracts_1.EMode.QV)) {
41
- throw new Error("This process verifying key is already set in the contract");
31
+ // connect to VerifyingKeysRegistry contract
32
+ const verifyingKeysRegistryContract = typechain_types_1.VerifyingKeysRegistry__factory.connect(verifyingKeysRegistryAddress, signer);
33
+ // check if the poll verifyingKeys were already set
34
+ const pollJoiningVerifyingKeySignature = (0, core_1.generatePollJoiningVerifyingKeySignature)(stateTreeDepth);
35
+ const pollJoinedVerifyingKeySignature = (0, core_1.generatePollJoinedVerifyingKeySignature)(stateTreeDepth);
36
+ const [isPollJoiningVerifyingKeySet, isPollJoinedVerifyingKeySet] = await Promise.all([
37
+ verifyingKeysRegistryContract.isPollJoiningVerifyingKeySet(pollJoiningVerifyingKeySignature),
38
+ verifyingKeysRegistryContract.isPollJoinedVerifyingKeySet(pollJoinedVerifyingKeySignature),
39
+ ]);
40
+ if (isPollJoiningVerifyingKeySet) {
41
+ throw new Error("This poll joining verifying key is already set in the contract");
42
42
  }
43
- // do the same for the tally votes vk
44
- const tallyVkSig = (0, core_1.genTallyVkSig)(stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth);
45
- if (await vkRegistryContract.isTallyVkSet(tallyVkSig, mode)) {
46
- throw new Error("This tally verifying key is already set in the contract");
43
+ if (isPollJoinedVerifyingKeySet) {
44
+ throw new Error("This poll joined verifying key is already set in the contract");
47
45
  }
46
+ // check if the process messages or tally verifyingKey were already set for each mode
47
+ const processVerifyingKeySignature = (0, core_1.generateProcessVerifyingKeySignature)(stateTreeDepth, voteOptionTreeDepth, messageBatchSize);
48
+ const tallyVerifyingKeySignature = (0, core_1.generateTallyVerifyingKeySignature)(stateTreeDepth, tallyProcessingStateTreeDepth, voteOptionTreeDepth);
49
+ const keyChecks = await Promise.all(modes.map(async (mode) => {
50
+ const [isProcessVerifyingKeySet, isTallyVerifyingKeySet] = await Promise.all([
51
+ verifyingKeysRegistryContract.isProcessVerifyingKeySet(processVerifyingKeySignature, mode),
52
+ verifyingKeysRegistryContract.isTallyVerifyingKeySet(tallyVerifyingKeySignature, mode),
53
+ ]);
54
+ return { mode, isProcessVerifyingKeySet, isTallyVerifyingKeySet };
55
+ }));
56
+ keyChecks.forEach(({ mode, isProcessVerifyingKeySet, isTallyVerifyingKeySet }) => {
57
+ if (isProcessVerifyingKeySet) {
58
+ throw new Error(`This process verifying key is already set in the contract for mode ${mode}`);
59
+ }
60
+ if (isTallyVerifyingKeySet) {
61
+ throw new Error(`This tally verifying key is already set in the contract for mode ${mode}`);
62
+ }
63
+ });
48
64
  // set them onchain
49
- const tx = await vkRegistryContract.setVerifyingKeysBatch(stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, [mode], pollJoiningVk.asContractParam(), pollJoinedVk.asContractParam(), [processMessagesVk.asContractParam()], [tallyVotesVk.asContractParam()]);
65
+ const tx = await verifyingKeysRegistryContract.setVerifyingKeysBatch({
66
+ stateTreeDepth,
67
+ pollStateTreeDepth,
68
+ tallyProcessingStateTreeDepth,
69
+ voteOptionTreeDepth,
70
+ messageBatchSize,
71
+ modes,
72
+ pollJoiningVerifyingKey: pollJoiningVerifyingKey.asContractParam(),
73
+ pollJoinedVerifyingKey: pollJoinedVerifyingKey.asContractParam(),
74
+ processVerifyingKeys: processMessagesVerifyingKeys.map((key) => key.asContractParam()),
75
+ tallyVerifyingKeys: tallyVotesVerifyingKeys.map((key) => key.asContractParam()),
76
+ });
50
77
  const receipt = await tx.wait();
51
78
  if (receipt?.status !== 1) {
52
79
  throw new Error("Set verifying keys transaction failed");
53
80
  }
54
- const [pollJoiningVkOnChain, pollJoinedVkOnChain, processVkOnChain, tallyVkOnChain] = await Promise.all([
55
- vkRegistryContract.getPollJoiningVk(stateTreeDepth),
56
- vkRegistryContract.getPollJoinedVk(stateTreeDepth),
57
- vkRegistryContract.getProcessVk(stateTreeDepth, voteOptionTreeDepth, messageBatchSize, mode),
58
- vkRegistryContract.getTallyVk(stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, mode),
81
+ // Verify that all keys were set correctly
82
+ const [pollJoiningVerifyingKeyOnChain, pollJoinedVerifyingKeyOnChain] = await Promise.all([
83
+ verifyingKeysRegistryContract.getPollJoiningVerifyingKey(stateTreeDepth),
84
+ verifyingKeysRegistryContract.getPollJoinedVerifyingKey(stateTreeDepth),
59
85
  ]);
60
- if (!(0, utils_2.compareVks)(pollJoiningVkOnChain, pollJoiningVk)) {
61
- throw new Error("pollJoiningVk mismatch");
62
- }
63
- if (!(0, utils_2.compareVks)(pollJoinedVkOnChain, pollJoinedVk)) {
64
- throw new Error("pollJoinedVk mismatch");
86
+ if (!(0, utils_2.compareVerifyingKeys)(pollJoiningVerifyingKeyOnChain, pollJoiningVerifyingKey)) {
87
+ throw new Error("pollJoiningVerifyingKey mismatch");
65
88
  }
66
- if (!(0, utils_2.compareVks)(processVkOnChain, processMessagesVk)) {
67
- throw new Error("processVk mismatch");
89
+ if (!(0, utils_2.compareVerifyingKeys)(pollJoinedVerifyingKeyOnChain, pollJoinedVerifyingKey)) {
90
+ throw new Error("pollJoinedVerifyingKey mismatch");
68
91
  }
69
- if (!(0, utils_2.compareVks)(tallyVkOnChain, tallyVotesVk)) {
70
- throw new Error("tallyVk mismatch");
92
+ for (let i = 0; i < modes.length; i += 1) {
93
+ const mode = modes[i];
94
+ // eslint-disable-next-line no-await-in-loop
95
+ const [processVerifyingKeyOnChain, tallyVerifyingKeyOnChain] = await Promise.all([
96
+ verifyingKeysRegistryContract.getProcessVerifyingKey(stateTreeDepth, voteOptionTreeDepth, messageBatchSize, mode),
97
+ verifyingKeysRegistryContract.getTallyVerifyingKey(stateTreeDepth, tallyProcessingStateTreeDepth, voteOptionTreeDepth, mode),
98
+ ]);
99
+ if (!(0, utils_2.compareVerifyingKeys)(processVerifyingKeyOnChain, processMessagesVerifyingKeys[i])) {
100
+ throw new Error("processVerifyingKey mismatch");
101
+ }
102
+ if (!(0, utils_2.compareVerifyingKeys)(tallyVerifyingKeyOnChain, tallyVotesVerifyingKeys[i])) {
103
+ throw new Error("tallyVerifyingKey mismatch");
104
+ }
71
105
  }
72
106
  };
73
107
  exports.setVerifyingKeys = setVerifyingKeys;
@@ -1 +1 @@
1
- {"version":3,"file":"setVerifyingKeys.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/setVerifyingKeys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setVerifyingKeys.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/setVerifyingKeys.ts"],"names":[],"mappings":"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"}