qaci-contracts
This submodule contains all the Ethereum contracts and tests for MACI.
Contracts
MACI.sol
The main contract to which all on-chain interactions should occur.
It should not contain much code besides its constructor function. Rather, it
should inherit from the following contracts, each of which defines a specific
class of functions:
crypto/
Contracts with cryptographic functions including hash functions.
trees/
Merkle tree contracts.
verifiers/
zk-SNARK verifier contracts.
tally/
Contracts with convenience functions for tally verification.
testing/
Contracts with testing and gas benchmark functions only for development purposes.