-
Notifications
You must be signed in to change notification settings - Fork 1
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
Possible for votes to get stuck in locked state if proposal fails to execute #7
Comments
2. Adds a fix for https://github.com/Clarity-Innovation-Lab/executor-dao/issues/4 whereby votes can get stuck as locked
PR 5 includes a fix for this issue. |
@MarvinJanssen this issue about the potential for votes to get trapped if execute fails is totally separate from the transfer-lock issue - apologies for the confusion - i closed that PR as this is more important to resolve. You pointed out a better fix for this issue would be to change reclaim-votes rather than the conclude method. e.g.
I much prefer this to the change I made to
|
I don't think we need a grace period because reclaiming votes does not change the There is another potential issue worth considering. I had written it down somewhere but cannot find it. In short, in the current design a proposal may fail to execute, which means that |
See your point about the grace period! I'm coming back to my initial view that the change should be in conclude as solving it in reclaim still leaves the proposal in an undefined state. If the proposal errors then the vote should be considered to have not passed, the ballot is marked concluded and everyone can reclaim their votes. This would be equivalent to having a re-run of the same vote with an updated proposal. Ideally we'd have a separate state to mark this something like the |
I think what is in order here is to come up with a set of expected / general proposals and see in which ways they could error out, and how that could affect the operation of the DAO. I am not against a one-shot Should we involve the community in coming up with, say, ten common proposals? Then we can evaluate their success and error states and see in which cases a one-shot |
Execution failure in a proposal means the conclude method fails and votes cannot be reclaimed.
It's possible for this situation to arise after a change in state of the DAO and it can't necessarily be know from looking at the code in the execute whether or not this will arise.
For a simple example say proposal a burns a members EDG balance and then proposal b tries to transfer some of their balance and a is run shortly before b. In this situation Proposal b will fail to execute in
conclude
and the proposal can neither be voted down or concluded and all votes in the proposal are stuck.Test Case
Branch
feature/toggle-membership-type
See ede000-governance-token-toggle-transfer_test :
Ensure DAO can't transfer EDG if token is locked
Suggestion
make
(try! (contract-call? .executor-dao execute proposal tx-sender))
catch the error and conclude the vote as unsuccessful.
The text was updated successfully, but these errors were encountered: