-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: rebase anon poll joining with dev #1944
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Slither found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. Please take a look again at this and ensure that we are not reverting features/fixes/refactoring introduced since the feat/anon-poll-joining branch was merged. For instance:
- circuit templates returning certain output signals to prevent double checks
- max vote option
- MACI.deployPoll storing all contracts (poll, mp, tally) rather than just poll
packages/circuits/circom/utils/non-qv/stateLeafAndBallotTransformer.circom
Outdated
Show resolved
Hide resolved
4b6f410
to
4dde084
Compare
459e478
to
ee323ce
Compare
Pull request was converted to draft
ee323ce
to
cac7ea8
Compare
* feat(poll): add chain hash features BREAKING CHANGE: message processing is changed * fix(ipoll): add missing parameter * fix(poll-tests): add missing parameter maxMessagebatchSize * feat(poll.ts): add chain hash updating * test(poll tests): add test for checking chain hash computation * feat(poll.ts): add batch hashes array computation * feat(poll.sol): pad zeroes to the maximum size of batch * feat(messageprocessor): update process messages to use chain hash * refactor(vkregistry): refactor function call * feat(processmessages.circom): add chainHash feature in circuits and test for that * test(processmessages): rearrange test for key-change * refactor(mergemessages): refactor functions calls which include mergemessages * refactor(mergemessages): add some more changes about functions call which include mergemessages * test(all tests): fixing tests after refactoring code * refactor(accqueue): remove all calls for accqueue * fix(currentmessagebatchindex): fix message batch indexing * refactor(circuit tests): refactor code for circuit testing * test(ceremonyparams.test): correct constants for CeremonyParams test * perf(processmessages.circom + contracts): optimize last batch padding, remove unused inputs * docs(padlastbatch method): update doc comment * docs(poll.ts): remove stale comments * docs(test comments): fix typos * ci(treedepths mock): modify interface for mocked function * fix(ceremony params test): fix circuit inputs * test(messagevalidator): fix function calls for messagevalidator circuit in tests * chore(comments): fix unusefull comments * refactor(poll.sol): replace external contracts with maci only * perf(messageprocessor.sol): hardcode initialization for batchHashes array * docs(comments): fix some more comments * test(test for pr checks): correct some of tests for PR checks * ci: 🎡 renamed old ProcessMessages_10-2-1-2_test * ci: 🎡 correct rapidsnark/build/prover path * style(reviews): solve some reviews for merging * refactor(messageaqq): remove more message merging and message aqq * style(messageaqq): remove more message merging and message aqq * refactor(messageaqq): remove message aqq from subgraph * test(coordinator): hide NOT_MERGED_MESSAGE_TREE error * test(coordinator): fix test about message merging * test(proveonchain): change chainHash calculation * test(proveonchain): fix chainHashes declaration * test(proveonchain): fix chainHash calculation * test(proveonchain): fix chainHashes calculations * test(proveonchain): fix chainHashes calculation * test(proveonchain): fix loop limit * style(review comments): resolve some of review comments * style(review comments): resolve some of review comments * test(lint:ts): fix e2e test because of lint:ts check * docs(wrong changes): fix wrong changes about documentation that is not in our scope * refactor(batchsizes): change batchSizes struct with messageBatchSize variable * refactor(contracts): rollback to provide external contract references * docs(messageprocessor.sol): fix typo * refactor(messagebatchsize): chenge messageBatchSize location from Params.sol to Poll.sol * refactor(maxmessages): remove maxMessages from maxValues * refactor(sltimestemp): remove slTimestamp from circuits * refactor(review comments): resolve more review comments * fix(subgraph): fix bug about maxVoteOptions dunction call * fix(sltimestamp): fix test for removing slTimestap signal * refactor(promise.all): refactor promise.all for only one async call * fix(subgraph): try to fix subgraph build * revert(.nx folder): remove .nx folder from cli folder --------- Co-authored-by: radojevicMihailo <[email protected]> Co-authored-by: Aleksandar Veljković <[email protected]> Co-authored-by: Boris Cvitak <[email protected]>
* feat(poll): add chain hash features BREAKING CHANGE: message processing is changed * fix(ipoll): add missing parameter * fix(poll-tests): add missing parameter maxMessagebatchSize * feat(poll.ts): add chain hash updating * test(poll tests): add test for checking chain hash computation * feat(poll.ts): add batch hashes array computation * feat(poll.sol): pad zeroes to the maximum size of batch * feat(messageprocessor): update process messages to use chain hash * refactor(vkregistry): refactor function call * feat(processmessages.circom): add chainHash feature in circuits and test for that * test(processmessages): rearrange test for key-change * refactor(mergemessages): refactor functions calls which include mergemessages * refactor(mergemessages): add some more changes about functions call which include mergemessages * test(all tests): fixing tests after refactoring code * refactor(accqueue): remove all calls for accqueue * fix(currentmessagebatchindex): fix message batch indexing * refactor(circuit tests): refactor code for circuit testing * test(ceremonyparams.test): correct constants for CeremonyParams test * perf(processmessages.circom + contracts): optimize last batch padding, remove unused inputs * docs(padlastbatch method): update doc comment * docs(poll.ts): remove stale comments * docs(test comments): fix typos * ci(treedepths mock): modify interface for mocked function * fix(ceremony params test): fix circuit inputs * test(messagevalidator): fix function calls for messagevalidator circuit in tests * chore(comments): fix unusefull comments * refactor(poll.sol): replace external contracts with maci only * perf(messageprocessor.sol): hardcode initialization for batchHashes array * docs(comments): fix some more comments * test(test for pr checks): correct some of tests for PR checks * ci: 🎡 renamed old ProcessMessages_10-2-1-2_test * ci: 🎡 correct rapidsnark/build/prover path * style(reviews): solve some reviews for merging * refactor(messageaqq): remove more message merging and message aqq * style(messageaqq): remove more message merging and message aqq * refactor(messageaqq): remove message aqq from subgraph * test(coordinator): hide NOT_MERGED_MESSAGE_TREE error * test(coordinator): fix test about message merging * test(proveonchain): change chainHash calculation * test(proveonchain): fix chainHashes declaration * test(proveonchain): fix chainHash calculation * test(proveonchain): fix chainHashes calculations * test(proveonchain): fix chainHashes calculation * test(proveonchain): fix loop limit * style(review comments): resolve some of review comments * style(review comments): resolve some of review comments * test(lint:ts): fix e2e test because of lint:ts check * docs(wrong changes): fix wrong changes about documentation that is not in our scope * refactor(batchsizes): change batchSizes struct with messageBatchSize variable * refactor(contracts): rollback to provide external contract references * docs(messageprocessor.sol): fix typo * refactor(messagebatchsize): chenge messageBatchSize location from Params.sol to Poll.sol * refactor(maxmessages): remove maxMessages from maxValues * refactor(sltimestemp): remove slTimestamp from circuits * refactor(review comments): resolve more review comments * fix(subgraph): fix bug about maxVoteOptions dunction call * fix(sltimestamp): fix test for removing slTimestap signal * refactor(promise.all): refactor promise.all for only one async call * fix(subgraph): try to fix subgraph build * revert(.nx folder): remove .nx folder from cli folder * fix(merge): tmp-anon-poll-joining merge * fix(merge): tmp-anon-poll-joining merge * test(ceremonyparams): add poll joining in the test * test(processmessages): add poll joining for the test without key-change test * test(polljoining): add poll joining in the test * test(tallyvotes): add poll joining in the test * test(core): add joinPoll function in tests * style(typo): inclusion proof * style(todo): remove finished todo * style(merge): after merge style * style(return): inline return * style(eslint): remove unnecessary eslint-disable * refactor(joiningcircuitargs): add interface IJoiningCircuitArgs * refactor(joinpoll): async read state file * style(genmacisignup): add function description * refactor(gensignuptree): add IGenSignUpTreeArgs interface * style(polljoining): remove extra inlcudes and comments * feat(pollvkkeys): init * feat(vkregistry): separate set functions (process/tally/poll) * test(pollvkkey): adjust test to setPollVkKey * refactor(vkregistry): use setVerifyingKeys in setVerifyingKeysBatch * refactor(poll): add verifier and vkRegystry in constructor * refactor(poll): put verifier and vkRegistry into extContracts * test(core e2e): fix sanity checks test for incorrect signature * refactor(test): removing only from tests * refactor(macistatetree): use LeanIMT instead of QuinTree * refactor(crypto): export hashLeanIMT from index * feat(joinpoll): use genSignUpTree instead of genMaciStateFromContract * feat(joinpoll cli): add optional parameters * test(coordinator): add pollJoiningZkeyPath in app.test * refactor(joinpoll): prettier * test(coordinator): add joinPoll * fix(poll): joiningCircuitInputs with correct siblings, indices and actualStateTreeDepth * test(integration): add joinPoll * build(coordinator): add COORDINATOR_POLL_ZKEY_NAME * refactor(mergestate): remove Maci from MergeState * test(e2e): test:e2e add joinPoll * test(e2e): test:keyChange add joinPoll * docs(complete documentation): complete documentation of the new workflow * docs(documentation): add v3 docs, revert v2 docs * style(docs): prettier * refactor(joinpoll): add generateAndVerifyProof and getStateIndexAndCreditBalance * docs(blogpost): blogpost cuvering the latest updates * docs(blogpost): kudos to our team members! * style(prettier): blog * fix(joinpoll): index value of the user in the state tree leaves * docs(blog): remove poll-joining --------- Co-authored-by: radojevicMihailo <[email protected]> Co-authored-by: Aleksandar Veljković <[email protected]>
- [x] Add rebase missing parts - [x] Remove sha256 input hash
- [x] Fix hardhat tasks - [x] Fix tests for circuits
- [x] Add poll contracts for poll deployment - [x] Prevent double calculation of state leaf index - [x] Prevent double calculation of vote option index - [x] Move poll joining circuit to anon folder
- [x] Get rid of tally and message processor addresses params for cli - [x] Return empty ballot roots as param
d5b170b
to
3139d32
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
Description
Additional Notes
Will add later as separate PRs:
Related issue(s)
Related to #1838
Confirmation