Open ilhanu opened 2 years ago
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.
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)
All the above should be in an Asset management pallet that will be extended in the Future. management of an asset includes:
conviction-voting_pallet
or democracy_pallet
)conviction-voting_pallet
or democracy_pallet
)treasury_pallet
)treasury_pallet
)Later the same pallet will also manage rent payment, and additional representative tasks.
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:
NftItemId
to votingWeights. @Kazu suggested something about converting the asset shares to weight. With conviction voting disabled for now.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:
proposeRepresentative
allows one of the owners to select and appoint a representative. This is a one time action and you can't select multiple representatives. Runtime of max 3 epoch ( configurable)NftItemId
struct for therepresentative
andtenant
.Features for the representative:
spendProposal
for the representative to propose, this goes immediately to the owners of the corresponding asset. The proposal is for maintenance of the asset or improvements and can only be created by the representative of the asset.Note: A representative can represent multiple assets