Skip to content

v1.2.0

Compare
Choose a tag to compare
@ctrlc03 ctrlc03 released this 27 Feb 15:25
· 948 commits to dev since this release
d3952dd

What's Changed

Feat

  • feat(cli) - expose all cli functions so they can be used in custom scripts by @ctrlc03 in #752
  • feat(circuits) - shift from circom_helper to circom_tester by @ctrlc03 in #784
  • feat(cross-platform-maci) - Allow MACI to run e2e on any architecture by @ctrlc03 in #817
  • feat(typedoc) - add typedoc to the repo by @ctrlc03 in #755
  • feat(state-tree-depth) - ensure stateTreeDepth is not hardcoded by @ctrlc03 in #777
  • ci: nightly proving key generation workflow by @baumstern in #804
  • feat(genLocalState) - debugging utility for log fetching and local maci state generation by @ctrlc03 in #758
  • feat(commitments): store tally commitments to be used for verification by @ctrlc03 in #877
  • Add verifyTallyResult, verifyPerVOSpentVoiceCredits, verifySpentVoiceCredits by @yuetloo in #835
  • feat(cli): enable environmental variables by @kittybest in #996
  • feat(contracts): return contract addresses when deploying the poll contract by @ctrlc03 in #1016
  • feat(circuits): unify circuits compilation and zkey generation processes by @ctrlc03 in #1018
  • feat(website): update ui-kit by @kittybest in #1033
  • Feat/UI kit tweaks by @samajammin in #1041
  • feat: optimize deployment and tally event by @0xmad in #1083
  • feat(website): setup sidebar labels and position by @kittybest in #1067
  • feat: make image zoomable by adding package by @kittybest in #1094
  • feat(eas-gatekeeper): implement an EAS gatekeeper for MACI by @ctrlc03 in #1109
  • feat(qv): add optional flag to use quadratic voting or not in MACI by @ctrlc03 in #1146
  • feat(tally): remove ballotsTallied event and add view function by @ctrlc03 in #1148
  • feat(cli): add relevant information in tally.json to simplify verify interface by @ctrlc03 in #1149
  • feat(cli): add seed param for generate keypair command by @0xmad in #1199
  • feat(cli): improve cli integration ux by @0xmad in #1212
  • feat(cli): add get poll cli command by @0xmad in #1224
  • feat(poll): add message batch submission by @ctrlc03 in #1226

Refactor (Code and Tests)

  • Contract refactor by @chaosma in #599
  • constraint updatesbcommitment in contracts by @chaosma in #661
  • Use snarkjs API and remove the hardcoding of the snarkjs command line path by @yuetloo in #782
  • feat(refactor) - refactor the crypto package by @ctrlc03 in #749
  • feat(contracts) - add custom errors by @ctrlc03 in #764
  • refactor(cli): print relevant values when comparing fails by @baumstern in #585
  • Refactor package.json: Update circomlib Dependency and Remove gitHead Field by @baumstern in #831
  • Restructure maci-core for enhanced discoverability by @baumstern in #846
  • feat(domainobjs) - code and tests refactoring by @ctrlc03 in #767
  • refactoring(cli && tests) - refactoring of the CLI package and integration tests by @ctrlc03 in #794
  • refactor(core): remove unnecessary accumulatorQueue in offchain instance by @baumstern in #866
  • refactor(core): cleanup the core package by @ctrlc03 in #907
  • tests(key-change): add tests and docs related to MACI's key change by @ctrlc03 in #885
  • refactor(contracts): add natspec across contracts and cleanup by @ctrlc03 in #898
  • refactoring(circuits): refactor the circuit package to improve its efficiency by @ctrlc03 in #832
  • refactor(contracts): refactor contracts code by @ctrlc03 in #913
  • test(contracts): re-organize smart contract tests in separate files by @ctrlc03 in #897
  • refactor(repo): remove redundant code from certain packages by @ctrlc03 in #920
  • refactor(contracts): cleanup unused scripts and organize ts code by @ctrlc03 in #909
  • refactor(core): refactor the process message functions and general cleanup by @ctrlc03 in #914
  • test(ceremony): test ceremony artifacts and params by @ctrlc03 in #918
  • test(core): process messages unit tests by @ctrlc03 in #924
  • test(coverage): setup coverage for TS packages by @ctrlc03 in #932
  • test(crypto): complete unit tests for the crypto package by @ctrlc03 in #933
  • refactor(crypto): remove ffjavascript and implement utils functions locally by @ctrlc03 in #944
  • test(contracts): refactor and add unit tests to the current suite by @ctrlc03 in #940
  • refactor(zk-kit-poseidon): remove old circomlib dependencies in crypto by @ctrlc03 in #943
  • feat(proofs): add preferred witness type in circuit's genProof function by @ctrlc03 in #925
  • test(domainobjs): implement unit tests for the domainobjs package by @ctrlc03 in #934
  • refactor(contracts): smart contracts optimizations by @ctrlc03 in #919
  • refactor(crypto): improve package structure by @ctrlc03 in #935
  • test(topup): implement test cases for the topup feature by @ctrlc03 in #952
  • refactor(core): refactor the core package subsidy and tally functions by @ctrlc03 in #953
  • test(core): test refactoring and implementation by @ctrlc03 in #954
  • test(cli): reorganize e2e tests and add more tests for cli commands by @ctrlc03 in #956
  • test(integration): ensure integration tests are using the correct user keys by @ctrlc03 in #957
  • test(core): e2e test cases core maciState/Poll by @baumstern in #910
  • test(circuits): refactor and add tests for the circom circuits by @ctrlc03 in #1004
  • refactor(contracts): deploy MessageProcessor, Tally, and Subsidy contracts after deploy poll by @kittybest in #949
  • refactor(contracts): optimize code by @ctrlc03 in #1008
  • feat(circuits): remove circomlib fork in favour of latest and zk-kit by @ctrlc03 in #1010
  • refactor(optimisedmt): remove dependency and implement locally by @ctrlc03 in #1031
  • refactor(cli): use object args for cli commands by @ctrlc03 in #1048
  • refactor(contracts): remove maxValues from Maci.deployPoll() and instead calculate by @ctrlc03 in #1089
  • feat(cli): accept signer as parameter to cli commands by @ctrlc03 in #1127
  • refactor(contracts): optimize utilities.padAndHashMessage by @ctrlc03 in #1151
  • refactor(core): remove redundant code which could slow down processing by @ctrlc03 in #1168
  • refactor(nonqv): optimize tally votes non qv circuit and contracts by @ctrlc03 in #1174
  • refactor(contracts): add virtual to functions which could be overridden by @ctrlc03 in #1192
  • refactor(contracts): add audit auggestions by @ctrlc03 in #1204
  • refactor(contracts): revisit functions visibility and inheritance by @ctrlc03 in #1210
  • refactor(contracts): add public to Tally.isTallied by @ctrlc03 in #1219
  • refactor(crypto): modify genPrivKey to generate a random seed by @ctrlc03 in #1175

