Proto: split validation and application of voting operations
Context
Implement the validation of voting operations (proposals and ballot) as part of the %Pipelining project.
Before tackling the separation of validation from application, we rework the errors related to voting operations, and move most of the voting operation logic to amendment.ml. We also introduce a semantic change: a delegate can no longer submit the same proposal multiple times; this prevents the replay of proposals operations.
See individual commit descriptions for more details.
This MR depends on !6046 (merged), which introduces additional integration tests for voting operations.
Other related MRs:
-
!5557 (merged): add
validate_operation.mland handle the validation of manager operations - !5849 (merged): validation of anonymous operations
- !5927 (merged): validation of consensus operations
Fixes #3401 (closed)
Manually testing the MR
Check the CI, and more specifically, run the integration tests on voting operations:
dune exec src/proto_alpha/lib_protocol/test/integration/operations/main.exe -- test "^voting$"
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) - [N/A] Document any change to the user interface, including configuration parameters (see node configuration)
-
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR
Edited by Diane Gallois-Wong