Skip to main content

Messages

Committee members submit proposals using a MsgSubmitProposal

// MsgSubmitProposal is used by committee members to create a new proposal that they can vote on.
type MsgSubmitProposal struct {
PubProposal PubProposal `json:"pub_proposal" yaml:"pub_proposal"`
Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"`
CommitteeID uint64 `json:"committee_id" yaml:"committee_id"`
}

State Modifications

  • Generate new ProposalID
  • Create new Proposal with deadline equal to the time that the proposal will expire.

Valid votes include 'yes', 'no', and 'abstain'.

// MsgVote is submitted by committee members to vote on proposals.
type MsgVote struct {
ProposalID uint64 `json:"proposal_id" yaml:"proposal_id"`
Voter sdk.AccAddress `json:"voter" yaml:"voter"`
VoteType VoteType `json:"vote_type" yaml:"vote_type"`
}

State Modifications

  • Create a new Vote
  • When the proposal is evaluated:
    • Enact the proposal (passed proposals may cause state modifications)
    • Delete the proposal and associated votes