Fix

  • Security audit 1 by @chaosma in #659
  • security audits 2 by @chaosma in #646
  • Fix: return new poll address by @bibitto in #725
  • fix(ci) - remove unsupported node versions from workflows and speed things up by @ctrlc03 in #775
  • fix(cli) - fix incosistencies on return codes by @ctrlc03 in #766
  • fix(contracts) - add onlyOwner to deployPoll by @ctrlc03 in #765
  • fix(cli) - fix wrong condition check in contracts deployment by @ctrlc03 in #763
  • refactor: fix ESLint issues by @baumstern in #813
  • fix(cli): ui and documentation fixes by @ctrlc03 in #876
  • fix(cli): check that the subsidy vk is set by @ctrlc03 in #908
  • fix(signups): ensure we account for the blank state leaf by @ctrlc03 in #948
  • fix(test-cli): test fix by @ctrlc03 in #955
  • fix(publish): ensure we commit unstaged files first by @ctrlc03 in #994
  • fix(cli): remove files property from package.json by @0xmad in #1025
  • fix(cli): add env initialization for hardhat conifg by @0xmad in #1027
  • fix(circuits): replace execSync with execFileSync by @0xmad in #1029
  • fix(publish): ensure we publish the correct files by @ctrlc03 in #1042
  • fix(fetch): fix bugs related to logs fetching by @ctrlc03 in #1050
  • fix(cli): prioritize contract addresses params by @ctrlc03 in #1049
  • fix(publish): ensure test packages import exact version by @ctrlc03 in #1056
  • fix(build): fix bug that prevented c witness from being compiled by @ctrlc03 in #1070
  • fix(message-batch-index): remove redundant check by @ctrlc03 in #1072
  • fix(cli): remove hardcoded gas limit from signup and publish by @ctrlc03 in #1087
  • fix(cli): remove redundant local check for poll address by @ctrlc03 in #1088
  • fix: dark mode search result by @kittybest in #1092
  • fix(crypto): get rid of potential prototype polution by @0xmad in #1093
  • fix(integrationTest): remove extra blank line by @kittybest in #1104
  • fix(contracts): save numSignups after merging maciStateAq inside the Poll contract by @ctrlc03 in #1101
  • fix(tests): fix ceremony params nightly workflow and convert to ts by @ctrlc03 in #1108
  • fix(cli): give priority to gatekeeper and voice credit proxy args by @ctrlc03 in #1123
  • fix(contracts): fix wrong tally processing check by @ctrlc03 in #1139
  • fix(tests): remove wrong chai matcher from integrationTests by @ctrlc03 in #1193
  • fix(circuits): enforce use of stateIndex from message by @ctrlc03 in #1170
  • fix(circuits): ensure we account for correct num signups in messageValidator by @ctrlc03 in #1200
  • fix(contracts): enforce msgType = 1 for vote messages at the contract level by @ctrlc03 in #1201
  • fix(contracts): prevent user DoS the stateAq tree merging by @ctrlc03 in #1218
  • fix(cli): run all the tests for package by @0xmad in #1222
  • fix(topup): check valid new state leaf balance by @ctrlc03 in #1225

