[ ] Dynamic tree height instead of the default 20. This will generate a new Verifier contract every time it's changed.
[ ] Addresses that are able to register for votes are based on an external call to an AllowList contract.
[ ] Support multiple rounds/proposals (This will require rolling base contracts into implementation contracts so that previous round commitments are not used in new rounds)
[ ] Use Foundry and FFI instead of Typescript for test cases
AnonymousBallot
is crude atm. Things to improve:prepare.sh
script,Verifier.sol
and anything else awkwardly inherited from the https://github.com/TheBojda/zk-merkle-tree/tree/main repo, use hardhat-circom.Verifier
contract every time it's changed.