mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-27 16:55:21 +00:00
1.0 KiB
1.0 KiB
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.
Committee members vote 'yes' on a proposal using a MsgVote
// 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"`
}
State Modifications
- Create a new
Vote
- If the proposal is over the threshold:
- Enact the proposal (proposals may cause state modifications)
- Delete the proposal and associated votes