Our aim is to introduce DAO functionality to Gnolang through this project.
To run the tests run
gnodev test r/gnodao --verbose --root-dir ../gno
Here are the steps to deploy a contract with a quorum:
- Firstly, you can deploy a contract.
- This contract has a quorum, which is essentially an array of addresses and an agreement ratio that can be updated. You can add new members, remove members, or change the quorum ratio.
- One member of the quorum can propose a transaction.
- Each member of the quorum is required to make a transaction to vote yes for the proposed transaction ID.
- If the number of yes votes exceeds the quorum, one member can execute the transaction.
- If the number of yes votes is less than the quorum, one member can close the proposal. However, this step can be inconvenient. Instead, we can set an expiration period for each proposal when we submit one. If block.timestamp is greater than expiration, no one can vote or execute it.