Fair-Squares / fair-squares

Fair housing for all
http://www.fair-squares.nl
Apache License 2.0
16 stars 8 forks source link

Implement owners-vote governance structure #199

Open ilhanu opened 1 year ago

ilhanu commented 1 year ago

We want to owners (shareholders) to be able to vote on anything regarding governance of the asset. This is can be maintenance, proposals if a tenant should be allowed or selecting and appointing a representative. Utilising the democracy and treasury frame pallet with limited features. We want to use the following function proposal, voting, tallying and executing.

Implementation:

Share conversion and generic implementation:

  1. We need to convert the shares of the assets corresponding to the NftItemId to votingWeights. @Kazu suggested something about converting the asset shares to weight. With conviction voting disabled for now.
  2. We need to re-use the same weights for tallying and processing the result.

Any proposal, vote, tallying and execution should be done with the above logic from shares to weights. this will be the basis of the governance structure for the asset.

Features:

Features for the representative:

Note: A representative can represent multiple assets

ndkazu commented 1 year ago

Share conversion

One possible way is to use the conviction_vote feature of the democracy pallet. The investor share needs to be converted into a balance that will be transfered to the asset virtual account after voting==> Voting will therefore also contribute to increase the maintenance fund of the asset. Implementation Method: The maximum conviction amount is fixed in the runtime, and used/combined with the investor share to calculate respective investors vote_conviction. This conviction_balance is then used in the democracy pallet, and sent to the virtual_account. Investors will have no way to modify the amount of their conviction, unless they buy additional shares from another fellow investor of course.

ilhanu commented 1 year ago

That sounds good! Currently I think for democracy conviction is set to 0.1x, maybe we can fix this do 1x, so it's displayed and converted right. Further I think the locking of the vote with 1x can also be disabled in the runtime, as it doesn't apply to the owners vote, also not to the investors vote (1 vote per investor id)

ndkazu commented 1 year ago

Asset management Pallet

All the above should be in an Asset management pallet that will be extended in the Future. management of an asset includes:

Later the same pallet will also manage rent payment, and additional representative tasks.