@maci-protocol/sdk 0.0.0-ci.f433bba → 0.0.0-ci.f446b8f

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 (221) 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 +22 -20
  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.d.ts +1 -1
  20. package/build/ts/deploy/maci.d.ts.map +1 -1
  21. package/build/ts/deploy/maci.js +18 -8
  22. package/build/ts/deploy/maci.js.map +1 -1
  23. package/build/ts/deploy/poll.d.ts +1 -1
  24. package/build/ts/deploy/poll.d.ts.map +1 -1
  25. package/build/ts/deploy/poll.js +10 -11
  26. package/build/ts/deploy/poll.js.map +1 -1
  27. package/build/ts/deploy/types.d.ts +28 -15
  28. package/build/ts/deploy/types.d.ts.map +1 -1
  29. package/build/ts/deploy/utils.js +1 -1
  30. package/build/ts/deploy/utils.js.map +1 -1
  31. package/build/ts/deploy/verifyingKeysRegistry.d.ts +7 -0
  32. package/build/ts/deploy/verifyingKeysRegistry.d.ts.map +1 -0
  33. package/build/ts/deploy/verifyingKeysRegistry.js +14 -0
  34. package/build/ts/deploy/verifyingKeysRegistry.js.map +1 -0
  35. package/build/ts/index.d.ts +3 -2
  36. package/build/ts/index.d.ts.map +1 -1
  37. package/build/ts/index.js +16 -9
  38. package/build/ts/index.js.map +1 -1
  39. package/build/ts/maci/policy.d.ts +13 -1
  40. package/build/ts/maci/policy.d.ts.map +1 -1
  41. package/build/ts/maci/policy.js +40 -1
  42. package/build/ts/maci/policy.js.map +1 -1
  43. package/build/ts/maci/state.d.ts +1 -1
  44. package/build/ts/maci/state.js +8 -8
  45. package/build/ts/maci/state.js.map +1 -1
  46. package/build/ts/maci/types.d.ts +34 -2
  47. package/build/ts/maci/types.d.ts.map +1 -1
  48. package/build/ts/maci/types.js +2 -0
  49. package/build/ts/maci/types.js.map +1 -1
  50. package/build/ts/maciKeys/__tests__/keypair.test.js +7 -7
  51. package/build/ts/maciKeys/__tests__/keypair.test.js.map +1 -1
  52. package/build/ts/maciKeys/__tests__/publicKeys.test.js +7 -7
  53. package/build/ts/maciKeys/__tests__/publicKeys.test.js.map +1 -1
  54. package/build/ts/maciKeys/keypair.d.ts.map +1 -1
  55. package/build/ts/maciKeys/keypair.js +4 -3
  56. package/build/ts/maciKeys/keypair.js.map +1 -1
  57. package/build/ts/maciKeys/publicKeys.d.ts +2 -2
  58. package/build/ts/maciKeys/publicKeys.d.ts.map +1 -1
  59. package/build/ts/maciKeys/publicKeys.js +6 -6
  60. package/build/ts/maciKeys/publicKeys.js.map +1 -1
  61. package/build/ts/maciKeys/types.d.ts +5 -0
  62. package/build/ts/maciKeys/types.d.ts.map +1 -1
  63. package/build/ts/poll/poll.d.ts.map +1 -1
  64. package/build/ts/poll/poll.js +9 -9
  65. package/build/ts/poll/poll.js.map +1 -1
  66. package/build/ts/poll/types.d.ts +6 -7
  67. package/build/ts/poll/types.d.ts.map +1 -1
  68. package/build/ts/proof/__tests__/download.test.js +8 -5
  69. package/build/ts/proof/__tests__/download.test.js.map +1 -1
  70. package/build/ts/proof/download.d.ts +3 -3
  71. package/build/ts/proof/download.d.ts.map +1 -1
  72. package/build/ts/proof/download.js +5 -7
  73. package/build/ts/proof/download.js.map +1 -1
  74. package/build/ts/proof/generate.d.ts +2 -2
  75. package/build/ts/proof/generate.d.ts.map +1 -1
  76. package/build/ts/proof/generate.js +29 -23
  77. package/build/ts/proof/generate.js.map +1 -1
  78. package/build/ts/proof/prove.js +13 -13
  79. package/build/ts/proof/prove.js.map +1 -1
  80. package/build/ts/proof/types.d.ts +40 -14
  81. package/build/ts/proof/types.d.ts.map +1 -1
  82. package/build/ts/proof/utils.d.ts +10 -0
  83. package/build/ts/proof/utils.d.ts.map +1 -0
  84. package/build/ts/proof/utils.js +24 -0
  85. package/build/ts/proof/utils.js.map +1 -0
  86. package/build/ts/relayer/__tests__/messages.test.js +1 -1
  87. package/build/ts/relayer/__tests__/messages.test.js.map +1 -1
  88. package/build/ts/relayer/__tests__/utils.test.js +3 -3
  89. package/build/ts/relayer/__tests__/utils.test.js.map +1 -1
  90. package/build/ts/relayer/messages.js +1 -1
  91. package/build/ts/relayer/utils.js +1 -1
  92. package/build/ts/relayer/utils.js.map +1 -1
  93. package/build/ts/subgraph/index.d.ts +3 -0
  94. package/build/ts/subgraph/index.d.ts.map +1 -0
  95. package/build/ts/subgraph/index.js +18 -0
  96. package/build/ts/subgraph/index.js.map +1 -0
  97. package/build/ts/subgraph/maciSubgraph.d.ts +28 -0
  98. package/build/ts/subgraph/maciSubgraph.d.ts.map +1 -0
  99. package/build/ts/subgraph/maciSubgraph.js +64 -0
  100. package/build/ts/subgraph/maciSubgraph.js.map +1 -0
  101. package/build/ts/subgraph/types.d.ts +20 -0
  102. package/build/ts/subgraph/types.d.ts.map +1 -0
  103. package/build/ts/subgraph/types.js +3 -0
  104. package/build/ts/subgraph/types.js.map +1 -0
  105. package/build/ts/tally/commitments.d.ts.map +1 -1
  106. package/build/ts/tally/commitments.js +8 -7
  107. package/build/ts/tally/commitments.js.map +1 -1
  108. package/build/ts/tally/index.d.ts +2 -1
  109. package/build/ts/tally/index.d.ts.map +1 -1
  110. package/build/ts/tally/index.js +5 -1
  111. package/build/ts/tally/index.js.map +1 -1
  112. package/build/ts/tally/results.d.ts +20 -0
  113. package/build/ts/tally/results.d.ts.map +1 -0
  114. package/build/ts/tally/results.js +49 -0
  115. package/build/ts/tally/results.js.map +1 -0
  116. package/build/ts/tally/types.d.ts +55 -15
  117. package/build/ts/tally/types.d.ts.map +1 -1
  118. package/build/ts/tally/utils.d.ts +3 -3
  119. package/build/ts/tally/utils.d.ts.map +1 -1
  120. package/build/ts/tally/utils.js +10 -10
  121. package/build/ts/tally/utils.js.map +1 -1
  122. package/build/ts/tally/verification.d.ts +1 -1
  123. package/build/ts/tally/verification.d.ts.map +1 -1
  124. package/build/ts/tally/verification.js +10 -10
  125. package/build/ts/tally/verification.js.map +1 -1
  126. package/build/ts/trees/index.d.ts +2 -2
  127. package/build/ts/trees/index.d.ts.map +1 -1
  128. package/build/ts/trees/index.js +3 -1
  129. package/build/ts/trees/index.js.map +1 -1
  130. package/build/ts/trees/stateTree.d.ts +23 -1
  131. package/build/ts/trees/stateTree.d.ts.map +1 -1
  132. package/build/ts/trees/stateTree.js +74 -10
  133. package/build/ts/trees/stateTree.js.map +1 -1
  134. package/build/ts/trees/types.d.ts +11 -2
  135. package/build/ts/trees/types.d.ts.map +1 -1
  136. package/build/ts/user/index.d.ts +2 -2
  137. package/build/ts/user/index.d.ts.map +1 -1
  138. package/build/ts/user/index.js +5 -1
  139. package/build/ts/user/index.js.map +1 -1
  140. package/build/ts/user/joinPoll.d.ts +1 -1
  141. package/build/ts/user/joinPoll.d.ts.map +1 -1
  142. package/build/ts/user/joinPoll.js +11 -12
  143. package/build/ts/user/joinPoll.js.map +1 -1
  144. package/build/ts/user/signup.d.ts +3 -3
  145. package/build/ts/user/signup.d.ts.map +1 -1
  146. package/build/ts/user/signup.js +26 -21
  147. package/build/ts/user/signup.js.map +1 -1
  148. package/build/ts/user/types.d.ts +63 -27
  149. package/build/ts/user/types.d.ts.map +1 -1
  150. package/build/ts/user/utils.d.ts +34 -14
  151. package/build/ts/user/utils.d.ts.map +1 -1
  152. package/build/ts/user/utils.js +92 -58
  153. package/build/ts/user/utils.js.map +1 -1
  154. package/build/ts/utils/index.d.ts +1 -1
  155. package/build/ts/utils/index.d.ts.map +1 -1
  156. package/build/ts/utils/index.js +2 -1
  157. package/build/ts/utils/index.js.map +1 -1
  158. package/build/ts/utils/params.d.ts +1 -1
  159. package/build/ts/utils/params.d.ts.map +1 -1
  160. package/build/ts/utils/params.js +3 -3
  161. package/build/ts/utils/params.js.map +1 -1
  162. package/build/ts/utils/proofs.d.ts +2 -2
  163. package/build/ts/utils/proofs.d.ts.map +1 -1
  164. package/build/ts/utils/proofs.js +4 -4
  165. package/build/ts/utils/proofs.js.map +1 -1
  166. package/build/ts/utils/types.d.ts +2 -2
  167. package/build/ts/utils/types.d.ts.map +1 -1
  168. package/build/ts/utils/utils.d.ts +5 -0
  169. package/build/ts/utils/utils.d.ts.map +1 -1
  170. package/build/ts/utils/utils.js +13 -1
  171. package/build/ts/utils/utils.js.map +1 -1
  172. package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts +1 -1
  173. package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts.map +1 -1
  174. package/build/ts/verifyingKeys/checkVerifyingKeys.js +18 -19
  175. package/build/ts/verifyingKeys/checkVerifyingKeys.js.map +1 -1
  176. package/build/ts/verifyingKeys/index.d.ts +2 -2
  177. package/build/ts/verifyingKeys/index.d.ts.map +1 -1
  178. package/build/ts/verifyingKeys/index.js +5 -5
  179. package/build/ts/verifyingKeys/index.js.map +1 -1
  180. package/build/ts/verifyingKeys/setVerifyingKeys.d.ts +1 -1
  181. package/build/ts/verifyingKeys/setVerifyingKeys.d.ts.map +1 -1
  182. package/build/ts/verifyingKeys/setVerifyingKeys.js +75 -41
  183. package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -1
  184. package/build/ts/verifyingKeys/types.d.ts +56 -48
  185. package/build/ts/verifyingKeys/types.d.ts.map +1 -1
  186. package/build/ts/verifyingKeys/utils.d.ts +10 -10
  187. package/build/ts/verifyingKeys/utils.d.ts.map +1 -1
  188. package/build/ts/verifyingKeys/utils.js +75 -60
  189. package/build/ts/verifyingKeys/utils.js.map +1 -1
  190. package/build/ts/vote/generate.d.ts +1 -1
  191. package/build/ts/vote/generate.d.ts.map +1 -1
  192. package/build/ts/vote/generate.js +4 -4
  193. package/build/ts/vote/generate.js.map +1 -1
  194. package/build/ts/vote/index.d.ts +2 -1
  195. package/build/ts/vote/index.d.ts.map +1 -1
  196. package/build/ts/vote/index.js +4 -2
  197. package/build/ts/vote/index.js.map +1 -1
  198. package/build/ts/vote/invalidate.js +4 -4
  199. package/build/ts/vote/invalidate.js.map +1 -1
  200. package/build/ts/vote/publish.d.ts +1 -1
  201. package/build/ts/vote/publish.d.ts.map +1 -1
  202. package/build/ts/vote/publish.js +19 -19
  203. package/build/ts/vote/publish.js.map +1 -1
  204. package/build/ts/vote/submit.js +2 -2
  205. package/build/ts/vote/submit.js.map +1 -1
  206. package/build/ts/vote/types.d.ts +6 -6
  207. package/build/ts/vote/types.d.ts.map +1 -1
  208. package/build/ts/vote/utils.d.ts +2 -2
  209. package/build/ts/vote/utils.d.ts.map +1 -1
  210. package/build/ts/vote/utils.js +5 -5
  211. package/build/ts/vote/utils.js.map +1 -1
  212. package/build/tsconfig.build.tsbuildinfo +1 -1
  213. package/package.json +22 -14
  214. package/build/ts/deploy/vkRegistry.d.ts +0 -7
  215. package/build/ts/deploy/vkRegistry.d.ts.map +0 -1
  216. package/build/ts/deploy/vkRegistry.js +0 -14
  217. package/build/ts/deploy/vkRegistry.js.map +0 -1
  218. package/build/ts/proof/constants.d.ts +0 -17
  219. package/build/ts/proof/constants.d.ts.map +0 -1
  220. package/build/ts/proof/constants.js +0 -20
  221. package/build/ts/proof/constants.js.map +0 -1
package/LICENSE CHANGED
@@ -1,7 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2020 Barry WhiteHat, Kendrick Tan, Kobi Gurkan, Kirill Goncharov
4
- Cory Dickson, Han Jian, Chih-Cheng Liang, and Koh Wei Jie
3
+ Copyright (c) 2025 Ethereum Foundation
5
4
 
6
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
6
  of this software and associated documentation files (the "Software"), to deal
@@ -4,6 +4,7 @@
4
4
  "private": false,
5
5
  "description": "MACI's SDK",
6
6
  "main": "build/ts/index.js",
7
+ "types": "build/ts/index.d.ts",
7
8
  "exports": {
8
9
  ".": {
9
10
  "types": "./build/ts/index.d.ts",
@@ -14,6 +15,13 @@
14
15
  "default": "./build/ts/browser/index.js"
15
16
  }
16
17
  },
18
+ "typesVersions": {
19
+ "*": {
20
+ "browser": [
21
+ "./build/ts/browser/index.d.ts"
22
+ ]
23
+ }
24
+ },
17
25
  "bin": {
18
26
  "maci-sdk": "./build/ts/index.js"
19
27
  },
@@ -28,7 +36,7 @@
28
36
  "scripts": {
29
37
  "watch": "tsc --watch",
30
38
  "build": "tsc -p tsconfig.build.json",
31
- "postbuild": "cp package.json ./build && mkdir -p ./zkeys",
39
+ "postbuild": "cp package.json ./build",
32
40
  "types": "tsc -p tsconfig.json --noEmit",
33
41
  "test": "jest",
34
42
  "test:coverage": "pnpm run test --coverage",
@@ -36,7 +44,7 @@
36
44
  },
