@maci-protocol/website 0.0.0-ci.26f28d6
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.
- package/.eslintrc.js +157 -0
- package/CHANGELOG.md +566 -0
- package/LICENSE +22 -0
- package/README.md +58 -0
- package/babel.config.js +3 -0
- package/blog/2021-10-12-maci-v1.md +100 -0
- package/blog/2022-09-22-maci-v1-technical-introduction.md +180 -0
- package/blog/2023-01-18-maci-v1.1.1.md +121 -0
- package/blog/2024-01-18-roadmap.md +106 -0
- package/blog/2024-02-28-maci-v1.2.0.md +121 -0
- package/blog/2024-04-10-roadmap-q2.md +96 -0
- package/blog/2024-05-08-ethdam.md +169 -0
- package/blog/2024-05-22-the-origins-of-maci.md +38 -0
- package/blog/2024-05-28-upcoming-grants.md +85 -0
- package/blog/2024-06-17-understanding-maci.md +63 -0
- package/blog/2024-06-21-deciphering-maci.md +48 -0
- package/blog/2024-06-28-revolusioning-public-goods-funding.md +32 -0
- package/blog/2024-07-23-q2-review.md +72 -0
- package/blog/2024-07-30-roadmap-q3.md +61 -0
- package/blog/2024-08-10-maci-v2.md +102 -0
- package/blog/2024-08-29-anonymous-poll-joining.md +47 -0
- package/blog/2024-10-29-q3-review.md +63 -0
- package/blog/2024-11-20-maci-platform.md +93 -0
- package/blog/2024-12-01-maci-getting-started.md +294 -0
- package/blog/2025-03-21-roadmap-2025.md +112 -0
- package/blog/assets/MACI_Bob_SignUp_1.png +0 -0
- package/blog/assets/MACI_Bob_SignUp_2.png +0 -0
- package/blog/assets/MACI_Complex_Message.png +0 -0
- package/blog/assets/MACI_Contracts.png +0 -0
- package/blog/assets/MACI_Sign_Up.png +0 -0
- package/blog/assets/MACI_Simple_Message.png +0 -0
- package/blog/assets/MACI_Verifier_1.png +0 -0
- package/blog/authors.yml +5 -0
- package/docusaurus.config.ts +213 -0
- package/package.json +65 -0
- package/src/components/ActionCard/index.tsx +30 -0
- package/src/components/ActionCard/styles.module.css +96 -0
- package/src/components/HomepageFeatures/index.tsx +91 -0
- package/src/components/HomepageFeatures/styles.module.css +17 -0
- package/src/components/ProjectCard/index.tsx +74 -0
- package/src/components/ProjectCard/styles.module.css +77 -0
- package/src/components/ProjectList/index.tsx +218 -0
- package/src/components/ProjectList/styles.module.css +180 -0
- package/src/content/projects.json +294 -0
- package/src/css/card.module.css +130 -0
- package/src/css/custom.css +91 -0
- package/src/icons/IconDiscord.tsx +16 -0
- package/src/icons/IconGithub.tsx +16 -0
- package/src/icons/IconWebsite.tsx +16 -0
- package/src/pages/blogs.tsx +58 -0
- package/src/pages/index.module.css +152 -0
- package/src/pages/index.tsx +66 -0
- package/src/pages/projects.tsx +44 -0
- package/src/pages/roadmap.md +150 -0
- package/src/pages/typedoc.tsx +11 -0
- package/src/plugins/blog-plugin/index.ts +86 -0
- package/src/react-app-env.d.ts +1 -0
- package/src/scripts/setupSolidityDocs.ts +67 -0
- package/src/scripts/setupTypedoc.ts +112 -0
- package/src/scripts/utils.ts +115 -0
- package/src/utils/getProjectsByFilter.ts +40 -0
- package/static/.nojekyll +0 -0
- package/static/audit_reports/20210922_Hashcloak_audit_report.pdf +0 -0
- package/static/audit_reports/202220930_Hashcloak_audit_report.pdf +0 -0
- package/static/audit_reports/20240223_PSE_Audit_audit_report.pdf +0 -0
- package/static/audit_reports/20240731_PSE_Audit_audit_report.pdf +0 -0
- package/static/fonts/DM_Sans.woff2 +0 -0
- package/static/fonts/Share_Tech_Mono.woff2 +0 -0
- package/static/img/box.png +0 -0
- package/static/img/box_dark.png +0 -0
- package/static/img/chain.png +0 -0
- package/static/img/chain_dark.png +0 -0
- package/static/img/chart.png +0 -0
- package/static/img/chart_dark.png +0 -0
- package/static/img/circuits/MACI-Circuits.excalidraw +39652 -0
- package/static/img/circuits/calculateTotal.svg +21 -0
- package/static/img/circuits/ecdh.svg +21 -0
- package/static/img/circuits/messageToCommand.svg +21 -0
- package/static/img/circuits/messageValidator.svg +21 -0
- package/static/img/circuits/poseidonHasher13.svg +21 -0
- package/static/img/circuits/privToPubkey.svg +21 -0
- package/static/img/circuits/processMessages.svg +21 -0
- package/static/img/circuits/processMessagesInputHasher.svg +21 -0
- package/static/img/circuits/processMessages_2_0.svg +21 -0
- package/static/img/circuits/processOne.svg +21 -0
- package/static/img/circuits/processTopup.svg +21 -0
- package/static/img/circuits/processingAfterPollEnds.svg +21 -0
- package/static/img/circuits/quinBatchLeavesExists.svg +21 -0
- package/static/img/circuits/quinCheckRoot.svg +21 -0
- package/static/img/circuits/quinGeneratePathIndices.svg +21 -0
- package/static/img/circuits/quinSelector.svg +21 -0
- package/static/img/circuits/resultsCommitmentVerifier.svg +21 -0
- package/static/img/circuits/splicer.svg +21 -0
- package/static/img/circuits/tallyInputHasher.svg +21 -0
- package/static/img/circuits/tallyVotes.svg +21 -0
- package/static/img/circuits/unpackElement.svg +21 -0
- package/static/img/circuits/verifySignature.svg +21 -0
- package/static/img/completingAPoll.svg +4 -0
- package/static/img/contracts.svg +16 -0
- package/static/img/coordinatorComponents.svg +21 -0
- package/static/img/favicon.ico +0 -0
- package/static/img/generateProofs.svg +4 -0
- package/static/img/hero.svg +9 -0
- package/static/img/maci-card.png +0 -0
- package/static/img/maci-rpgf-design.jpg +0 -0
- package/static/img/messageProcessingLocal.svg +21 -0
- package/static/img/offlineProcessing.svg +21 -0
- package/static/img/pse-logo-round.png +0 -0
- package/static/img/tallyCommitments.svg +4 -0
- package/static/img/voteTallyingLocal.svg +21 -0
- package/tsconfig.json +34 -0
- package/versioned_docs/version-v0.x/circuits.md +22 -0
- package/versioned_docs/version-v0.x/contract.md +186 -0
- package/versioned_docs/version-v0.x/faq.md +67 -0
- package/versioned_docs/version-v0.x/introduction.md +119 -0
- package/versioned_docs/version-v0.x/quadratic-vote-tallying-circuit.md +138 -0
- package/versioned_docs/version-v0.x/state-root-transition-circuit.md +230 -0
- package/versioned_docs/version-v1.2/audit.md +160 -0
- package/versioned_docs/version-v1.2/ci-pipeline.md +38 -0
- package/versioned_docs/version-v1.2/circuits.md +508 -0
- package/versioned_docs/version-v1.2/cli.md +689 -0
- package/versioned_docs/version-v1.2/contracts.md +445 -0
- package/versioned_docs/version-v1.2/contributing/code-of-conduct.md +91 -0
- package/versioned_docs/version-v1.2/contributing/contributing.md +129 -0
- package/versioned_docs/version-v1.2/coordinator-processing.md +46 -0
- package/versioned_docs/version-v1.2/deployment.md +122 -0
- package/versioned_docs/version-v1.2/installation.md +175 -0
- package/versioned_docs/version-v1.2/integrating.md +200 -0
- package/versioned_docs/version-v1.2/introduction.md +94 -0
- package/versioned_docs/version-v1.2/key-change.md +182 -0
- package/versioned_docs/version-v1.2/overview.md +47 -0
- package/versioned_docs/version-v1.2/poll-types.md +68 -0
- package/versioned_docs/version-v1.2/primitives.md +216 -0
- package/versioned_docs/version-v1.2/project-ideas.md +14 -0
- package/versioned_docs/version-v1.2/purpose.md +62 -0
- package/versioned_docs/version-v1.2/solidity-docs/MACI.md +345 -0
- package/versioned_docs/version-v1.2/solidity-docs/MessageProcessor.md +266 -0
- package/versioned_docs/version-v1.2/solidity-docs/MessageProcessorFactory.md +26 -0
- package/versioned_docs/version-v1.2/solidity-docs/Poll.md +381 -0
- package/versioned_docs/version-v1.2/solidity-docs/PollFactory.md +50 -0
- package/versioned_docs/version-v1.2/solidity-docs/SignUpToken.md +27 -0
- package/versioned_docs/version-v1.2/solidity-docs/Subsidy.md +218 -0
- package/versioned_docs/version-v1.2/solidity-docs/SubsidyFactory.md +27 -0
- package/versioned_docs/version-v1.2/solidity-docs/Tally.md +311 -0
- package/versioned_docs/version-v1.2/solidity-docs/TallyFactory.md +27 -0
- package/versioned_docs/version-v1.2/solidity-docs/TallyNonQv.md +296 -0
- package/versioned_docs/version-v1.2/solidity-docs/TallyNonQvFactory.md +27 -0
- package/versioned_docs/version-v1.2/solidity-docs/TopupCredit.md +61 -0
- package/versioned_docs/version-v1.2/solidity-docs/VkRegistry.md +457 -0
- package/versioned_docs/version-v1.2/solidity-docs/benchmarks/HasherBenchmarks.md +44 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/Hasher.md +125 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/IVerifier.md +11 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/MockVerifier.md +17 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/Pairing.md +85 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT3.md +9 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT4.md +9 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT5.md +9 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT6.md +9 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkCommon.md +16 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkConstants.md +40 -0
- package/versioned_docs/version-v1.2/solidity-docs/crypto/Verifier.md +61 -0
- package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/EASGatekeeper.md +121 -0
- package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/FreeForAllSignUpGatekeeper.md +40 -0
- package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpGatekeeper.md +26 -0
- package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpTokenGatekeeper.md +93 -0
- package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperBase.md +79 -0
- package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperMultiple.md +48 -0
- package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperSingle.md +42 -0
- package/versioned_docs/version-v1.2/solidity-docs/index.md +4 -0
- package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/ConstantInitialVoiceCreditProxy.md +40 -0
- package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/InitialVoiceCreditProxy.md +26 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/IEAS.md +40 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/IHats.md +103 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMPFactory.md +26 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMessageProcessor.md +31 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPoll.md +217 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPollFactory.md +29 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallyFactory.md +28 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallySubsidyFactory.md +27 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVerifier.md +25 -0
- package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVkRegistry.md +70 -0
- package/versioned_docs/version-v1.2/solidity-docs/mocks/MockHatsProtocol.md +133 -0
- package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueue.md +464 -0
- package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary.md +60 -0
- package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary0.md +40 -0
- package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinaryMaci.md +34 -0
- package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary.md +75 -0
- package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary0.md +40 -0
- package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryBlankSl.md +40 -0
- package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryMaci.md +40 -0
- package/versioned_docs/version-v1.2/solidity-docs/trees/EmptyBallotRoots.md +13 -0
- package/versioned_docs/version-v1.2/solidity-docs/utilities/CommonUtilities.md +25 -0
- package/versioned_docs/version-v1.2/solidity-docs/utilities/DomainObjs.md +40 -0
- package/versioned_docs/version-v1.2/solidity-docs/utilities/Params.md +36 -0
- package/versioned_docs/version-v1.2/solidity-docs/utilities/Utilities.md +79 -0
- package/versioned_docs/version-v1.2/spec.md +944 -0
- package/versioned_docs/version-v1.2/testing-in-detail.md +209 -0
- package/versioned_docs/version-v1.2/testing.md +472 -0
- package/versioned_docs/version-v1.2/topup.md +43 -0
- package/versioned_docs/version-v1.2/troubleshooting.md +51 -0
- package/versioned_docs/version-v1.2/trusted-setup.md +76 -0
- package/versioned_docs/version-v1.2/typedoc/cli/.nojekyll +1 -0
- package/versioned_docs/version-v1.2/typedoc/cli/index.md +15 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/AirdropArgs.md +89 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployArgs.md +154 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployPollArgs.md +154 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployedContracts.md +130 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenLocalStateArgs.md +168 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenProofsArgs.md +388 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IGenKeypairArgs.md +37 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IRegisteredUserArgs.md +63 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeMessagesArgs.md +76 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeSignupsArgs.md +76 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PollContracts.md +53 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/ProveOnChainArgs.md +128 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PublishArgs.md +154 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SignupArgs.md +89 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SubsidyData.md +73 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TallyData.md +166 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TopupArgs.md +89 -0
- package/versioned_docs/version-v1.2/typedoc/cli/interfaces/VerifyArgs.md +128 -0
- package/versioned_docs/version-v1.2/typedoc/cli/modules.md +556 -0
- package/versioned_docs/version-v1.2/typedoc/core/.nojekyll +1 -0
- package/versioned_docs/version-v1.2/typedoc/core/classes/MaciState.md +295 -0
- package/versioned_docs/version-v1.2/typedoc/core/classes/Poll.md +1098 -0
- package/versioned_docs/version-v1.2/typedoc/core/index.md +110 -0
- package/versioned_docs/version-v1.2/typedoc/core/interfaces/BatchSizes.md +50 -0
- package/versioned_docs/version-v1.2/typedoc/core/interfaces/IJsonMaciState.md +77 -0
- package/versioned_docs/version-v1.2/typedoc/core/interfaces/IProcessMessagesCircuitInputs.md +242 -0
- package/versioned_docs/version-v1.2/typedoc/core/interfaces/ISubsidyCircuitInputs.md +198 -0
- package/versioned_docs/version-v1.2/typedoc/core/interfaces/ITallyCircuitInputs.md +231 -0
- package/versioned_docs/version-v1.2/typedoc/core/interfaces/MaxValues.md +37 -0
- package/versioned_docs/version-v1.2/typedoc/core/interfaces/TreeDepths.md +63 -0
- package/versioned_docs/version-v1.2/typedoc/core/modules.md +289 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/.nojekyll +1 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/classes/AccQueue.md +770 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/classes/G1Point.md +115 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/classes/G2Point.md +140 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/classes/IncrementalQuinTree.md +470 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/index.md +44 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Keypair.md +33 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/PoseidonFuncs.md +115 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Queue.md +33 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Signature.md +37 -0
- package/versioned_docs/version-v1.2/typedoc/crypto/modules.md +913 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/.nojekyll +1 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Ballot.md +274 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Keypair.md +181 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Message.md +244 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PCommand.md +409 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PrivKey.md +206 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PubKey.md +289 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/StateLeaf.md +340 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/TCommand.md +200 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/VerifyingKey.md +240 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/index.md +81 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/ICommand.md +104 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG1ContractParams.md +31 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG2ContractParams.md +31 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonBallot.md +42 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonCommand.md +32 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonKeyPair.md +31 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonPCommand.md +111 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonStateLeaf.md +42 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonTCommand.md +67 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IMessageContractParams.md +31 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeaf.md +39 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeafContractParams.md +42 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkContractParams.md +64 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkObjectParams.md +108 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/Proof.md +46 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/VoteOptionTreeLeaf.md +24 -0
- package/versioned_docs/version-v1.2/typedoc/domainobjs/modules.md +110 -0
- package/versioned_docs/version-v1.2/typedoc/index.md +4 -0
- package/versioned_docs/version-v1.2/versioning.md +94 -0
- package/versioned_docs/version-v1.2/workflow.md +142 -0
- package/versioned_docs/version-v2.x/case-studies.md +35 -0
- package/versioned_docs/version-v2.x/contributing/_category_.json +4 -0
- package/versioned_docs/version-v2.x/contributing/code-of-conduct.md +92 -0
- package/versioned_docs/version-v2.x/contributing/contributing.md +149 -0
- package/versioned_docs/version-v2.x/contributing/project-ideas.md +78 -0
- package/versioned_docs/version-v2.x/core-concepts/_category_.json +4 -0
- package/versioned_docs/version-v2.x/core-concepts/ballot.md +19 -0
- package/versioned_docs/version-v2.x/core-concepts/coordinator-processing.md +46 -0
- package/versioned_docs/version-v2.x/core-concepts/hashing-and-encryption.md +45 -0
- package/versioned_docs/version-v2.x/core-concepts/key-change.md +179 -0
- package/versioned_docs/version-v2.x/core-concepts/maci-keys.md +84 -0
- package/versioned_docs/version-v2.x/core-concepts/maci-messages.md +44 -0
- package/versioned_docs/version-v2.x/core-concepts/merkle-trees.md +23 -0
- package/versioned_docs/version-v2.x/core-concepts/poll-types.md +106 -0
- package/versioned_docs/version-v2.x/core-concepts/spec.md +883 -0
- package/versioned_docs/version-v2.x/core-concepts/state-leaf.md +42 -0
- package/versioned_docs/version-v2.x/core-concepts/workflow.md +142 -0
- package/versioned_docs/version-v2.x/getting-started.md +313 -0
- package/versioned_docs/version-v2.x/guides/_category_.json +4 -0
- package/versioned_docs/version-v2.x/guides/compile-circuits.md +163 -0
- package/versioned_docs/version-v2.x/guides/frontend.md +99 -0
- package/versioned_docs/version-v2.x/guides/integrating.md +73 -0
- package/versioned_docs/version-v2.x/guides/maciWrapper.md +173 -0
- package/versioned_docs/version-v2.x/guides/subgraph.md +79 -0
- package/versioned_docs/version-v2.x/guides/testing/_category_.json +4 -0
- package/versioned_docs/version-v2.x/guides/testing/testing-in-detail.md +203 -0
- package/versioned_docs/version-v2.x/guides/testing/testing.md +163 -0
- package/versioned_docs/version-v2.x/guides/troubleshooting.md +161 -0
- package/versioned_docs/version-v2.x/introduction.md +146 -0
- package/versioned_docs/version-v2.x/processes/_category_.json +4 -0
- package/versioned_docs/version-v2.x/processes/ci-pipeline.md +38 -0
- package/versioned_docs/version-v2.x/processes/versioning.md +94 -0
- package/versioned_docs/version-v2.x/resources.md +33 -0
- package/versioned_docs/version-v2.x/security/_category_.json +4 -0
- package/versioned_docs/version-v2.x/security/audit.md +167 -0
- package/versioned_docs/version-v2.x/security/trusted-setup.md +166 -0
- package/versioned_docs/version-v2.x/supported-networks/_category_.json +4 -0
- package/versioned_docs/version-v2.x/supported-networks/deployed-contracts.md +1108 -0
- package/versioned_docs/version-v2.x/supported-networks/supported-networks.md +47 -0
- package/versioned_docs/version-v2.x/technical-references/_category_.json +4 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/AccQueue.md +21 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/Gatekeepers.md +40 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/MACI.md +152 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/Params.md +32 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/Poll.md +104 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/PollFactory.md +43 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/Tally.md +45 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/VkRegistry.md +57 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/_category_.json +8 -0
- package/versioned_docs/version-v2.x/technical-references/technical-references.md +47 -0
- package/versioned_docs/version-v2.x/technical-references/typescript-code/_category_.json +4 -0
- package/versioned_docs/version-v2.x/technical-references/typescript-code/cli.md +699 -0
- package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/_category_.json +4 -0
- package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/processMessages.md +107 -0
- package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/setup.md +101 -0
- package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
- package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/utilities.md +131 -0
- package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +37 -0
- package/versioned_docs/version-v2.x/use-cases/_category_.json +4 -0
- package/versioned_docs/version-v2.x/use-cases/governance.md +18 -0
- package/versioned_docs/version-v2.x/use-cases/polling.md +10 -0
- package/versioned_docs/version-v2.x/use-cases/public-goods.md +65 -0
- package/versioned_docs/version-v3.x/case-studies.md +35 -0
- package/versioned_docs/version-v3.x/contributing/_category_.json +4 -0
- package/versioned_docs/version-v3.x/contributing/code-of-conduct.md +92 -0
- package/versioned_docs/version-v3.x/contributing/contributing.md +149 -0
- package/versioned_docs/version-v3.x/contributing/project-ideas.md +78 -0
- package/versioned_docs/version-v3.x/core-concepts/_category_.json +4 -0
- package/versioned_docs/version-v3.x/core-concepts/ballot.md +19 -0
- package/versioned_docs/version-v3.x/core-concepts/coordinator-processing.md +46 -0
- package/versioned_docs/version-v3.x/core-concepts/hashing-and-encryption.md +45 -0
- package/versioned_docs/version-v3.x/core-concepts/key-change.md +179 -0
- package/versioned_docs/version-v3.x/core-concepts/maci-keys.md +84 -0
- package/versioned_docs/version-v3.x/core-concepts/maci-messages.md +44 -0
- package/versioned_docs/version-v3.x/core-concepts/merkle-trees.md +16 -0
- package/versioned_docs/version-v3.x/core-concepts/poll-types.md +58 -0
- package/versioned_docs/version-v3.x/core-concepts/polls.md +81 -0
- package/versioned_docs/version-v3.x/core-concepts/spec.md +883 -0
- package/versioned_docs/version-v3.x/core-concepts/state-leaf.md +42 -0
- package/versioned_docs/version-v3.x/core-concepts/workflow.md +143 -0
- package/versioned_docs/version-v3.x/guides/_category_.json +4 -0
- package/versioned_docs/version-v3.x/guides/compile-circuits.md +175 -0
- package/versioned_docs/version-v3.x/guides/integrating.md +137 -0
- package/versioned_docs/version-v3.x/guides/subgraph.md +79 -0
- package/versioned_docs/version-v3.x/guides/testing/_category_.json +4 -0
- package/versioned_docs/version-v3.x/guides/testing/testing-in-detail.md +191 -0
- package/versioned_docs/version-v3.x/guides/testing/testing-introduction.md +158 -0
- package/versioned_docs/version-v3.x/guides/troubleshooting.md +161 -0
- package/versioned_docs/version-v3.x/introduction.md +153 -0
- package/versioned_docs/version-v3.x/processes/_category_.json +4 -0
- package/versioned_docs/version-v3.x/processes/ci-pipeline.md +38 -0
- package/versioned_docs/version-v3.x/processes/versioning.md +94 -0
- package/versioned_docs/version-v3.x/quick-start.md +318 -0
- package/versioned_docs/version-v3.x/resources.md +33 -0
- package/versioned_docs/version-v3.x/security/_category_.json +4 -0
- package/versioned_docs/version-v3.x/security/audit.md +167 -0
- package/versioned_docs/version-v3.x/security/trusted-setup.md +172 -0
- package/versioned_docs/version-v3.x/supported-networks/_category_.json +4 -0
- package/versioned_docs/version-v3.x/supported-networks/deployed-contracts.md +112 -0
- package/versioned_docs/version-v3.x/supported-networks/supported-networks.md +53 -0
- package/versioned_docs/version-v3.x/technical-references/_category_.json +4 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/MACI.md +160 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Params.md +33 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Policies.md +39 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Poll.md +170 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/PollFactory.md +33 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Tally.md +43 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/VkRegistry.md +62 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/_category_.json +8 -0
- package/versioned_docs/version-v3.x/technical-references/technical-references.md +48 -0
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/_category_.json +4 -0
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/joinPoll.md +53 -0
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/processMessages.md +106 -0
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/setup.md +96 -0
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/utilities.md +131 -0
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +42 -0
- package/versioned_docs/version-v3.x/use-cases/_category_.json +4 -0
- package/versioned_docs/version-v3.x/use-cases/governance.md +18 -0
- package/versioned_docs/version-v3.x/use-cases/polling.md +10 -0
- package/versioned_docs/version-v3.x/use-cases/public-goods.md +65 -0
- package/versioned_sidebars/version-v0.x-sidebars.json +8 -0
- package/versioned_sidebars/version-v1.2-sidebars.json +8 -0
- package/versioned_sidebars/version-v2.x-sidebars.json +8 -0
- package/versioned_sidebars/version-v3.x-sidebars.json +8 -0
- 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 |
|