-
Notifications
You must be signed in to change notification settings - Fork 359
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
Multisig handles changes to group membership #141
Comments
@alpe Also asking for your feedback here. Not about code, but about the design choice. I know you implemented this for the governance/voting contracts in weave. And it kept multiple versions of the voting set. Of the two complex solutions proposed:
Which one do you prefer and why? (I forget what thinking we ended up with before, and maybe you preferences have changed). Also in reference to the other requested review: #140 (comment) we see how the first "simple" solution depends on this being a hook (not a listener) and explicitly altering the behavior of the group contract based on our business logic. |
When using the state at "beginning of voting" it has the benefit that all numbers are set and transparent. You may possibly end an election early when a threshold is reached or can not be reached anymore. This is not an option though if votes can be changed within the voting period. |
Aren't these two behaviours inconsistent / contradictory? I mean, why update when they already voted, but refrain to do so when they haven't voted yet? |
You are right. The first of those two should be removed (it belongs to the section belong, seems to be there twice) |
The simple solution was completed in #157 which demonstrates proper usage of hooks. Working on the more advanced "lazy snapshot" of beginning of vote |
This should close it entirely #160 And I think I got this down very efficiently: one read/write per diff on update, one extra read on voting, not O(proposals) at all. |
Builds on #80, #139 and #140
Let's build a properly flexible multisig that is robust to changes in the underlying group at any time. I will propose some approaches here, all of them require some sort of event notification on group changes - #140
Simple but limited: (please implement one of these two first to ensure the system works)
Note that these (as well as the ones below) need a quick way to find all currently open proposals - maybe a secondary index? or clever use of the primary index
Complex: (Let's discuss these in the comments to decide)
Count all votes with state at beginning of voting period
cw3-flex-multisig
. When the member votes, the weight there overrides the current weight in the group.Count all votes with state at end of voting period
The text was updated successfully, but these errors were encountered: