@maci-protocol/website 0.0.0-ci.1e276ed

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 (415) hide show
  1. package/.eslintrc.js +157 -0
  2. package/CHANGELOG.md +566 -0
  3. package/LICENSE +22 -0
  4. package/README.md +58 -0
  5. package/babel.config.js +3 -0
  6. package/blog/2021-10-12-maci-v1.md +100 -0
  7. package/blog/2022-09-22-maci-v1-technical-introduction.md +180 -0
  8. package/blog/2023-01-18-maci-v1.1.1.md +121 -0
  9. package/blog/2024-01-18-roadmap.md +106 -0
  10. package/blog/2024-02-28-maci-v1.2.0.md +121 -0
  11. package/blog/2024-04-10-roadmap-q2.md +96 -0
  12. package/blog/2024-05-08-ethdam.md +169 -0
  13. package/blog/2024-05-22-the-origins-of-maci.md +38 -0
  14. package/blog/2024-05-28-upcoming-grants.md +85 -0
  15. package/blog/2024-06-17-understanding-maci.md +63 -0
  16. package/blog/2024-06-21-deciphering-maci.md +48 -0
  17. package/blog/2024-06-28-revolusioning-public-goods-funding.md +32 -0
  18. package/blog/2024-07-23-q2-review.md +72 -0
  19. package/blog/2024-07-30-roadmap-q3.md +61 -0
  20. package/blog/2024-08-10-maci-v2.md +102 -0
  21. package/blog/2024-08-29-anonymous-poll-joining.md +47 -0
  22. package/blog/2024-10-29-q3-review.md +63 -0
  23. package/blog/2024-11-20-maci-platform.md +93 -0
  24. package/blog/2024-12-01-maci-getting-started.md +294 -0
  25. package/blog/2025-03-21-roadmap-2025.md +112 -0
  26. package/blog/assets/MACI_Bob_SignUp_1.png +0 -0
  27. package/blog/assets/MACI_Bob_SignUp_2.png +0 -0
  28. package/blog/assets/MACI_Complex_Message.png +0 -0
  29. package/blog/assets/MACI_Contracts.png +0 -0
  30. package/blog/assets/MACI_Sign_Up.png +0 -0
  31. package/blog/assets/MACI_Simple_Message.png +0 -0
  32. package/blog/assets/MACI_Verifier_1.png +0 -0
  33. package/blog/authors.yml +5 -0
  34. package/docusaurus.config.ts +213 -0
  35. package/package.json +65 -0
  36. package/src/components/ActionCard/index.tsx +30 -0
  37. package/src/components/ActionCard/styles.module.css +96 -0
  38. package/src/components/HomepageFeatures/index.tsx +91 -0
  39. package/src/components/HomepageFeatures/styles.module.css +17 -0
  40. package/src/components/ProjectCard/index.tsx +74 -0
  41. package/src/components/ProjectCard/styles.module.css +77 -0
  42. package/src/components/ProjectList/index.tsx +218 -0
  43. package/src/components/ProjectList/styles.module.css +180 -0
  44. package/src/content/projects.json +294 -0
  45. package/src/css/card.module.css +130 -0
  46. package/src/css/custom.css +91 -0
  47. package/src/icons/IconDiscord.tsx +16 -0
  48. package/src/icons/IconGithub.tsx +16 -0
  49. package/src/icons/IconWebsite.tsx +16 -0
  50. package/src/pages/blogs.tsx +58 -0
  51. package/src/pages/index.module.css +152 -0
  52. package/src/pages/index.tsx +66 -0
  53. package/src/pages/projects.tsx +44 -0
  54. package/src/pages/roadmap.md +150 -0
  55. package/src/pages/typedoc.tsx +11 -0
  56. package/src/plugins/blog-plugin/index.ts +86 -0
  57. package/src/react-app-env.d.ts +1 -0
  58. package/src/scripts/setupSolidityDocs.ts +67 -0
  59. package/src/scripts/setupTypedoc.ts +112 -0
  60. package/src/scripts/utils.ts +115 -0
  61. package/src/utils/getProjectsByFilter.ts +40 -0
  62. package/static/.nojekyll +0 -0
  63. package/static/audit_reports/20210922_Hashcloak_audit_report.pdf +0 -0
  64. package/static/audit_reports/202220930_Hashcloak_audit_report.pdf +0 -0
  65. package/static/audit_reports/20240223_PSE_Audit_audit_report.pdf +0 -0
  66. package/static/audit_reports/20240731_PSE_Audit_audit_report.pdf +0 -0
  67. package/static/fonts/DM_Sans.woff2 +0 -0
  68. package/static/fonts/Share_Tech_Mono.woff2 +0 -0
  69. package/static/img/box.png +0 -0
  70. package/static/img/box_dark.png +0 -0
  71. package/static/img/chain.png +0 -0
  72. package/static/img/chain_dark.png +0 -0
  73. package/static/img/chart.png +0 -0
  74. package/static/img/chart_dark.png +0 -0
  75. package/static/img/circuits/MACI-Circuits.excalidraw +39652 -0
  76. package/static/img/circuits/calculateTotal.svg +21 -0
  77. package/static/img/circuits/ecdh.svg +21 -0
  78. package/static/img/circuits/messageToCommand.svg +21 -0
  79. package/static/img/circuits/messageValidator.svg +21 -0
  80. package/static/img/circuits/poseidonHasher13.svg +21 -0
  81. package/static/img/circuits/privToPubkey.svg +21 -0
  82. package/static/img/circuits/processMessages.svg +21 -0
  83. package/static/img/circuits/processMessagesInputHasher.svg +21 -0
  84. package/static/img/circuits/processMessages_2_0.svg +21 -0
  85. package/static/img/circuits/processOne.svg +21 -0
  86. package/static/img/circuits/processTopup.svg +21 -0
  87. package/static/img/circuits/processingAfterPollEnds.svg +21 -0
  88. package/static/img/circuits/quinBatchLeavesExists.svg +21 -0
  89. package/static/img/circuits/quinCheckRoot.svg +21 -0
  90. package/static/img/circuits/quinGeneratePathIndices.svg +21 -0
  91. package/static/img/circuits/quinSelector.svg +21 -0
  92. package/static/img/circuits/resultsCommitmentVerifier.svg +21 -0
  93. package/static/img/circuits/splicer.svg +21 -0
  94. package/static/img/circuits/tallyInputHasher.svg +21 -0
  95. package/static/img/circuits/tallyVotes.svg +21 -0
  96. package/static/img/circuits/unpackElement.svg +21 -0
  97. package/static/img/circuits/verifySignature.svg +21 -0
  98. package/static/img/completingAPoll.svg +4 -0
  99. package/static/img/contracts.svg +16 -0
  100. package/static/img/coordinatorComponents.svg +21 -0
  101. package/static/img/favicon.ico +0 -0
  102. package/static/img/generateProofs.svg +4 -0
  103. package/static/img/hero.svg +9 -0
  104. package/static/img/maci-card.png +0 -0
  105. package/static/img/maci-rpgf-design.jpg +0 -0
  106. package/static/img/messageProcessingLocal.svg +21 -0
  107. package/static/img/offlineProcessing.svg +21 -0
  108. package/static/img/pse-logo-round.png +0 -0
  109. package/static/img/relayer-diagram.png +0 -0
  110. package/static/img/tallyCommitments.svg +4 -0
  111. package/static/img/voteTallyingLocal.svg +21 -0
  112. package/tsconfig.json +34 -0
  113. package/versioned_docs/version-v0.x/circuits.md +22 -0
  114. package/versioned_docs/version-v0.x/contract.md +186 -0
  115. package/versioned_docs/version-v0.x/faq.md +67 -0
  116. package/versioned_docs/version-v0.x/introduction.md +119 -0
  117. package/versioned_docs/version-v0.x/quadratic-vote-tallying-circuit.md +138 -0
  118. package/versioned_docs/version-v0.x/state-root-transition-circuit.md +230 -0
  119. package/versioned_docs/version-v1.2/audit.md +160 -0
  120. package/versioned_docs/version-v1.2/ci-pipeline.md +38 -0
  121. package/versioned_docs/version-v1.2/circuits.md +508 -0
  122. package/versioned_docs/version-v1.2/cli.md +689 -0
  123. package/versioned_docs/version-v1.2/contracts.md +445 -0
  124. package/versioned_docs/version-v1.2/contributing/code-of-conduct.md +91 -0
  125. package/versioned_docs/version-v1.2/contributing/contributing.md +129 -0
  126. package/versioned_docs/version-v1.2/coordinator-processing.md +46 -0
  127. package/versioned_docs/version-v1.2/deployment.md +122 -0
  128. package/versioned_docs/version-v1.2/installation.md +175 -0
  129. package/versioned_docs/version-v1.2/integrating.md +200 -0
  130. package/versioned_docs/version-v1.2/introduction.md +94 -0
  131. package/versioned_docs/version-v1.2/key-change.md +182 -0
  132. package/versioned_docs/version-v1.2/overview.md +47 -0
  133. package/versioned_docs/version-v1.2/poll-types.md +68 -0
  134. package/versioned_docs/version-v1.2/primitives.md +216 -0
  135. package/versioned_docs/version-v1.2/project-ideas.md +14 -0
  136. package/versioned_docs/version-v1.2/purpose.md +62 -0
  137. package/versioned_docs/version-v1.2/solidity-docs/MACI.md +345 -0
  138. package/versioned_docs/version-v1.2/solidity-docs/MessageProcessor.md +266 -0
  139. package/versioned_docs/version-v1.2/solidity-docs/MessageProcessorFactory.md +26 -0
  140. package/versioned_docs/version-v1.2/solidity-docs/Poll.md +381 -0
  141. package/versioned_docs/version-v1.2/solidity-docs/PollFactory.md +50 -0
  142. package/versioned_docs/version-v1.2/solidity-docs/SignUpToken.md +27 -0
  143. package/versioned_docs/version-v1.2/solidity-docs/Subsidy.md +218 -0
  144. package/versioned_docs/version-v1.2/solidity-docs/SubsidyFactory.md +27 -0
  145. package/versioned_docs/version-v1.2/solidity-docs/Tally.md +311 -0
  146. package/versioned_docs/version-v1.2/solidity-docs/TallyFactory.md +27 -0
  147. package/versioned_docs/version-v1.2/solidity-docs/TallyNonQv.md +296 -0
  148. package/versioned_docs/version-v1.2/solidity-docs/TallyNonQvFactory.md +27 -0
  149. package/versioned_docs/version-v1.2/solidity-docs/TopupCredit.md +61 -0
  150. package/versioned_docs/version-v1.2/solidity-docs/VkRegistry.md +457 -0
  151. package/versioned_docs/version-v1.2/solidity-docs/benchmarks/HasherBenchmarks.md +44 -0
  152. package/versioned_docs/version-v1.2/solidity-docs/crypto/Hasher.md +125 -0
  153. package/versioned_docs/version-v1.2/solidity-docs/crypto/IVerifier.md +11 -0
  154. package/versioned_docs/version-v1.2/solidity-docs/crypto/MockVerifier.md +17 -0
  155. package/versioned_docs/version-v1.2/solidity-docs/crypto/Pairing.md +85 -0
  156. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT3.md +9 -0
  157. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT4.md +9 -0
  158. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT5.md +9 -0
  159. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT6.md +9 -0
  160. package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkCommon.md +16 -0
  161. package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkConstants.md +40 -0
  162. package/versioned_docs/version-v1.2/solidity-docs/crypto/Verifier.md +61 -0
  163. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/EASGatekeeper.md +121 -0
  164. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/FreeForAllSignUpGatekeeper.md +40 -0
  165. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpGatekeeper.md +26 -0
  166. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpTokenGatekeeper.md +93 -0
  167. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperBase.md +79 -0
  168. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperMultiple.md +48 -0
  169. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperSingle.md +42 -0
  170. package/versioned_docs/version-v1.2/solidity-docs/index.md +4 -0
  171. package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/ConstantInitialVoiceCreditProxy.md +40 -0
  172. package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/InitialVoiceCreditProxy.md +26 -0
  173. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IEAS.md +40 -0
  174. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IHats.md +103 -0
  175. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMPFactory.md +26 -0
  176. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMessageProcessor.md +31 -0
  177. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPoll.md +217 -0
  178. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPollFactory.md +29 -0
  179. package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallyFactory.md +28 -0
  180. package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallySubsidyFactory.md +27 -0
  181. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVerifier.md +25 -0
  182. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVkRegistry.md +70 -0
  183. package/versioned_docs/version-v1.2/solidity-docs/mocks/MockHatsProtocol.md +133 -0
  184. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueue.md +464 -0
  185. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary.md +60 -0
  186. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary0.md +40 -0
  187. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinaryMaci.md +34 -0
  188. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary.md +75 -0
  189. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary0.md +40 -0
  190. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryBlankSl.md +40 -0
  191. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryMaci.md +40 -0
  192. package/versioned_docs/version-v1.2/solidity-docs/trees/EmptyBallotRoots.md +13 -0
  193. package/versioned_docs/version-v1.2/solidity-docs/utilities/CommonUtilities.md +25 -0
  194. package/versioned_docs/version-v1.2/solidity-docs/utilities/DomainObjs.md +40 -0
  195. package/versioned_docs/version-v1.2/solidity-docs/utilities/Params.md +36 -0
  196. package/versioned_docs/version-v1.2/solidity-docs/utilities/Utilities.md +79 -0
  197. package/versioned_docs/version-v1.2/spec.md +944 -0
  198. package/versioned_docs/version-v1.2/testing-in-detail.md +209 -0
  199. package/versioned_docs/version-v1.2/testing.md +472 -0
  200. package/versioned_docs/version-v1.2/topup.md +43 -0
  201. package/versioned_docs/version-v1.2/troubleshooting.md +51 -0
  202. package/versioned_docs/version-v1.2/trusted-setup.md +76 -0
  203. package/versioned_docs/version-v1.2/typedoc/cli/.nojekyll +1 -0
  204. package/versioned_docs/version-v1.2/typedoc/cli/index.md +15 -0
  205. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/AirdropArgs.md +89 -0
  206. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployArgs.md +154 -0
  207. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployPollArgs.md +154 -0
  208. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployedContracts.md +130 -0
  209. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenLocalStateArgs.md +168 -0
  210. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenProofsArgs.md +388 -0
  211. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IGenKeypairArgs.md +37 -0
  212. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IRegisteredUserArgs.md +63 -0
  213. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeMessagesArgs.md +76 -0
  214. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeSignupsArgs.md +76 -0
  215. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PollContracts.md +53 -0
  216. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/ProveOnChainArgs.md +128 -0
  217. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PublishArgs.md +154 -0
  218. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SignupArgs.md +89 -0
  219. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SubsidyData.md +73 -0
  220. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TallyData.md +166 -0
  221. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TopupArgs.md +89 -0
  222. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/VerifyArgs.md +128 -0
  223. package/versioned_docs/version-v1.2/typedoc/cli/modules.md +556 -0
  224. package/versioned_docs/version-v1.2/typedoc/core/.nojekyll +1 -0
  225. package/versioned_docs/version-v1.2/typedoc/core/classes/MaciState.md +295 -0
  226. package/versioned_docs/version-v1.2/typedoc/core/classes/Poll.md +1098 -0
  227. package/versioned_docs/version-v1.2/typedoc/core/index.md +110 -0
  228. package/versioned_docs/version-v1.2/typedoc/core/interfaces/BatchSizes.md +50 -0
  229. package/versioned_docs/version-v1.2/typedoc/core/interfaces/IJsonMaciState.md +77 -0
  230. package/versioned_docs/version-v1.2/typedoc/core/interfaces/IProcessMessagesCircuitInputs.md +242 -0
  231. package/versioned_docs/version-v1.2/typedoc/core/interfaces/ISubsidyCircuitInputs.md +198 -0
  232. package/versioned_docs/version-v1.2/typedoc/core/interfaces/ITallyCircuitInputs.md +231 -0
  233. package/versioned_docs/version-v1.2/typedoc/core/interfaces/MaxValues.md +37 -0
  234. package/versioned_docs/version-v1.2/typedoc/core/interfaces/TreeDepths.md +63 -0
  235. package/versioned_docs/version-v1.2/typedoc/core/modules.md +289 -0
  236. package/versioned_docs/version-v1.2/typedoc/crypto/.nojekyll +1 -0
  237. package/versioned_docs/version-v1.2/typedoc/crypto/classes/AccQueue.md +770 -0
  238. package/versioned_docs/version-v1.2/typedoc/crypto/classes/G1Point.md +115 -0
  239. package/versioned_docs/version-v1.2/typedoc/crypto/classes/G2Point.md +140 -0
  240. package/versioned_docs/version-v1.2/typedoc/crypto/classes/IncrementalQuinTree.md +470 -0
  241. package/versioned_docs/version-v1.2/typedoc/crypto/index.md +44 -0
  242. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Keypair.md +33 -0
  243. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/PoseidonFuncs.md +115 -0
  244. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Queue.md +33 -0
  245. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Signature.md +37 -0
  246. package/versioned_docs/version-v1.2/typedoc/crypto/modules.md +913 -0
  247. package/versioned_docs/version-v1.2/typedoc/domainobjs/.nojekyll +1 -0
  248. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Ballot.md +274 -0
  249. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Keypair.md +181 -0
  250. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Message.md +244 -0
  251. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PCommand.md +409 -0
  252. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PrivKey.md +206 -0
  253. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PubKey.md +289 -0
  254. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/StateLeaf.md +340 -0
  255. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/TCommand.md +200 -0
  256. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/VerifyingKey.md +240 -0
  257. package/versioned_docs/version-v1.2/typedoc/domainobjs/index.md +81 -0
  258. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/ICommand.md +104 -0
  259. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG1ContractParams.md +31 -0
  260. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG2ContractParams.md +31 -0
  261. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonBallot.md +42 -0
  262. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonCommand.md +32 -0
  263. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonKeyPair.md +31 -0
  264. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonPCommand.md +111 -0
  265. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonStateLeaf.md +42 -0
  266. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonTCommand.md +67 -0
  267. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IMessageContractParams.md +31 -0
  268. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeaf.md +39 -0
  269. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeafContractParams.md +42 -0
  270. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkContractParams.md +64 -0
  271. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkObjectParams.md +108 -0
  272. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/Proof.md +46 -0
  273. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/VoteOptionTreeLeaf.md +24 -0
  274. package/versioned_docs/version-v1.2/typedoc/domainobjs/modules.md +110 -0
  275. package/versioned_docs/version-v1.2/typedoc/index.md +4 -0
  276. package/versioned_docs/version-v1.2/versioning.md +94 -0
  277. package/versioned_docs/version-v1.2/workflow.md +142 -0
  278. package/versioned_docs/version-v2.x/case-studies.md +35 -0
  279. package/versioned_docs/version-v2.x/contributing/_category_.json +4 -0
  280. package/versioned_docs/version-v2.x/contributing/code-of-conduct.md +92 -0
  281. package/versioned_docs/version-v2.x/contributing/contributing.md +149 -0
  282. package/versioned_docs/version-v2.x/contributing/project-ideas.md +78 -0
  283. package/versioned_docs/version-v2.x/core-concepts/_category_.json +4 -0
  284. package/versioned_docs/version-v2.x/core-concepts/ballot.md +19 -0
  285. package/versioned_docs/version-v2.x/core-concepts/coordinator-processing.md +46 -0
  286. package/versioned_docs/version-v2.x/core-concepts/hashing-and-encryption.md +45 -0
  287. package/versioned_docs/version-v2.x/core-concepts/key-change.md +179 -0
  288. package/versioned_docs/version-v2.x/core-concepts/maci-keys.md +84 -0
  289. package/versioned_docs/version-v2.x/core-concepts/maci-messages.md +44 -0
  290. package/versioned_docs/version-v2.x/core-concepts/merkle-trees.md +23 -0
  291. package/versioned_docs/version-v2.x/core-concepts/poll-types.md +106 -0
  292. package/versioned_docs/version-v2.x/core-concepts/spec.md +883 -0
  293. package/versioned_docs/version-v2.x/core-concepts/state-leaf.md +42 -0
  294. package/versioned_docs/version-v2.x/core-concepts/workflow.md +142 -0
  295. package/versioned_docs/version-v2.x/getting-started.md +313 -0
  296. package/versioned_docs/version-v2.x/guides/_category_.json +4 -0
  297. package/versioned_docs/version-v2.x/guides/compile-circuits.md +163 -0
  298. package/versioned_docs/version-v2.x/guides/frontend.md +99 -0
  299. package/versioned_docs/version-v2.x/guides/integrating.md +73 -0
  300. package/versioned_docs/version-v2.x/guides/maciWrapper.md +173 -0
  301. package/versioned_docs/version-v2.x/guides/subgraph.md +79 -0
  302. package/versioned_docs/version-v2.x/guides/testing/_category_.json +4 -0
  303. package/versioned_docs/version-v2.x/guides/testing/testing-in-detail.md +203 -0
  304. package/versioned_docs/version-v2.x/guides/testing/testing.md +163 -0
  305. package/versioned_docs/version-v2.x/guides/troubleshooting.md +161 -0
  306. package/versioned_docs/version-v2.x/introduction.md +146 -0
  307. package/versioned_docs/version-v2.x/processes/_category_.json +4 -0
  308. package/versioned_docs/version-v2.x/processes/ci-pipeline.md +38 -0
  309. package/versioned_docs/version-v2.x/processes/versioning.md +94 -0
  310. package/versioned_docs/version-v2.x/resources.md +33 -0
  311. package/versioned_docs/version-v2.x/security/_category_.json +4 -0
  312. package/versioned_docs/version-v2.x/security/audit.md +167 -0
  313. package/versioned_docs/version-v2.x/security/trusted-setup.md +166 -0
  314. package/versioned_docs/version-v2.x/supported-networks/_category_.json +4 -0
  315. package/versioned_docs/version-v2.x/supported-networks/deployed-contracts.md +1108 -0
  316. package/versioned_docs/version-v2.x/supported-networks/supported-networks.md +47 -0
  317. package/versioned_docs/version-v2.x/technical-references/_category_.json +4 -0
  318. package/versioned_docs/version-v2.x/technical-references/smart-contracts/AccQueue.md +21 -0
  319. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Gatekeepers.md +40 -0
  320. package/versioned_docs/version-v2.x/technical-references/smart-contracts/MACI.md +152 -0
  321. package/versioned_docs/version-v2.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
  322. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Params.md +32 -0
  323. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Poll.md +104 -0
  324. package/versioned_docs/version-v2.x/technical-references/smart-contracts/PollFactory.md +43 -0
  325. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Tally.md +45 -0
  326. package/versioned_docs/version-v2.x/technical-references/smart-contracts/VkRegistry.md +57 -0
  327. package/versioned_docs/version-v2.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
  328. package/versioned_docs/version-v2.x/technical-references/smart-contracts/_category_.json +8 -0
  329. package/versioned_docs/version-v2.x/technical-references/technical-references.md +47 -0
  330. package/versioned_docs/version-v2.x/technical-references/typescript-code/_category_.json +4 -0
  331. package/versioned_docs/version-v2.x/technical-references/typescript-code/cli.md +699 -0
  332. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/_category_.json +4 -0
  333. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/processMessages.md +107 -0
  334. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/setup.md +101 -0
  335. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
  336. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/utilities.md +131 -0
  337. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +37 -0
  338. package/versioned_docs/version-v2.x/use-cases/_category_.json +4 -0
  339. package/versioned_docs/version-v2.x/use-cases/governance.md +18 -0
  340. package/versioned_docs/version-v2.x/use-cases/polling.md +10 -0
  341. package/versioned_docs/version-v2.x/use-cases/public-goods.md +65 -0
  342. package/versioned_docs/version-v3.x/case-studies.md +35 -0
  343. package/versioned_docs/version-v3.x/contributing/_category_.json +4 -0
  344. package/versioned_docs/version-v3.x/contributing/code-of-conduct.md +92 -0
  345. package/versioned_docs/version-v3.x/contributing/contributing.md +149 -0
  346. package/versioned_docs/version-v3.x/contributing/project-ideas.md +78 -0
  347. package/versioned_docs/version-v3.x/core-concepts/_category_.json +4 -0
  348. package/versioned_docs/version-v3.x/core-concepts/ballot.md +19 -0
  349. package/versioned_docs/version-v3.x/core-concepts/coordinator-processing.md +46 -0
  350. package/versioned_docs/version-v3.x/core-concepts/coordinator-service.md +16 -0
  351. package/versioned_docs/version-v3.x/core-concepts/hashing-and-encryption.md +45 -0
  352. package/versioned_docs/version-v3.x/core-concepts/key-change.md +179 -0
  353. package/versioned_docs/version-v3.x/core-concepts/maci-keys.md +84 -0
  354. package/versioned_docs/version-v3.x/core-concepts/maci-messages.md +44 -0
  355. package/versioned_docs/version-v3.x/core-concepts/merkle-trees.md +16 -0
  356. package/versioned_docs/version-v3.x/core-concepts/offchain-voting.md +14 -0
  357. package/versioned_docs/version-v3.x/core-concepts/poll-types.md +58 -0
  358. package/versioned_docs/version-v3.x/core-concepts/polls.md +81 -0
  359. package/versioned_docs/version-v3.x/core-concepts/spec.md +883 -0
  360. package/versioned_docs/version-v3.x/core-concepts/state-leaf.md +42 -0
  361. package/versioned_docs/version-v3.x/core-concepts/workflow.md +149 -0
  362. package/versioned_docs/version-v3.x/guides/_category_.json +4 -0
  363. package/versioned_docs/version-v3.x/guides/compile-circuits.md +175 -0
  364. package/versioned_docs/version-v3.x/guides/integrating.md +137 -0
  365. package/versioned_docs/version-v3.x/guides/subgraph.md +79 -0
  366. package/versioned_docs/version-v3.x/guides/testing/_category_.json +4 -0
  367. package/versioned_docs/version-v3.x/guides/testing/testing-in-detail.md +191 -0
  368. package/versioned_docs/version-v3.x/guides/testing/testing-introduction.md +158 -0
  369. package/versioned_docs/version-v3.x/guides/troubleshooting.md +161 -0
  370. package/versioned_docs/version-v3.x/introduction.md +153 -0
  371. package/versioned_docs/version-v3.x/processes/_category_.json +4 -0
  372. package/versioned_docs/version-v3.x/processes/ci-pipeline.md +38 -0
  373. package/versioned_docs/version-v3.x/processes/versioning.md +94 -0
  374. package/versioned_docs/version-v3.x/quick-start.md +318 -0
  375. package/versioned_docs/version-v3.x/resources.md +33 -0
  376. package/versioned_docs/version-v3.x/security/_category_.json +4 -0
  377. package/versioned_docs/version-v3.x/security/audit.md +167 -0
  378. package/versioned_docs/version-v3.x/security/trusted-setup.md +172 -0
  379. package/versioned_docs/version-v3.x/supported-networks/_category_.json +4 -0
  380. package/versioned_docs/version-v3.x/supported-networks/deployed-contracts.md +112 -0
  381. package/versioned_docs/version-v3.x/supported-networks/supported-networks.md +53 -0
  382. package/versioned_docs/version-v3.x/technical-references/_category_.json +4 -0
  383. package/versioned_docs/version-v3.x/technical-references/coordinator-service/_category_.json +8 -0
  384. package/versioned_docs/version-v3.x/technical-references/coordinator-service/index.md +10 -0
  385. package/versioned_docs/version-v3.x/technical-references/coordinator-service/installation.md +43 -0
  386. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/_category_.json +8 -0
  387. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/index.md +51 -0
  388. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/installation.md +109 -0
  389. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MACI.md +160 -0
  390. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
  391. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Params.md +33 -0
  392. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Policies.md +39 -0
  393. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Poll.md +170 -0
  394. package/versioned_docs/version-v3.x/technical-references/smart-contracts/PollFactory.md +33 -0
  395. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Tally.md +43 -0
  396. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VkRegistry.md +62 -0
  397. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
  398. package/versioned_docs/version-v3.x/technical-references/smart-contracts/_category_.json +8 -0
  399. package/versioned_docs/version-v3.x/technical-references/technical-references.md +48 -0
  400. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/_category_.json +4 -0
  401. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/joinPoll.md +53 -0
  402. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/processMessages.md +106 -0
  403. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/setup.md +96 -0
  404. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
  405. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/utilities.md +131 -0
  406. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +42 -0
  407. package/versioned_docs/version-v3.x/use-cases/_category_.json +4 -0
  408. package/versioned_docs/version-v3.x/use-cases/governance.md +18 -0
  409. package/versioned_docs/version-v3.x/use-cases/polling.md +10 -0
  410. package/versioned_docs/version-v3.x/use-cases/public-goods.md +65 -0
  411. package/versioned_sidebars/version-v0.x-sidebars.json +8 -0
  412. package/versioned_sidebars/version-v1.2-sidebars.json +8 -0
  413. package/versioned_sidebars/version-v2.x-sidebars.json +8 -0
  414. package/versioned_sidebars/version-v3.x-sidebars.json +8 -0
  415. package/versions.json +1 -0