Chore

  • chore(maci-cli): check hardhat config file by @baumstern in #667
  • Support circom > v2.0.7 by @baumstern in #682
  • ci: update the triggers to reflect latest branching strategy by @baumstern in #636
  • Test case to show anyone can deploy poll by @yuetloo in #747
  • Npm audit fix by @samajammin in #806
  • deps(testing) - consolidate testing frameworks across the project by @ctrlc03 in #819
  • Add clean script by @samajammin in #824
  • chore: add lint-staged to pre-commit hook for automatic ESLint fix by @baumstern in #833
  • chore: add .editorconfig and Prettier for code consistency by @baumstern in #834
  • Add zkeys from 'download-zkeys' script to gitignore by @samajammin in #821
  • chore: linter by @0xmad in #854
  • chore: update ptauFiles URLs by @baumstern in #861
  • fix(optimisedmt) - update package to the latest version and generate the correct d.ts file by @ctrlc03 in #875
  • chore(contract): apply linter for deploy scripts and contracts by @0xmad in #873
  • chore(domainobjs): apply linter rules and fixes by @0xmad in #882
  • chore(core): publish a declaration file by @baumstern in #879
  • chore(repo): add contributing guide, code of conduct, issue and pr templates by @ctrlc03 in #867
  • chore(intergationTests): apply linter for integration tests package by @0xmad in #887
  • chore(cz): update commitizen (cz) and add scripts around it by @ctrlc03 in #868
  • chore(website): apply linter for website and remove unused packages by @0xmad in #888
  • ci: update npm publish workflow by @baumstern in #889
  • chore(circuits): add test file routes to circuit test commands by @kittybest in #895
  • chore(repo): branch consolidation by @ctrlc03 in #899
  • chore(circuits): integrate linter by @0xmad in #945
  • chore(core): integrate linter by @0xmad in #946
  • chore(cli): integrate linter by @0xmad in #950
  • chore(contracts): enable linter by @0xmad in #951
  • chore: linter unification by @0xmad in #958
  • chore: add types check by @0xmad in #959
  • chore: bundle size optimizations by @0xmad in #961
  • chore: add dependabot and codeowners by @0xmad in #965
  • chore: ignore dependabot commit messages for linting by @0xmad in #972
  • chore(deps): update project dependencies and remove redundant ones by @ctrlc03 in #963
  • chore(cli): optimize bundle size by @0xmad in #974
  • chore(publish): fix publishing scripts to publish contracts with ceremony params by @ctrlc03 in #984
  • chore(publishing): remove bash script for empty ballot roots contract by @ctrlc03 in #989
  • chore: enable codeql and workflows cleanup by @0xmad in #1007
  • chore: use pnpm instead of npx by @samajammin in #1014
  • chore(contracts): add gas reporter to hardhat config by @ctrlc03 in #1017
  • chore(cli): unify publish arg type by @ctrlc03 in #1058
  • chore(poll): unify pollId type by @ctrlc03 in #1057
  • chore: add slither github action by @0xmad in #1095
  • chore(contract): add deploy tasks for maci by @0xmad in #1106
  • chore(deps): update circomkit to latest version and add console logs by @ctrlc03 in #1107
  • chore(contract): add contract verification task by @0xmad in #1122
  • chore(core): add quiet flag to process messages to log errors by @ctrlc03 in #1138
  • chore(contract): add deploy script for eas gatekeeper by @0xmad in #1142
  • chore(contracts): deploy poll by @0xmad in #1166
  • chore(contracts): add merge signups and messages task by @0xmad in #1167
  • chore(contracts): add proof generation for task coordinator by @0xmad in #1172
  • chore(cli): prepare cli package for web apps by @0xmad in #1188
  • chore(cli): support install for web apps by @0xmad in #1190
  • chore(circuits): remove todo messages by @ctrlc03 in #1205
  • chore(contracts): export deployContractsWithLinkedLibraries by @ctrlc03 in #1229

Docs

New Contributors

Full Changelog: v1.1.1...v1.2.0