37
45
  "dependencies": {
38
46
  "@zk-kit/lean-imt": "^2.2.3",
39
- "ethers": "^6.13.4",
47
+ "ethers": "^6.15.0",
40
48
  "@maci-protocol/contracts": "^3.0.0",
41
49
  "@maci-protocol/core": "^3.0.0",
42
50
  "@maci-protocol/crypto": "^3.0.0",
@@ -45,13 +53,13 @@
45
53
  "snarkjs": "^0.7.5"
46
54
  },
47
55
  "devDependencies": {
48
- "@types/jest": "^29.5.2",
49
- "@types/node": "^22.14.0",
56
+ "@types/jest": "^30.0.0",
57
+ "@types/node": "^24.2.0",
50
58
  "@types/snarkjs": "^0.7.9",
51
- "jest": "^29.5.0",
52
- "mocha": "^11.1.0",
59
+ "jest": "^30.2.0",
60
+ "mocha": "^11.7.2",
53
61
  "nyc": "^17.1.0",
54
- "ts-jest": "^29.3.0",
55
- "typescript": "^5.8.3"
62
+ "ts-jest": "^29.4.1",
63
+ "typescript": "^5.9.2"
56
64
  }
57
65
  }
@@ -5,9 +5,11 @@ export * from "../tally";
5
5
  export * from "../trees";
6
6
  export * from "../vote";
7
7
  export * from "../maciKeys";
8
+ export * from "../subgraph";
9
+ export * from "../user/types";
8
10
  export { getSignedupUserData, signup, hasUserSignedUp } from "../user/signup";
9
- export { getJoinedUserData, hasUserJoinedPoll } from "../user/utils";
11
+ export { getJoinedUserData, hasUserJoinedPoll, generateMaciStateTree, getPollJoiningCircuitEvents, joiningCircuitInputs, generateMaciStateTreeWithEndKey, } from "../user/utils";
10
12
  export * from "./joinPoll";
11
- export type { FullProveResult, IDeployParams, IMergeParams, IProveParams, IVerifyingKeyStruct, SnarkProof, IIpfsMessage, } from "@maci-protocol/contracts";
13
+ export type { EMode, FullProveResult, IDeployParams, IMergeParams, IProveParams, IVerifyingKeyStruct, SnarkProof, IIpfsMessage, } from "@maci-protocol/contracts";
12
14
  export * from "@maci-protocol/contracts/typechain-types";
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAErE,cAAc,YAAY,CAAC;AAE3B,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,0BAA0B,CAAC;AAElC,cAAc,0CAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,eAAe,CAAC;AAEvB,cAAc,YAAY,CAAC;AAE3B,YAAY,EACV,KAAK,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,0BAA0B,CAAC;AAElC,cAAc,0CAA0C,CAAC"}
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.hasUserJoinedPoll = exports.getJoinedUserData = exports.hasUserSignedUp = exports.signup = exports.getSignedupUserData = void 0;
17
+ exports.generateMaciStateTreeWithEndKey = exports.joiningCircuitInputs = exports.getPollJoiningCircuitEvents = exports.generateMaciStateTree = exports.hasUserJoinedPoll = exports.getJoinedUserData = exports.hasUserSignedUp = exports.signup = exports.getSignedupUserData = void 0;
18
18
  __exportStar(require("../poll"), exports);
19
19
  __exportStar(require("../proof/download"), exports);
20
20
  __exportStar(require("../proof/types"), exports);
@@ -22,6 +22,8 @@ __exportStar(require("../tally"), exports);
22
22
  __exportStar(require("../trees"), exports);
23
23
  __exportStar(require("../vote"), exports);
24
24
  __exportStar(require("../maciKeys"), exports);
25
+ __exportStar(require("../subgraph"), exports);
26
+ __exportStar(require("../user/types"), exports);
25
27
  var signup_1 = require("../user/signup");