@@ -0,0 +1,381 @@
1
+ # Poll
2
+
3
+ A Poll contract allows voters to submit encrypted messages
4
+ which can be either votes, key change messages or topup messages.
5
+
6
+ _Do not deploy this directly. Use PollFactory.deploy() which performs some
7
+ checks on the Poll constructor arguments._
8
+
9
+ ### isInit
10
+
11
+ ```solidity
12
+ bool isInit
13
+ ```
14
+
15
+ Whether the Poll has been initialized
16
+
17
+ ### coordinatorPubKey
18
+
19
+ ```solidity
20
+ struct DomainObjs.PubKey coordinatorPubKey
21
+ ```
22
+
23
+ The coordinator's public key
24
+
25
+ ### coordinatorPubKeyHash
26
+
27
+ ```solidity
28
+ uint256 coordinatorPubKeyHash
29
+ ```
30
+
31
+ Hash of the coordinator's public key
32
+
33
+ ### mergedStateRoot
34
+
35
+ ```solidity
36
+ uint256 mergedStateRoot
37
+ ```
38
+
39
+ the state root of the state merkle tree
40
+
41
+ ### deployTime
42
+
43
+ ```solidity
44
+ uint256 deployTime
45
+ ```
46
+
47
+ ### duration
48
+
49
+ ```solidity
50
+ uint256 duration
51
+ ```
52
+
53
+ ### stateAqMerged
54
+
55
+ ```solidity
56
+ bool stateAqMerged
57
+ ```
58
+
59
+ Whether the MACI contract's stateAq has been merged by this contract
60
+
61
+ ### currentSbCommitment
62
+
63
+ ```solidity
64
+ uint256 currentSbCommitment
65
+ ```
66
+
67
+ Get the commitment to the state leaves and the ballots. This is
68
+ hash3(stateRoot, ballotRoot, salt).
69
+ Its initial value should be
70
+ hash(maciStateRootSnapshot, emptyBallotRoot, 0)
71
+ Each successful invocation of processMessages() should use a different
72
+ salt to update this value, so that an external observer cannot tell in
73
+ the case that none of the messages are valid.
74
+
75
+ ### numMessages
76
+
77
+ ```solidity
78
+ uint256 numMessages
79
+ ```
80
+
81
+ The number of messages that have been published
82
+
83
+ ### numSignups
84
+
85
+ ```solidity
86
+ uint256 numSignups
87
+ ```
88
+
89
+ The number of signups that have been processed
90
+ before the Poll ended (stateAq merged)
91
+
92
+ ### maxValues
93
+
94
+ ```solidity
95
+ struct Params.MaxValues maxValues
96
+ ```
97
+
98
+ Max values for the poll
99
+
100
+ ### treeDepths
101
+
102
+ ```solidity
103
+ struct Params.TreeDepths treeDepths
104
+ ```
105
+
106
+ Depths of the merkle trees
107
+
108
+ ### extContracts
109
+
110
+ ```solidity
111
+ struct Params.ExtContracts extContracts
112
+ ```
113
+
114
+ The contracts used by the Poll
115
+
116
+ ### VotingPeriodOver
117
+
118
+ ```solidity
119
+ error VotingPeriodOver()
120
+ ```
121
+
122
+ ### VotingPeriodNotOver
123
+
124
+ ```solidity
125
+ error VotingPeriodNotOver()
126
+ ```
127
+
128
+ ### PollAlreadyInit
129
+
130
+ ```solidity
131
+ error PollAlreadyInit()
132
+ ```
133
+
134
+ ### TooManyMessages
135
+
136
+ ```solidity
137
+ error TooManyMessages()
138
+ ```
139
+
140
+ ### MaciPubKeyLargerThanSnarkFieldSize
141
+
142
+ ```solidity
143
+ error MaciPubKeyLargerThanSnarkFieldSize()
144
+ ```
145
+
146
+ ### StateAqAlreadyMerged
147
+
148
+ ```solidity
149
+ error StateAqAlreadyMerged()
150
+ ```
151
+
152
+ ### StateAqSubtreesNeedMerge
153
+
154
+ ```solidity
155
+ error StateAqSubtreesNeedMerge()
156
+ ```
157
+
158
+ ### InvalidBatchLength
159
+
160
+ ```solidity
161
+ error InvalidBatchLength()
162
+ ```
163
+
164
+ ### PublishMessage
165
+
166
+ ```solidity
167
+ event PublishMessage(struct DomainObjs.Message _message, struct DomainObjs.PubKey _encPubKey)
168
+ ```
169
+
170
+ ### TopupMessage
171
+
172
+ ```solidity
173
+ event TopupMessage(struct DomainObjs.Message _message)
174
+ ```
175
+
176
+ ### MergeMaciStateAqSubRoots
177
+
178
+ ```solidity
179
+ event MergeMaciStateAqSubRoots(uint256 _numSrQueueOps)
180
+ ```
181
+
182
+ ### MergeMaciStateAq
183
+
184
+ ```solidity
185
+ event MergeMaciStateAq(uint256 _stateRoot, uint256 _numSignups)
186
+ ```
187
+
188
+ ### MergeMessageAqSubRoots
189
+
190
+ ```solidity
191
+ event MergeMessageAqSubRoots(uint256 _numSrQueueOps)
192
+ ```
193
+
194
+ ### MergeMessageAq
195
+
196
+ ```solidity
197
+ event MergeMessageAq(uint256 _messageRoot)
198
+ ```
199
+
200
+ ### constructor
201
+
202
+ ```solidity
203
+ constructor(uint256 _duration, struct Params.MaxValues _maxValues, struct Params.TreeDepths _treeDepths, struct DomainObjs.PubKey _coordinatorPubKey, struct Params.ExtContracts _extContracts) public payable
204
+ ```
205
+
206
+ Each MACI instance can have multiple Polls.
207
+ When a Poll is deployed, its voting period starts immediately.
208
+
209
+ #### Parameters
210
+
211
+ | Name | Type | Description |
212
+ | ------------------- | -------------------------- | ----------------------------------------------- |
213
+ | \_duration | uint256 | The duration of the voting period, in seconds |
214
+ | \_maxValues | struct Params.MaxValues | The maximum number of messages and vote options |
215
+ | \_treeDepths | struct Params.TreeDepths | The depths of the merkle trees |
216
+ | \_coordinatorPubKey | struct DomainObjs.PubKey | The coordinator's public key |
217
+ | \_extContracts | struct Params.ExtContracts | The external contracts |
218
+
219
+ ### isAfterVotingDeadline
220
+
221
+ ```solidity
222
+ modifier isAfterVotingDeadline()
223
+ ```
224
+
225
+ A modifier that causes the function to revert if the voting period is
226
+ not over.
227
+
228
+ ### isWithinVotingDeadline
229
+
230
+ ```solidity
231
+ modifier isWithinVotingDeadline()
232
+ ```
233
+
234
+ A modifier that causes the function to revert if the voting period is
235
+ over
236
+
237
+ ### init
238
+
239
+ ```solidity
240
+ function init() public
241
+ ```
242
+
243
+ The initialization function.
244
+
245
+ _Should be called immediately after Poll creation
246
+ and messageAq ownership transferred_
247
+
248
+ ### topup
249
+
250
+ ```solidity
251
+ function topup(uint256 stateIndex, uint256 amount) public virtual
252
+ ```
253
+
254
+ Allows to publish a Topup message
255
+
256
+ #### Parameters
257
+
258
+ | Name | Type | Description |
259
+ | ---------- | ------- | ------------------------------------ |
260
+ | stateIndex | uint256 | The index of user in the state queue |
261
+ | amount | uint256 | The amount of credits to topup |
262
+
263
+ ### publishMessage
264
+
265
+ ```solidity
266
+ function publishMessage(struct DomainObjs.Message _message, struct DomainObjs.PubKey _encPubKey) public virtual
267
+ ```
268
+
269
+ Allows anyone to publish a message (an encrypted command and signature).
270
+ This function also enqueues the message.
271
+
272
+ #### Parameters
273
+
274
+ | Name | Type | Description |
275
+ | ----------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
276
+ | \_message | struct DomainObjs.Message | The message to publish |
277
+ | \_encPubKey | struct DomainObjs.PubKey | An ephemeral public key which can be combined with the coordinator's private key to generate an ECDH shared key with which to encrypt the message. |
278
+
279
+ ### publishMessageBatch
280
+
281
+ ```solidity
282
+ function publishMessageBatch(struct DomainObjs.Message[] _messages, struct DomainObjs.PubKey[] _encPubKeys) external
283
+ ```
284
+
285
+ submit a message batch
286
+
287
+ _Can only be submitted before the voting deadline_
288
+
289
+ #### Parameters
290
+
291
+ | Name | Type | Description |
292
+ | ------------ | --------------------------- | ------------------------- |
293
+ | \_messages | struct DomainObjs.Message[] | the messages |
294
+ | \_encPubKeys | struct DomainObjs.PubKey[] | the encrypted public keys |
295
+
296
+ ### mergeMaciStateAqSubRoots
297
+
298
+ ```solidity
299
+ function mergeMaciStateAqSubRoots(uint256 _numSrQueueOps, uint256 _pollId) public
300
+ ```
301
+
302
+ The first step of merging the MACI state AccQueue. This allows the
303
+ ProcessMessages circuit to access the latest state tree and ballots via
304
+ currentSbCommitment.
305
+
306
+ #### Parameters
307
+
308
+ | Name | Type | Description |
309
+ | --------------- | ------- | ------------------------- |
310
+ | \_numSrQueueOps | uint256 | Number of operations |
311
+ | \_pollId | uint256 | The ID of the active Poll |
312
+
313
+ ### mergeMaciStateAq
314
+
315
+ ```solidity
316
+ function mergeMaciStateAq(uint256 _pollId) public
317
+ ```
318
+
319
+ The second step of merging the MACI state AccQueue. This allows the
320
+ ProcessMessages circuit to access the latest state tree and ballots via
321
+ currentSbCommitment.
322
+
323
+ #### Parameters
324
+
325
+ | Name | Type | Description |
326
+ | -------- | ------- | ------------------------- |
327
+ | \_pollId | uint256 | The ID of the active Poll |
328
+
329
+ ### mergeMessageAqSubRoots
330
+
331
+ ```solidity
332
+ function mergeMessageAqSubRoots(uint256 _numSrQueueOps) public
333
+ ```
334
+
335
+ The first step in merging the message AccQueue so that the
336
+ ProcessMessages circuit can access the message root.
337
+
338
+ #### Parameters
339
+
340
+ | Name | Type | Description |
341
+ | --------------- | ------- | ------------------------------------------------- |
342
+ | \_numSrQueueOps | uint256 | The number of subroot queue operations to perform |
343
+
344
+ ### mergeMessageAq
345
+
346
+ ```solidity
347
+ function mergeMessageAq() public
348
+ ```
349
+
350
+ The second step in merging the message AccQueue so that the
351
+ ProcessMessages circuit can access the message root.
352
+
353
+ ### getDeployTimeAndDuration
354
+
355
+ ```solidity
356
+ function getDeployTimeAndDuration() public view returns (uint256 pollDeployTime, uint256 pollDuration)
357
+ ```
358
+
359
+ Returns the Poll's deploy time and duration
360
+
361
+ #### Return Values
362
+
363
+ | Name | Type | Description |
364
+ | -------------- | ------- | ----------- |
365
+ | pollDeployTime | uint256 | |
366
+ | pollDuration | uint256 | |
367
+
368
+ ### numSignUpsAndMessages
369
+
370
+ ```solidity
371
+ function numSignUpsAndMessages() public view returns (uint256 numSUps, uint256 numMsgs)
372
+ ```
373
+
374
+ The number of messages which have been processed and the number of signups
375
+
376
+ #### Return Values
377
+
378
+ | Name | Type | Description |
379
+ | ------- | ------- | ------------------------------------- |
380
+ | numSUps | uint256 | |
381
+ | numMsgs | uint256 | The number of messages sent by voters |
@@ -0,0 +1,50 @@
1
+ # PollFactory
2
+
3
+ A factory contract which deploys Poll contracts. It allows the MACI contract
4
+ size to stay within the limit set by EIP-170.
5
+
6
+ ### TREE_ARITY
7
+
8
+ ```solidity
9
+ uint256 TREE_ARITY
10
+ ```
11
+
12
+ ### InvalidMaxValues
13
+
14
+ ```solidity
15
+ error InvalidMaxValues()
16
+ ```
17
+
18
+ ### constructor
19
+
20
+ ```solidity
21
+ constructor() public payable
22
+ ```
23
+
24
+ The PollFactory constructor
25
+
26
+ ### deploy
27
+
28
+ ```solidity
29
+ function deploy(uint256 _duration, struct Params.MaxValues _maxValues, struct Params.TreeDepths _treeDepths, struct DomainObjs.PubKey _coordinatorPubKey, address _maci, contract TopupCredit _topupCredit, address _pollOwner) public virtual returns (address pollAddr)
30
+ ```
31
+
32
+ Deploy a new Poll contract and AccQueue contract for messages.
33
+
34
+ #### Parameters
35
+
36
+ | Name | Type | Description |
37
+ | ------------------- | ------------------------ | ------------------------------------- |
38
+ | \_duration | uint256 | The duration of the poll |
39
+ | \_maxValues | struct Params.MaxValues | The max values for the poll |
40
+ | \_treeDepths | struct Params.TreeDepths | The depths of the merkle trees |
41
+ | \_coordinatorPubKey | struct DomainObjs.PubKey | The coordinator's public key |
42
+ | \_maci | address | The MACI contract interface reference |
43
+ | \_topupCredit | contract TopupCredit | The TopupCredit contract |
44
+ | \_pollOwner | address | The owner of the poll |
45
+
46
+ #### Return Values
47
+
48
+ | Name | Type | Description |
49
+ | -------- | ------- | -------------------------- |
50
+ | pollAddr | address | The deployed Poll contract |
@@ -0,0 +1,27 @@
1
+ # SignUpToken
2
+
3
+ This contract is an ERC721 token contract which
4
+ can be used to allow users to sign up for a poll.
5
+
6
+ ### constructor
7
+
8
+ ```solidity
9
+ constructor() public payable
10
+ ```
11
+
12
+ The constructor which calls the ERC721 constructor
13
+
14
+ ### giveToken
15
+
16
+ ```solidity
17
+ function giveToken(address to, uint256 curTokenId) public
18
+ ```
19
+
20
+ Gives an ERC721 token to an address
21
+
22
+ #### Parameters
23
+
24
+ | Name | Type | Description |
25
+ | ---------- | ------- | -------------------------------- |
26
+ | to | address | The address to give the token to |
27
+ | curTokenId | uint256 | The token id to give |
@@ -0,0 +1,218 @@
1
+ # Subsidy
2
+
3
+ This contract is used to verify that the subsidy calculations
4
+ are correct. It is also used to update the subsidy commitment if the
5
+ proof is valid.
6
+
7
+ ### rbi
8
+
9
+ ```solidity
10
+ uint256 rbi
11
+ ```
12
+
13
+ ### cbi
14
+
15
+ ```solidity
16
+ uint256 cbi
17
+ ```
18
+
19
+ ### sbCommitment
20
+
21
+ ```solidity
22
+ uint256 sbCommitment
23
+ ```
24
+
25
+ ### subsidyCommitment
26
+
27
+ ```solidity
28
+ uint256 subsidyCommitment
29
+ ```
30
+
31
+ ### verifier
32
+
33
+ ```solidity
34
+ contract IVerifier verifier
35
+ ```
36
+
37
+ ### vkRegistry
38
+
39
+ ```solidity
40
+ contract IVkRegistry vkRegistry
41
+ ```
42
+
43
+ ### poll
44
+
45
+ ```solidity
46
+ contract IPoll poll
47
+ ```
48
+
49
+ ### mp
50
+
51
+ ```solidity
52
+ contract IMessageProcessor mp
53
+ ```
54
+
55
+ ### ProcessingNotComplete
56
+
57
+ ```solidity
58
+ error ProcessingNotComplete()
59
+ ```
60
+
61
+ ### InvalidSubsidyProof
62
+
63
+ ```solidity
64
+ error InvalidSubsidyProof()
65
+ ```
66
+
67
+ ### AllSubsidyCalculated
68
+
69
+ ```solidity
70
+ error AllSubsidyCalculated()
71
+ ```
72
+
73
+ ### VkNotSet
74
+
75
+ ```solidity
76
+ error VkNotSet()
77
+ ```
78
+
79
+ ### NumSignUpsTooLarge
80
+
81
+ ```solidity
82
+ error NumSignUpsTooLarge()
83
+ ```
84
+
85
+ ### RbiTooLarge
86
+
87
+ ```solidity
88
+ error RbiTooLarge()
89
+ ```
90
+
91
+ ### CbiTooLarge
92
+
93
+ ```solidity
94
+ error CbiTooLarge()
95
+ ```
96
+
97
+ ### constructor
98
+
99
+ ```solidity
100
+ constructor(address _verifier, address _vkRegistry, address _poll, address _mp) public payable
101
+ ```
102
+
103
+ Create a new Subsidy contract
104
+
105
+ #### Parameters
106
+
107
+ | Name | Type | Description |
108
+ | ------------ | ------- | ----------------------------- |
109
+ | \_verifier | address | The Verifier contract |
110
+ | \_vkRegistry | address | The VkRegistry contract |
111
+ | \_poll | address | The Poll contract |
112
+ | \_mp | address | The MessageProcessor contract |
113
+
114
+ ### updateSbCommitment
115
+
116
+ ```solidity
117
+ function updateSbCommitment() public
118
+ ```
119
+
120
+ Update the currentSbCommitment if the proof is valid.
121
+
122
+ _currentSbCommitment is the commitment to the state and ballot roots_
123
+
124
+ ### genSubsidyPackedVals
125
+
126
+ ```solidity
127
+ function genSubsidyPackedVals(uint256 _numSignUps) public view returns (uint256 result)
128
+ ```
129
+
130
+ Generate the packed values for the subsidy proof
131
+
132
+ #### Parameters
133
+
134
+ | Name | Type | Description |
135
+ | ------------ | ------- | --------------------- |
136
+ | \_numSignUps | uint256 | The number of signups |
137
+
138
+ #### Return Values
139
+
140
+ | Name | Type | Description |
141
+ | ------ | ------- | ----------------- |
142
+ | result | uint256 | The packed values |
143
+
144
+ ### genSubsidyPublicInputHash
145
+
146
+ ```solidity
147
+ function genSubsidyPublicInputHash(uint256 _numSignUps, uint256 _newSubsidyCommitment) public view returns (uint256 inputHash)
148
+ ```
149
+
150
+ Generate the public input hash for the subsidy proof
151
+
152
+ #### Parameters
153
+
154
+ | Name | Type | Description |
155
+ | ---------------------- | ------- | -------------------------- |
156
+ | \_numSignUps | uint256 | The number of signups |
157
+ | \_newSubsidyCommitment | uint256 | The new subsidy commitment |
158
+
159
+ #### Return Values
160
+
161
+ | Name | Type | Description |
162
+ | --------- | ------- | --------------------- |
163
+ | inputHash | uint256 | The public input hash |
164
+
165
+ ### updateSubsidy
166
+
167
+ ```solidity
168
+ function updateSubsidy(uint256 _newSubsidyCommitment, uint256[8] _proof) external
169
+ ```
170
+
171
+ Update the subsidy commitment if the proof is valid
172
+
173
+ #### Parameters
174
+
175
+ | Name | Type | Description |
176
+ | ---------------------- | ---------- | -------------------------- |
177
+ | \_newSubsidyCommitment | uint256 | The new subsidy commitment |
178
+ | \_proof | uint256[8] | The proof |
179
+
180
+ ### increaseSubsidyIndex
181
+
182
+ ```solidity
183
+ function increaseSubsidyIndex(uint256 batchSize, uint256 numLeaves) internal
184
+ ```
185
+
186
+ Increase the subsidy batch index (rbi, cbi) to next,
187
+ it will try to cbi++ if the whole batch can fit into numLeaves
188
+ otherwise it will increase row index: rbi++.
189
+ Each batch for subsidy calculation is 2 dimensional: batchSize\*batchSize
190
+
191
+ #### Parameters
192
+
193
+ | Name | Type | Description |
194
+ | --------- | ------- | ---------------------------------------------------------------- |
195
+ | batchSize | uint256 | the size of 1 dimensional batch over the signup users |
196
+ | numLeaves | uint256 | total number of leaves in stateTree, i.e. number of signup users |
197
+
198
+ ### verifySubsidyProof
199
+
200
+ ```solidity
201
+ function verifySubsidyProof(uint256[8] _proof, uint256 _numSignUps, uint256 _newSubsidyCommitment) public view returns (bool isValid)
202
+ ```
203
+
204
+ Verify the subsidy proof using the Groth16 on chain verifier
205
+
206
+ #### Parameters
207
+
208
+ | Name | Type | Description |
209
+ | ---------------------- | ---------- | -------------------------- |
210
+ | \_proof | uint256[8] | The proof |
211
+ | \_numSignUps | uint256 | The number of signups |
212
+ | \_newSubsidyCommitment | uint256 | The new subsidy commitment |
213
+
214
+ #### Return Values
215
+
216
+ | Name | Type | Description |
217
+ | ------- | ---- | -------------------------- |
218
+ | isValid | bool | True if the proof is valid |
@@ -0,0 +1,27 @@
1
+ # SubsidyFactory
2
+
3
+ A factory contract which deploys Subsidy contracts.
4
+
5
+ ### deploy
6
+
7
+ ```solidity
8
+ function deploy(address _verifier, address _vkRegistry, address _poll, address _messageProcessor, address _owner) public returns (address subsidyAddr)
9
+ ```
10
+
11
+ Deploy a new Tally or Subsidy contract and return the address.
12
+
13
+ #### Parameters
14
+
15
+ | Name | Type | Description |
16
+ | ------------------ | ------- | ------------------------- |
17
+ | \_verifier | address | Verifier contract |
18
+ | \_vkRegistry | address | VkRegistry contract |
19
+ | \_poll | address | Poll contract |
20
+ | \_messageProcessor | address | MessageProcessor contract |
21
+ | \_owner | address | Owner of the contract |
22
+
23
+ #### Return Values
24
+
25
+ | Name | Type | Description |
26
+ | ----------- | ------- | --------------------- |
27
+ | subsidyAddr | address | The deployed contract |