maci
maci copied to clipboard
Enhance MACI circuits readability
Description
This PR aims to improve the readability of MACI's circuits by introducing precise documentation and refactoring the code to introduce Circom's Anonymous Components and Tuples feature. Also, lighten the circuits by removing unused ones and importing as much as possible from external libraries such as circomlib
and zk-kit
.
This PR also introduces a significant change to the structure of the Circuits
package. Specifically:
-
core
contains onlyprocessMessages
andtallyVotes
with their supporting templates for qv and non-qv version. -
trees
contains IQT and IMT -
utils
contains all templates that are not a core part of those in the root. Also, when necessary, they are subdivided between qv and non-qv.
Note the respective QV e NonQV versions of the templates are located in the same file.
Related issue(s)
See https://github.com/privacy-scaling-explorations/zk-kit/issues/131 (last rewrite).
Confirmation
- [x] I have read and understand MACI's contributor guidelines and code of conduct.
- [x] I have read and understand MACI's GitHub processes.
- [x] I have read and understand MACI's testing guide.
The latest updates on your projects. Learn more about Vercel for Git ↗︎
Name | Status | Preview | Updated (UTC) |
---|---|---|---|
maci-website | ✅ Ready (Inspect) | Visit Preview | May 1, 2024 8:33am |
Love to see this 🙏😍