26
28
  Object.defineProperty(exports, "getSignedupUserData", { enumerable: true, get: function () { return signup_1.getSignedupUserData; } });
27
29
  Object.defineProperty(exports, "signup", { enumerable: true, get: function () { return signup_1.signup; } });
@@ -29,6 +31,10 @@ Object.defineProperty(exports, "hasUserSignedUp", { enumerable: true, get: funct
29
31
  var utils_1 = require("../user/utils");
30
32
  Object.defineProperty(exports, "getJoinedUserData", { enumerable: true, get: function () { return utils_1.getJoinedUserData; } });
31
33
  Object.defineProperty(exports, "hasUserJoinedPoll", { enumerable: true, get: function () { return utils_1.hasUserJoinedPoll; } });
34
+ Object.defineProperty(exports, "generateMaciStateTree", { enumerable: true, get: function () { return utils_1.generateMaciStateTree; } });
35
+ Object.defineProperty(exports, "getPollJoiningCircuitEvents", { enumerable: true, get: function () { return utils_1.getPollJoiningCircuitEvents; } });
36
+ Object.defineProperty(exports, "joiningCircuitInputs", { enumerable: true, get: function () { return utils_1.joiningCircuitInputs; } });
37
+ Object.defineProperty(exports, "generateMaciStateTreeWithEndKey", { enumerable: true, get: function () { return utils_1.generateMaciStateTreeWithEndKey; } });
32
38
  __exportStar(require("./joinPoll"), exports);
33
39
  __exportStar(require("@maci-protocol/contracts/typechain-types"), exports);
34
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/browser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,oDAAkC;AAClC,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,yCAA8E;AAArE,6GAAA,mBAAmB,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AACrD,uCAAqE;AAA5D,0GAAA,iBAAiB,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AAE7C,6CAA2B;AAY3B,2EAAyD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/browser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,oDAAkC;AAClC,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,8CAA4B;AAC5B,gDAA8B;AAC9B,yCAA8E;AAArE,6GAAA,mBAAmB,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AACrD,uCAOuB;AANrB,0GAAA,iBAAiB,OAAA;AACjB,0GAAA,iBAAiB,OAAA;AACjB,8GAAA,qBAAqB,OAAA;AACrB,oHAAA,2BAA2B,OAAA;AAC3B,6GAAA,oBAAoB,OAAA;AACpB,wHAAA,+BAA+B,OAAA;AAGjC,6CAA2B;AAa3B,2EAAyD"}
@@ -1,8 +1,10 @@
1
- import { IJoinPollArgs, IJoinPollData } from "../user";
1
+ import type { IJoinPollBrowserArgs, IJoinPollData } from "../user/types";
2
2
  /**
3
3
  * Join Poll user to the Poll contract
4
+ * @dev This version is optimised to work on browsers
5
+ * @dev It uses WASM + accepts already created inclusion proofs
4
6
  * @param {IJoinPollArgs} args - The arguments for the join poll command
5
7
  * @returns {IJoinPollData} The poll state index of the joined user and transaction hash
6
8
  */
7
- export declare const joinPoll: ({ maciAddress, privateKey, stateFile, pollId, signer, startBlock, endBlock, blocksPerBatch, pollJoiningZkey, pollWasm, sgDataArg, ivcpDataArg, }: IJoinPollArgs) => Promise<IJoinPollData>;
9
+ export declare const joinPoll: ({ maciAddress, privateKey, pollId, signer, startBlock, endBlock, blocksPerBatch, pollJoiningZkey, pollWasm, sgDataArg, ivcpDataArg, inclusionProof, useLatestStateIndex, }: IJoinPollBrowserArgs) => Promise<IJoinPollData>;
8
10
  //# sourceMappingURL=joinPoll.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"joinPoll.d.ts","sourceRoot":"","sources":["../../../ts/browser/joinPoll.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAO1E;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAU,kJAa5B,aAAa,KAAG,OAAO,CAAC,aAAa,CA6FvC,CAAC"}
1
+ {"version":3,"file":"joinPoll.d.ts","sourceRoot":"","sources":["../../../ts/browser/joinPoll.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQzE;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAU,4KAc5B,oBAAoB,KAAG,OAAO,CAAC,aAAa,CA+F9C,CAAC"}
@@ -5,31 +5,32 @@ exports.joinPoll = void 0;
5
5
  const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
6
6
  const crypto_1 = require("@maci-protocol/crypto");
7
7
  const domainobjs_1 = require("@maci-protocol/domainobjs");
8
- const user_1 = require("../user");
9
8
  const utils_1 = require("../user/utils");
10
9
  const contracts_1 = require("../utils/contracts");
11
10
  const utils_2 = require("./utils");
12
11
  /**
13
12
  * Join Poll user to the Poll contract
13
+ * @dev This version is optimised to work on browsers
14
+ * @dev It uses WASM + accepts already created inclusion proofs
14
15
  * @param {IJoinPollArgs} args - The arguments for the join poll command
15
16
  * @returns {IJoinPollData} The poll state index of the joined user and transaction hash
16
17
  */
17
- const joinPoll = async ({ maciAddress, privateKey, stateFile, pollId, signer, startBlock, endBlock, blocksPerBatch, pollJoiningZkey, pollWasm, sgDataArg, ivcpDataArg, }) => {
18
+ const joinPoll = async ({ maciAddress, privateKey, pollId, signer, startBlock, endBlock, blocksPerBatch, pollJoiningZkey, pollWasm, sgDataArg, ivcpDataArg, inclusionProof, useLatestStateIndex, }) => {
18
19
  const validContract = await (0, contracts_1.contractExists)(signer.provider, maciAddress);
19
20
  if (!validContract) {
20
21
  throw new Error("MACI contract does not exist");
21
22
  }
22
- if (!domainobjs_1.PrivKey.isValidSerializedPrivKey(privateKey)) {
23
+ if (!domainobjs_1.PrivateKey.isValidSerialized(privateKey)) {
23
24
  throw new Error("Invalid MACI private key");
24
25
  }
25
26
  if (pollId < 0) {
26
27
  throw new Error("Invalid poll id");
27
28
  }
28
- const userMaciPrivKey = domainobjs_1.PrivKey.deserialize(privateKey);
29
- const userMaciPubKey = new domainobjs_1.Keypair(userMaciPrivKey).pubKey;
30
- const nullifier = (0, crypto_1.poseidon)([BigInt(userMaciPrivKey.asCircuitInputs()), pollId]);
29
+ const userMaciPrivateKey = domainobjs_1.PrivateKey.deserialize(privateKey);
30
+ const userMaciPublicKey = new domainobjs_1.Keypair(userMaciPrivateKey).publicKey;
31
+ const nullifier = (0, crypto_1.poseidon)([BigInt(userMaciPrivateKey.asCircuitInputs()), pollId]);
31
32
  // check if the user has already joined the poll based on the nullifier
32
- const hasUserJoinedAlready = await (0, user_1.hasUserJoinedPoll)({
33
+ const hasUserJoinedAlready = await (0, utils_1.hasUserJoinedPoll)({
33
34
  maciAddress,
34
35
  pollId,
35
36
  nullifier,
@@ -42,33 +43,35 @@ const joinPoll = async ({ maciAddress, privateKey, stateFile, pollId, signer, st
42
43
  const pollContracts = await maciContract.getPoll(pollId);
43
44
  const pollContract = typechain_types_1.Poll__factory.connect(pollContracts.poll, signer);
44
45
  // get the state index from the MACI contract
45
- const stateIndex = await maciContract.getStateIndex(userMaciPubKey.hash()).catch(() => -1n);
46
+ const stateIndex = await maciContract.getStateIndex(userMaciPublicKey.hash()).catch(() => -1n);
47
+ const stateTreeDepth = await maciContract.stateTreeDepth();
46
48
  let circuitInputs;
47
- if (stateFile) {
48
- circuitInputs = await (0, utils_1.getPollJoiningCircuitInputsFromStateFile)({
49
- stateFile,
50
- pollId,
51
- stateIndex,
52
- userMaciPrivKey,
53
- });
49
+ if (inclusionProof) {
50
+ circuitInputs = (0, utils_1.joiningCircuitInputs)(inclusionProof, stateTreeDepth, userMaciPrivateKey, userMaciPublicKey, pollId);
54
51
  }
55
52
  else {
56
53
  circuitInputs = await (0, utils_1.getPollJoiningCircuitEvents)({
57
54
  maciContract,
58
55
  stateIndex,
59
56
  pollId,
60
- userMaciPrivKey,
57
+ userMaciPrivateKey,
61
58
  signer,
62
59
  startBlock,
63
60
  endBlock,
64
61
  blocksPerBatch,
65
62
  });
66
63
  }
67
- const currentStateRootIndex = Number.parseInt((await maciContract.numSignUps()).toString(), 10) - 1;
64
+ const stateRootIndex = useLatestStateIndex
65
+ ? Number.parseInt((await maciContract.totalSignups()).toString(), 10) - 1
66
+ : stateIndex;
68
67
  // generate the proof for this batch
69
- const { proof } = await (0, utils_2.genProofSnarkjs)({ inputs: circuitInputs, zkeyPath: pollJoiningZkey, wasmPath: pollWasm });
68
+ const { proof } = await (0, utils_2.generateProofSnarkjs)({
69
+ inputs: circuitInputs,
70
+ zkeyPath: pollJoiningZkey,
71
+ wasmPath: pollWasm,
72
+ });
70
73
  // submit the message onchain as well as the encryption public key
71
- const tx = await pollContract.joinPoll(nullifier, userMaciPubKey.asContractParam(), currentStateRootIndex, (0, utils_2.formatProofForVerifierContract)(proof), sgDataArg, ivcpDataArg);
74
+ const tx = await pollContract.joinPoll(nullifier, userMaciPublicKey.asContractParam(), stateRootIndex, (0, utils_2.formatProofForVerifierContract)(proof), sgDataArg, ivcpDataArg);
72
75
  const receipt = await tx.wait();
73
76
  if (receipt?.status !== 1) {
74
77
  throw new Error("Transaction failed");
@@ -77,7 +80,6 @@ const joinPoll = async ({ maciAddress, privateKey, stateFile, pollId, signer, st
77
80
  return {
78
81
  pollStateIndex: args._pollStateIndex.toString(),
79
82
  voiceCredits: args._voiceCreditBalance.toString(),
80
- timestamp: args._timestamp.toString(),
81
83
  nullifier: nullifier.toString(),
82
84
  hash: receipt.hash,
83
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"joinPoll.js","sourceRoot":"","sources":["../../../ts/browser/joinPoll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"joinPoll.js","sourceRoot":"","sources":["../../../ts/browser/joinPoll.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type Groth16Proof } from "snarkjs";
2
- import type { IGenProofOptions, FullProveResult, SnarkProof } from "@maci-protocol/contracts";
2
+ import type { IGenerateProofOptions, FullProveResult, SnarkProof } from "@maci-protocol/contracts";
3
3
  /**
4
4
  * Format a SnarkProof type to an array of strings
5
5
  * which can be passed to the Groth16 verifier contract.
@@ -14,5 +14,5 @@ export declare const formatProofForVerifierContract: (proof: SnarkProof | Groth1
14
14
  * @param wasmPath - the path to the wasm witness
15
15
  * @returns the zk-SNARK proof and public signals
16
16
  */
17
- export declare const genProofSnarkjs: ({ inputs, zkeyPath, wasmPath }: IGenProofOptions) => Promise<FullProveResult>;
17
+ export declare const generateProofSnarkjs: ({ inputs, zkeyPath, wasmPath, }: IGenerateProofOptions) => Promise<FullProveResult>;
18
18
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/browser/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9F;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAAI,OAAO,UAAU,GAAG,YAAY,KAAG,MAAM,EAY5D,CAAC;AAE7B;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,gCAAgC,gBAAgB,KAAG,OAAO,CAAC,eAAe,CAO/G,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/browser/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEnG;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAAI,OAAO,UAAU,GAAG,YAAY,KAAG,MAAM,EAY5D,CAAC;AAE7B;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAU,iCAIxC,qBAAqB,KAAG,OAAO,CAAC,eAAe,CAOjD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.genProofSnarkjs = exports.formatProofForVerifierContract = void 0;
3
+ exports.generateProofSnarkjs = exports.formatProofForVerifierContract = void 0;
4
4
  const snarkjs_1 = require("snarkjs");
5
5
  /**
6
6
  * Format a SnarkProof type to an array of strings
@@ -26,12 +26,12 @@ exports.formatProofForVerifierContract = formatProofForVerifierContract;
26
26
  * @param wasmPath - the path to the wasm witness
27
27
  * @returns the zk-SNARK proof and public signals
28
28
  */
29
- const genProofSnarkjs = async ({ inputs, zkeyPath, wasmPath }) => {
29
+ const generateProofSnarkjs = async ({ inputs, zkeyPath, wasmPath, }) => {
30
30
  if (!wasmPath) {
31
31
  throw new Error("wasmPath must be specified");
32
32
  }
33
33
  const { proof, publicSignals } = await snarkjs_1.groth16.fullProve(inputs, wasmPath, zkeyPath);
34
34
  return { proof, publicSignals };
35
35
  };
36
- exports.genProofSnarkjs = genProofSnarkjs;
36
+ exports.generateProofSnarkjs = generateProofSnarkjs;
37
37
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/browser/utils.ts"],"names":[],"mappings":";;;AAAA,qCAAqD;AAIrD;;;;;GAKG;AACI,MAAM,8BAA8B,GAAG,CAAC,KAAgC,EAAY,EAAE,CAC3F;IACE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;CACd,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAZhB,QAAA,8BAA8B,kCAYd;AAE7B;;;;;;GAMG;AACI,MAAM,eAAe,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAoB,EAA4B,EAAE;IAClH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,iBAAO,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAClC,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/browser/utils.ts"],"names":[],"mappings":";;;AAAA,qCAAqD;AAIrD;;;;;GAKG;AACI,MAAM,8BAA8B,GAAG,CAAC,KAAgC,EAAY,EAAE,CAC3F;IACE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;CACd,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAZhB,QAAA,8BAA8B,kCAYd;AAE7B;;;;;;GAMG;AACI,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,MAAM,EACN,QAAQ,EACR,QAAQ,GACc,EAA4B,EAAE;IACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,iBAAO,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAClC,CAAC,CAAC;AAXW,QAAA,oBAAoB,wBAW/B"}
@@ -1,6 +1,6 @@
1
1
  export { deployPoll } from "./poll";
2
- export { deployVkRegistryContract } from "./vkRegistry";
2
+ export { deployVerifyingKeysRegistryContract } from "./verifyingKeysRegistry";
3
3
  export { deployMaci } from "./maci";
4
4
  export { deployFactoryWithLinkedLibraries } from "./utils";
5
- export type { IDeployPollArgs, IPollContractsData, IDeployMaciArgs, IMaciContracts, IDeployVkRegistryArgs, } from "./types";
5
+ export type { IDeployPollArgs, IPollContractsData, IDeployMaciArgs, IMaciContracts, IDeployVerifyingKeyRegistryArgs, } from "./types";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/deploy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAC;AAE3D,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/deploy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,mCAAmC,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAC;AAE3D,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,+BAA+B,GAChC,MAAM,SAAS,CAAC"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deployFactoryWithLinkedLibraries = exports.deployMaci = exports.deployVkRegistryContract = exports.deployPoll = void 0;
3
+ exports.deployFactoryWithLinkedLibraries = exports.deployMaci = exports.deployVerifyingKeysRegistryContract = exports.deployPoll = void 0;
4
4
  var poll_1 = require("./poll");
5
5
  Object.defineProperty(exports, "deployPoll", { enumerable: true, get: function () { return poll_1.deployPoll; } });
6
- var vkRegistry_1 = require("./vkRegistry");
7
- Object.defineProperty(exports, "deployVkRegistryContract", { enumerable: true, get: function () { return vkRegistry_1.deployVkRegistryContract; } });
6
+ var verifyingKeysRegistry_1 = require("./verifyingKeysRegistry");
7
+ Object.defineProperty(exports, "deployVerifyingKeysRegistryContract", { enumerable: true, get: function () { return verifyingKeysRegistry_1.deployVerifyingKeysRegistryContract; } });
8
8
  var maci_1 = require("./maci");
9
9
  Object.defineProperty(exports, "deployMaci", { enumerable: true, get: function () { return maci_1.deployMaci; } });
10
10
  var utils_1 = require("./utils");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/deploy/index.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,2CAAwD;AAA/C,sHAAA,wBAAwB,OAAA;AACjC,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,iCAA2D;AAAlD,yHAAA,gCAAgC,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/deploy/index.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,iEAA8E;AAArE,4IAAA,mCAAmC,OAAA;AAC5C,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,iCAA2D;AAAlD,yHAAA,gCAAgC,OAAA"}
@@ -4,5 +4,5 @@ import type { IDeployMaciArgs, IMaciContracts } from "./types";
4
4
  * @param args - The arguments for the MACI contracts deployment
5
5
  * @returns The deployed MACI contracts
6
6
  */
7
- export declare const deployMaci: ({ stateTreeDepth, signupPolicyAddress, pollFactoryAddress, messageProcessorFactoryAddress, tallyFactoryAddress, signer, poseidonAddresses, }: IDeployMaciArgs) => Promise<IMaciContracts>;
7
+ export declare const deployMaci: ({ stateTreeDepth, signupPolicyAddress, pollFactoryAddress, messageProcessorFactoryAddress, tallyFactoryAddress, signer, poseidonAddresses, verifier, }: IDeployMaciArgs) => Promise<IMaciContracts>;
8
8
  //# sourceMappingURL=maci.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"maci.d.ts","sourceRoot":"","sources":["../../../ts/deploy/maci.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI/D;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,8IAQ9B,eAAe,KAAG,OAAO,CAAC,cAAc,CAmF1C,CAAC"}
1
+ {"version":3,"file":"maci.d.ts","sourceRoot":"","sources":["../../../ts/deploy/maci.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK/D;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,wJAS9B,eAAe,KAAG,OAAO,CAAC,cAAc,CA8F1C,CAAC"}
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deployMaci = void 0;
4
4
  const contracts_1 = require("@maci-protocol/contracts");
5
5
  const utils_1 = require("./utils");
6
+ const verifyingKeysRegistry_1 = require("./verifyingKeysRegistry");
6
7
  /**
7
8
  * Deploy the MACI contracts
8
9
  * @param args - The arguments for the MACI contracts deployment
9
10
  * @returns The deployed MACI contracts
10
11
  */
11
- const deployMaci = async ({ stateTreeDepth, signupPolicyAddress, pollFactoryAddress, messageProcessorFactoryAddress, tallyFactoryAddress, signer, poseidonAddresses, }) => {
12
- const emptyBallotRoots = (0, contracts_1.genEmptyBallotRoots)(stateTreeDepth);
12
+ const deployMaci = async ({ stateTreeDepth, signupPolicyAddress, pollFactoryAddress, messageProcessorFactoryAddress, tallyFactoryAddress, signer, poseidonAddresses, verifier, }) => {
13
+ const emptyBallotRoots = (0, contracts_1.generateEmptyBallotRoots)(stateTreeDepth);
13
14
  const { PoseidonT3Contract, PoseidonT4Contract, PoseidonT5Contract, PoseidonT6Contract } = await (0, contracts_1.deployPoseidonContracts)(signer, poseidonAddresses, true);
14
15
  const poseidonAddrs = await Promise.all([
15
16
  PoseidonT3Contract.getAddress(),
@@ -55,6 +56,9 @@ const deployMaci = async ({ stateTreeDepth, signupPolicyAddress, pollFactoryAddr
55
56
  }),
56
57
  signer,
57
58
  });
59
+ const verifierContract = verifier || (await (0, contracts_1.deployVerifier)(signer, true));
60
+ const verifierContractAddress = await verifierContract.getAddress();
61
+ const verifyingKeysRegistryContractAddress = await (0, verifyingKeysRegistry_1.deployVerifyingKeysRegistryContract)({ signer });
58
62
  const maciContractAddress = await (0, utils_1.deployFactoryWithLinkedLibraries)({
59
63
  abi: contracts_1.MACI__factory.abi,
60
64
  bytecode: contracts_1.MACI__factory.linkBytecode({
@@ -65,12 +69,16 @@ const deployMaci = async ({ stateTreeDepth, signupPolicyAddress, pollFactoryAddr
65
69
  }),
66
70
  signer,
67
71
  args: [
68
- pollFactoryContractAddress,
69
- messageProcessorFactoryContractAddress,
70
- tallyFactoryContractAddress,
71
- signupPolicyAddress,
72
- stateTreeDepth,
73
- emptyBallotRoots,
72
+ {
73
+ pollFactory: pollFactoryContractAddress,
74
+ messageProcessorFactory: messageProcessorFactoryContractAddress,
75
+ tallyFactory: tallyFactoryContractAddress,
76
+ signUpPolicy: signupPolicyAddress,
77
+ verifier: verifierContractAddress,
78
+ verifyingKeysRegistry: verifyingKeysRegistryContractAddress,
79
+ stateTreeDepth,
80
+ emptyBallotRoots,
81
+ },
74
82
  ],
75
83
  });
76
84
  const policy = contracts_1.IBasePolicy__factory.connect(signupPolicyAddress, signer);
@@ -81,6 +89,8 @@ const deployMaci = async ({ stateTreeDepth, signupPolicyAddress, pollFactoryAddr
81
89
  messageProcessorFactoryContractAddress,
82
90
  tallyFactoryContractAddress,
83
91
  poseidonAddresses: poseidonAddrs,
92
+ verifierContractAddress,
93
+ verifyingKeysRegistryContractAddress,
84
94
  };
85
95
  };
86
96
  exports.deployMaci = deployMaci;
@@ -1 +1 @@
1
- {"version":3,"file":"maci.js","sourceRoot":"","sources":["../../../ts/deploy/maci.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maci.js","sourceRoot":"","sources":["../../../ts/deploy/maci.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ import type { IDeployPollArgs, IPollContractsData } from "./types";
4
4
  * @param args - The arguments for the deploy poll command
5
5
  * @returns The addresses of the deployed contracts
6
6
  */
7
- export declare const deployPoll: ({ maciAddress, pollStartTimestamp, pollEndTimestamp, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, coordinatorPubKey, verifierContractAddress, vkRegistryContractAddress, mode, policyContractAddress, initialVoiceCreditProxyContractAddress, relayers, voteOptions, initialVoiceCredits, freeForAllCheckerFactoryAddress, freeForAllPolicyFactoryAddress, signer, }: IDeployPollArgs) => Promise<IPollContractsData>;
7
+ export declare const deployPoll: ({ maciAddress, pollStartTimestamp, pollEndTimestamp, tallyProcessingStateTreeDepth, voteOptionTreeDepth, messageBatchSize, stateTreeDepth, coordinatorPublicKey, mode, policyContractAddress, initialVoiceCreditProxyContractAddress, relayers, voteOptions, initialVoiceCredits, freeForAllCheckerFactoryAddress, freeForAllPolicyFactoryAddress, initialVoiceCreditProxyFactoryAddress, signer, }: IDeployPollArgs) => Promise<IPollContractsData>;
8
8
  //# sourceMappingURL=poll.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../../ts/deploy/poll.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAMnE;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,mXAmB9B,eAAe,KAAG,OAAO,CAAC,kBAAkB,CAoI9C,CAAC"}
1
+ {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../../ts/deploy/poll.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAMnE;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,qYAmB9B,eAAe,KAAG,OAAO,CAAC,kBAAkB,CAkI9C,CAAC"}
@@ -11,10 +11,7 @@ const utils_1 = require("./utils");
11
11
  * @param args - The arguments for the deploy poll command
12
12
  * @returns The addresses of the deployed contracts
13
13
  */
14
- const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, coordinatorPubKey, verifierContractAddress, vkRegistryContractAddress, mode, policyContractAddress, initialVoiceCreditProxyContractAddress, relayers, voteOptions, initialVoiceCredits, freeForAllCheckerFactoryAddress, freeForAllPolicyFactoryAddress, signer, }) => {
15
- if (!vkRegistryContractAddress) {
16
- throw new Error("Please provide a VkRegistry contract address");
17
- }
14
+ const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, tallyProcessingStateTreeDepth, voteOptionTreeDepth, messageBatchSize, stateTreeDepth, coordinatorPublicKey, mode, policyContractAddress, initialVoiceCreditProxyContractAddress, relayers, voteOptions, initialVoiceCredits, freeForAllCheckerFactoryAddress, freeForAllPolicyFactoryAddress, initialVoiceCreditProxyFactoryAddress, signer, }) => {
18
15
  if (!maciAddress) {
19
16
  throw new Error("Please provide a MACI contract address");
20
17
  }
@@ -37,7 +34,10 @@ const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, i
37
34
  }
38
35
  let initialVoiceCreditProxyAddress = initialVoiceCreditProxyContractAddress;
39
36
  if (!initialVoiceCreditProxyAddress) {
40
- const [contract] = await (0, contracts_1.deployConstantInitialVoiceCreditProxy)({ amount: initialVoiceCredits ?? utils_1.DEFAULT_INITIAL_VOICE_CREDITS }, signer, undefined, true);
37
+ const constantInitialVoiceCreditProxyFactory = initialVoiceCreditProxyFactoryAddress
38
+ ? contracts_1.ConstantInitialVoiceCreditProxyFactory__factory.connect(initialVoiceCreditProxyFactoryAddress, signer)
39
+ : await (0, contracts_1.deployConstantInitialVoiceCreditProxyFactory)(signer, true);
40
+ const contract = await (0, contracts_1.deployConstantInitialVoiceCreditProxy)({ amount: initialVoiceCredits ?? utils_1.DEFAULT_INITIAL_VOICE_CREDITS }, constantInitialVoiceCreditProxyFactory, signer);
41
41
  initialVoiceCreditProxyAddress = await contract.getAddress();
42
42
  }
43
43
  // required arg -> poll duration
@@ -48,7 +48,7 @@ const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, i
48
48
  throw new Error("End date cannot be before start date");
49
49
  }
50
50
  // required arg -> int state tree depth
51
- if (intStateTreeDepth <= 0) {
51
+ if (tallyProcessingStateTreeDepth <= 0) {
52
52
  throw new Error("Int state tree depth cannot be <= 0");
53
53
  }
54
54
  // required arg -> message tree depth
@@ -64,7 +64,7 @@ const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, i
64
64
  throw new Error("Vote options cannot be greater than the number of leaves in the vote option tree");
65
65
  }
66
66
  // we check that the coordinator's public key is valid
67
- if (!domainobjs_1.PubKey.isValidSerializedPubKey(coordinatorPubKey.serialize())) {
67
+ if (!domainobjs_1.PublicKey.isValidSerialized(coordinatorPublicKey.serialize())) {
68
68
  throw new Error("Invalid MACI public key");
69
69
  }
70
70
  const receipt = await maciContract
@@ -72,13 +72,12 @@ const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, i
72
72
  startDate: pollStartTimestamp,
73
73
  endDate: pollEndTimestamp,
74
74
  treeDepths: {
75
- intStateTreeDepth,
75
+ tallyProcessingStateTreeDepth,
76
76
  voteOptionTreeDepth,
77
+ stateTreeDepth,
77
78
  },
78
79
  messageBatchSize,
79
- coordinatorPubKey: coordinatorPubKey.asContractParam(),
80
- verifier: verifierContractAddress,
81
- vkRegistry: vkRegistryContractAddress,
80
+ coordinatorPublicKey: coordinatorPublicKey.asContractParam(),
82
81
  mode,
83
82
  policy: signupPolicyContractAddress,
84
83
  initialVoiceCreditProxy: initialVoiceCreditProxyAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../ts/deploy/poll.ts"],"names":[],"mappings":";;;AAAA,wDAOkC;AAClC,8CAA6D;AAC7D,0DAAmD;AAInD,kDAAoD;AAEpD,mCAAwD;AAExD;;;;GAIG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,IAAI,EACJ,qBAAqB,EACrB,sCAAsC,EACtC,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,+BAA+B,EAC/B,8BAA8B,EAC9B,MAAM,GACU,EAA+B,EAAE;IACjD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAc,EAAC,MAAM,CAAC,QAAS,EAAE,WAAW,CAAC,CAAC;IAEzE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,YAAY,GAAG,yBAAW,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE9D,oEAAoE;IACpE,IAAI,2BAA2B,GAAG,qBAAqB,CAAC;IAExD,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,+BAA+B;YACpD,CAAC,CAAC,6CAA+B,CAAC,OAAO,CAAC,+BAA+B,EAAE,MAAM,CAAC;YAClF,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,aAAa,GAAG,8BAA8B;YAClD,CAAC,CAAC,4CAA8B,CAAC,OAAO,CAAC,8BAA8B,EAAE,MAAM,CAAC;YAChF,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAA,wCAA4B,EACnD,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,EAClD,MAAM,EACN,IAAI,CACL,CAAC;QACF,2BAA2B,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,8BAA8B,GAAG,sCAAsC,CAAC;IAE5E,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAA,iDAAqC,EAC5D,EAAE,MAAM,EAAE,mBAAmB,IAAI,qCAA6B,EAAE,EAChE,MAAM,EACN,SAAS,EACT,IAAI,CACL,CAAC;QACF,8BAA8B,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC/D,CAAC;IAED,gCAAgC;IAChC,IAAI,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,uCAAuC;IACvC,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,qCAAqC;IACrC,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,yCAAyC;IACzC,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,wDAAwD;IACxD,IAAI,WAAW,IAAI,WAAW,GAAG,6BAAsB,IAAI,mBAAmB,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC,mBAAM,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,YAAY;SAC/B,UAAU,CAAC;QACV,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE;YACV,iBAAiB;YACjB,mBAAmB;SACpB;QACD,gBAAgB;QAChB,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE;QACtD,QAAQ,EAAE,uBAAuB;QACjC,UAAU,EAAE,yBAAyB;QACrC,IAAI;QACJ,MAAM,EAAE,2BAA2B;QACnC,uBAAuB,EAAE,8BAA8B;QACvD,QAAQ;QACR,WAAW;KACZ,CAAC;SACD,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3B,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,uBAAuB;IACvB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAC3C,YAAY,CAAC,OAAO,CAAC,UAAU,EAC/B,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,WAAW,CACpB,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,gDAAgD;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAChC,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC;IAC/C,MAAM,+BAA+B,GAAG,aAAa,CAAC,gBAAgB,CAAC;IACvE,MAAM,oBAAoB,GAAG,aAAa,CAAC,KAAK,CAAC;IAEjD,MAAM,cAAc,GAAG,gCAAmB,CAAC,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IACxF,MAAM,cAAc,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5E,OAAO;QACL,MAAM;QACN,mBAAmB;QACnB,+BAA+B;QAC/B,oBAAoB;QACpB,qBAAqB,EAAE,2BAA2B;QAClD,sCAAsC,EAAE,8BAA8B;KACvE,CAAC;AACJ,CAAC,CAAC;AAvJW,QAAA,UAAU,cAuJrB"}
1
+ {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../ts/deploy/poll.ts"],"names":[],"mappings":"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"}