Token & Hybrid Voting - #915
Open
kronosapiens wants to merge 3 commits into
Open
kronosapiens wants to merge 3 commits into
kronosapiens wants to merge 3 commits into
Conversation
kronosapiens
force-pushed
the
feat/all-voting
branch
from
January 5, 2021 00:23
ed9de93 to
b8d017e
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
2 times, most recently
from
January 15, 2021 23:43
c116dac to
cb36825
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
2 times, most recently
from
January 25, 2021 02:38
e07d9ce to
bffc701
Compare
Merged
kronosapiens
force-pushed
the
feat/all-voting
branch
8 times, most recently
from
February 27, 2021 22:22
bb9cfd2 to
c171821
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
from
March 1, 2021 15:53
c171821 to
f123b32
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
from
April 1, 2021 16:24
421968b to
593483a
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
from
April 9, 2021 00:32
593483a to
af7f93b
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
from
April 22, 2021 22:04
7b6366c to
f7e85c0
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
from
May 4, 2021 23:42
f7e85c0 to
17edcc4
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
from
August 3, 2021 21:31
6a6e5da to
bd68fe3
Compare
Contributor
Author
kronosapiens
force-pushed
the
feat/all-voting
branch
2 times, most recently
from
August 16, 2021 20:28
1a26a6d to
a24be9b
Compare
Contributor
Author
|
Following on the discussion in #product-private, we will proceed by disabling the fast-forward functionality for token & hybrid votes, on the grounds that these votes are intended to be infrequent and high-stakes, making the fast-forward functionality (say that five times fast) less important. |
Contributor
Author
|
This PR has been updated with the feature changes we've discussed and is ready for review. I would suggest not doing anything about external escalation until later on, once we've had a chance to discuss the functionality in some detail and think about the arguments, etc. Once I've gotten a rough approval for the PR as-is, I'll restore the original VotingReputation contract as we've discussed. |
kronosapiens
force-pushed
the
feat/all-voting
branch
3 times, most recently
from
October 12, 2021 10:31
a3e6cd3 to
af200a0
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
6 times, most recently
from
October 27, 2021 10:55
54e78d2 to
29d748a
Compare
kronosapiens
force-pushed
the
feat/all-voting
branch
from
October 28, 2021 15:35
29d748a to
b905d04
Compare
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.
Closes #90
This PR introduces two new extensions:
VotingToken.solandVotingHybrid.sol. As expected,VotingTokenimplements token-based voting, whileVotingHybridimplements joint reputation- and token-based voting, defined as requiring both reputation- and token-weighted votes to pass.VotingToken
VotingTokenimplements similar voting logic toVotingReputation, with the material difference being that token balances are used to determine "influence", rather than domain-specific reputation balances. This difference has a number of implications:VotingTokenonly supports root-level motions. Note that you can still hold a token vote on an issue pertaining to a domain (such as an expenditure, or to do arbitration) but the vote still "takes place" in the root.VotingTokenand enable code re-use between token and reputation voting, "reputation" and "token balances" have been abstracted into "influence". All voting implementations must implement agetInfluencefunction which is called by the base contract when tabulating votes / calculating rewards.** Note that technically, the restriction achieves little, since there is nothing preventing a bad actor from creating a separate colony to grief holders of a token by placing arbitrary locks. As a friction, however, it should reduce the incidence of attack.
VotingHybrid
Hybrid voting is implemented as a voting contract which uses two influence values instead of one. Otherwise, it behaves very similarly to Token voting, in that motions are root-level only and involve placing locks on the tokens.