Fix rounding error in Election.sol#2540
Merged
celo-ci-bot-user merged 7 commits intomasterfrom Jan 28, 2020
Merged
Conversation
nategraf
approved these changes
Jan 24, 2020
nategraf
left a comment
There was a problem hiding this comment.
One important change. Otherwise, looks good! 👍
Co-Authored-By: Victor "Nate" Graf <victor@celo.org>
Codecov Report
@@ Coverage Diff @@
## master #2540 +/- ##
==========================================
+ Coverage 73.26% 73.58% +0.32%
==========================================
Files 555 555
Lines 13793 13816 +23
Branches 1722 1425 -297
==========================================
+ Hits 10105 10167 +62
+ Misses 3407 3369 -38
+ Partials 281 280 -1
Continue to review full report at Codecov.
|
aaronmgdr
added a commit
that referenced
this pull request
Jan 28, 2020
* master: 🧹Web cleanup (readme + static dir) (#2562) Add readable proposals to governance:view command (#2545) Add explicit gas to exchange transactions to prevent errors (#2552) Fix off-by-one error in attributing signatures to blocks in CLI (#2559) ✅ add test for phone Input component (#2554) Add Youtube to Footer + (#2556) Fix rounding error in Election.sol (#2540) [Wallet] Bump @celo/client to 0.0.266 (#2551) [Wallet] E2E test improvements (#2542) Deployed integration (#2550) do not fetch affiliates (#2508) Added more CLI checks for registering validators and groups (#2491) Micro Improvement to web tests (#2527) [Wallet] Prompt users with connectivity issues to switch to forno (#2526) cli: Fix voter rewards presentation (#2543) [Wallet] Fix missing spanish translation (#2539) Downtime slashing when epoch changes (#2436)
nategraf
pushed a commit
that referenced
this pull request
Feb 20, 2020
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes a rounding error that prevents users from potentially revoking all of their active votes. In some cases, the user may try to revoke all of their active votes, but due to rounding errors
getActiveVotesUnitsDeltareturns one fewer than their total active vote units. To avoid this, a special case is added for when the value being revoked is exactly equal to the number of active votes for the user.Note that this does not address all forms of rounding errors with respect to active votes. There still may be cases where, for example, the total number of active votes does not equal the sum of active votes over all (voter, group) pairs.
Tested
Reproduced the issue in unit tests by distributing rewards after making active votes. Confirmed that this fix solved it.
Other changes
None
Related issues
Backwards compatibility
Yes