Documentation ¶
Overview ¶
nolint
Index ¶
- Constants
- Variables
- func ActiveProposalByTimeKey(endTime time.Time) []byte
- func ActiveProposalQueueKey(proposalID uint64, endTime time.Time) []byte
- func DepositKey(proposalID uint64, depositorAddr sdk.AccAddress) []byte
- func DepositsKey(proposalID uint64) []byte
- func InactiveProposalByTimeKey(endTime time.Time) []byte
- func InactiveProposalQueueKey(proposalID uint64, endTime time.Time) []byte
- func IsValidProposalType(ty string) bool
- func ParamKeyTable() params.KeyTable
- func ProposalKey(proposalID uint64) []byte
- func RegisterCodec(cdc *codec.Codec)
- func RegisterProposalType(ty string)
- func RegisterProposalTypeCodec(o interface{}, name string)
- func SplitActiveProposalQueueKey(key []byte) (proposalID uint64, endTime time.Time)
- func SplitInactiveProposalQueueKey(key []byte) (proposalID uint64, endTime time.Time)
- func SplitKeyDeposit(key []byte) (proposalID uint64, depositorAddr sdk.AccAddress)
- func SplitKeyVote(key []byte) (proposalID uint64, voterAddr sdk.AccAddress)
- func SplitProposalKey(key []byte) (proposalID uint64)
- func ValidProposalStatus(status ProposalStatus) bool
- func ValidVoteOption(option VoteOption) bool
- func ValidateAbstract(c Content) error
- func ValidateGenesis(data GenesisState) error
- func VoteKey(proposalID uint64, voterAddr sdk.AccAddress) []byte
- func VotesKey(proposalID uint64) []byte
- type Content
- type Deposit
- type DepositParams
- type Deposits
- type GenesisState
- type Handler
- type MsgDeposit
- type MsgSubmitProposal
- type MsgVote
- type Params
- type Proposal
- type ProposalQueue
- type ProposalStatus
- func (status ProposalStatus) Format(s fmt.State, verb rune)
- func (status ProposalStatus) Marshal() ([]byte, error)
- func (status ProposalStatus) MarshalJSON() ([]byte, error)
- func (status ProposalStatus) String() string
- func (status *ProposalStatus) Unmarshal(data []byte) error
- func (status *ProposalStatus) UnmarshalJSON(data []byte) error
- type Proposals
- type QueryDepositParams
- type QueryProposalParams
- type QueryProposalsParams
- type QueryVoteParams
- type SoftwareUpgradeProposal
- func (sup SoftwareUpgradeProposal) GetDescription() string
- func (sup SoftwareUpgradeProposal) GetTitle() string
- func (sup SoftwareUpgradeProposal) ProposalRoute() string
- func (sup SoftwareUpgradeProposal) ProposalType() string
- func (sup SoftwareUpgradeProposal) String() string
- func (sup SoftwareUpgradeProposal) ValidateBasic() error
- type TallyParams
- type TallyResult
- type TextProposal
- type Vote
- type VoteOption
- type Votes
- type VotingParams
Constants ¶
const ( MaxDescriptionLength int = 5000 MaxTitleLength int = 140 )
const ( EventTypeSubmitProposal = "submit_proposal" EventTypeProposalDeposit = "proposal_deposit" EventTypeProposalVote = "proposal_vote" EventTypeInactiveProposal = "inactive_proposal" EventTypeActiveProposal = "active_proposal" AttributeKeyProposalResult = "proposal_result" AttributeKeyOption = "option" AttributeKeyProposalID = "proposal_id" AttributeKeyVotingPeriodStart = "voting_period_start" AttributeValueCategory = "governance" AttributeValueProposalDropped = "proposal_dropped" // didn't meet min deposit AttributeValueProposalPassed = "proposal_passed" // met vote quorum AttributeValueProposalRejected = "proposal_rejected" // didn't meet vote quorum AttributeValueProposalFailed = "proposal_failed" // error on proposal handler )
Governance module event types
const ( ModuleName = protocol.GovModuleName // StoreKey is the store key string for gov StoreKey = ModuleName // RouterKey is the message route for gov RouterKey = ModuleName // QuerierRoute is the querier route for gov QuerierRoute = ModuleName // DefaultParamspace default name for parameter store DefaultParamspace = ModuleName )
const ( TypeMsgDeposit = "deposit" TypeMsgVote = "vote" TypeMsgSubmitProposal = "submit_proposal" TypeMsgSoftwareUpgradeProposal = "software_upgrade_proposal" )
Governance message types and routes
const ( ProposalTypeText string = "Text" ProposalTypeSoftwareUpgrade string = "SoftwareUpgrade" )
const ( QueryParams = "params" QueryProposals = "proposals" QueryProposal = "proposal" QueryDeposits = "deposits" QueryDeposit = "deposit" QueryVotes = "votes" QueryVote = "vote" QueryTally = "tally" ParamDeposit = "deposit" ParamVoting = "voting" ParamTallying = "tallying" )
query endpoints supported by the governance Querier
const (
DefaultPeriod time.Duration = time.Hour * 24 * 2 // 2 days
)
Default period for deposits & voting
Variables ¶
var ( ErrUnknownProposal = sdkerrors.New(ModuleName, 1, "unknown proposal") ErrInactiveProposal = sdkerrors.New(ModuleName, 2, "inactive proposal") ErrAlreadyActiveProposal = sdkerrors.New(ModuleName, 3, "proposal already active") ErrInvalidProposalContent = sdkerrors.New(ModuleName, 4, "invalid proposal content") ErrInvalidProposalType = sdkerrors.New(ModuleName, 5, "invalid proposal type") ErrInvalidVote = sdkerrors.New(ModuleName, 6, "invalid vote option") ErrInvalidGenesis = sdkerrors.New(ModuleName, 7, "invalid genesis state") ErrNoProposalHandlerExists = sdkerrors.New(ModuleName, 8, "no handler exists for proposal type") ErrSoftwareUpgradeProposalExist = sdkerrors.New(ModuleName, 9, "software upgrade proposal exist") ErrSoftwareUpgradeInvalidVersion = sdkerrors.New(ModuleName, 10, "invalid software upgrade version") ErrSoftwareUpgradeInvalidSwitchHeight = sdkerrors.New(ModuleName, 11, "invalid software upgrade switch height") ErrSoftwareUpgradeInvalidProfiler = sdkerrors.New(ModuleName, 12, "invalid software upgrade profiler") ErrSoftwareUpgradeSwitchPeriodInProcess = sdkerrors.New(ModuleName, 13, "software upgrade already in switch period") ErrSoftwareUpgradeInvalidThreshold = sdkerrors.New(ModuleName, 14, "software upgrade Threshold should be in range [0.8, 1.0]") )
var ( ProposalsKeyPrefix = []byte{0x00} ActiveProposalQueuePrefix = []byte{0x01} InactiveProposalQueuePrefix = []byte{0x02} ProposalIDKey = []byte{0x03} DepositsKeyPrefix = []byte{0x10} VotesKeyPrefix = []byte{0x20} SoftwareUpgradeKey = []byte{0x30} SoftwareUpgradeValue = []byte{0x00} )
Keys for governance store Items are stored with the following key: values
- 0x00<proposalID_Bytes>: Proposal
- 0x01<endTime_Bytes><proposalID_Bytes>: activeProposalID
- 0x02<endTime_Bytes><proposalID_Bytes>: inactiveProposalID
- 0x03: nextProposalID
- 0x10<proposalID_Bytes><depositorAddr_Bytes>: Deposit
- 0x20<proposalID_Bytes><voterAddr_Bytes>: Voter
var ( DefaultMinDepositTokens = sdk.TokensFromConsensusPower(10) DefaultQuorum = sdk.NewDecWithPrec(334, 3) DefaultThreshold = sdk.NewDecWithPrec(5, 1) DefaultVeto = sdk.NewDecWithPrec(334, 3) )
Default governance params
var ( ParamStoreKeyDepositParams = []byte("depositparams") ParamStoreKeyVotingParams = []byte("votingparams") ParamStoreKeyTallyParams = []byte("tallyparams") )
Parameter store key
var ModuleCdc = codec.New()
ModuleCdc - generic sealed codec to be used throughout this module
Functions ¶
func ActiveProposalByTimeKey ¶
ActiveProposalByTimeKey gets the active proposal queue key by endTime
func ActiveProposalQueueKey ¶
ActiveProposalQueueKey returns the key for a proposalID in the activeProposalQueue
func DepositKey ¶
func DepositKey(proposalID uint64, depositorAddr sdk.AccAddress) []byte
DepositKey key of a specific deposit from the store
func DepositsKey ¶
DepositsKey gets the first part of the deposits key based on the proposalID
func InactiveProposalByTimeKey ¶
InactiveProposalByTimeKey gets the inactive proposal queue key by endTime
func InactiveProposalQueueKey ¶
InactiveProposalQueueKey returns the key for a proposalID in the inactiveProposalQueue
func IsValidProposalType ¶
IsValidProposalType returns a boolean determining if the proposal type is valid.
NOTE: Modules with their own proposal types must register them.
func ProposalKey ¶
ProposalKey gets a specific proposal from the store
func RegisterCodec ¶
RegisterCodec registers all the necessary types and interfaces for governance.
func RegisterProposalType ¶
func RegisterProposalType(ty string)
RegisterProposalType registers a proposal type. It will panic if the type is already registered.
func RegisterProposalTypeCodec ¶
func RegisterProposalTypeCodec(o interface{}, name string)
RegisterProposalTypeCodec registers an external proposal content type defined in another module for the internal ModuleCdc. This allows the MsgSubmitProposal to be correctly Amino encoded and decoded.
func SplitActiveProposalQueueKey ¶
SplitActiveProposalQueueKey split the active proposal key and returns the proposal id and endTime
func SplitInactiveProposalQueueKey ¶
SplitInactiveProposalQueueKey split the inactive proposal key and returns the proposal id and endTime
func SplitKeyDeposit ¶
func SplitKeyDeposit(key []byte) (proposalID uint64, depositorAddr sdk.AccAddress)
SplitKeyDeposit split the deposits key and returns the proposal id and depositor address
func SplitKeyVote ¶
func SplitKeyVote(key []byte) (proposalID uint64, voterAddr sdk.AccAddress)
SplitKeyVote split the votes key and returns the proposal id and voter address
func SplitProposalKey ¶
SplitProposalKey split the proposal key and returns the proposal id
func ValidProposalStatus ¶
func ValidProposalStatus(status ProposalStatus) bool
ValidProposalStatus returns true if the proposal status is valid and false otherwise.
func ValidVoteOption ¶
func ValidVoteOption(option VoteOption) bool
ValidVoteOption returns true if the vote option is valid and false otherwise.
func ValidateAbstract ¶
func ValidateGenesis ¶
func ValidateGenesis(data GenesisState) error
ValidateGenesis checks if parameters are within valid ranges
Types ¶
type Content ¶
type Content interface { GetTitle() string GetDescription() string ProposalRoute() string ProposalType() string ValidateBasic() error String() string }
func ContentFromProposalType ¶
func NewTextProposal ¶
type Deposit ¶
type Deposit struct { ProposalID uint64 `json:"proposal_id" yaml:"proposal_id"` // proposalID of the proposal Depositor sdk.AccAddress `json:"depositor" yaml:"depositor"` // Address of the depositor Amount sdk.Coins `json:"amount" yaml:"amount"` // Deposit amount }
Deposit defines an amount deposited by an account address to an active proposal
func NewDeposit ¶
NewDeposit creates a new Deposit instance
type DepositParams ¶
type DepositParams struct { MinDeposit sdk.Coins `json:"min_deposit,omitempty" yaml:"min_deposit,omitempty"` // Minimum deposit for a proposal to enter voting period. MaxDepositPeriod time.Duration `json:"max_deposit_period,omitempty" yaml:"max_deposit_period,omitempty"` // Maximum period for Atom holders to deposit on a proposal. Initial value: 2 months }
Param around deposits for governance
func DefaultDepositParams ¶
func DefaultDepositParams() DepositParams
DefaultDepositParams default parameters for deposits
func NewDepositParams ¶
func NewDepositParams(minDeposit sdk.Coins, maxDepositPeriod time.Duration) DepositParams
NewDepositParams creates a new DepositParams object
func (DepositParams) Equal ¶
func (dp DepositParams) Equal(dp2 DepositParams) bool
Checks equality of DepositParams
func (DepositParams) String ¶
func (dp DepositParams) String() string
type GenesisState ¶
type GenesisState struct { StartingProposalID uint64 `json:"starting_proposal_id" yaml:"starting_proposal_id"` Deposits Deposits `json:"deposits" yaml:"deposits"` Votes Votes `json:"votes" yaml:"votes"` Proposals []Proposal `json:"proposals" yaml:"proposals"` DepositParams DepositParams `json:"deposit_params" yaml:"deposit_params"` VotingParams VotingParams `json:"voting_params" yaml:"voting_params"` TallyParams TallyParams `json:"tally_params" yaml:"tally_params"` }
GenesisState - all staking state that must be provided at genesis
func DefaultGenesisState ¶
func DefaultGenesisState() GenesisState
DefaultGenesisState gets raw genesis raw message for testing
func NewGenesisState ¶
func NewGenesisState(startingProposalID uint64, dp DepositParams, vp VotingParams, tp TallyParams) GenesisState
NewGenesisState creates a new genesis state for the governance module
func (GenesisState) Equal ¶
func (data GenesisState) Equal(data2 GenesisState) bool
Equal- Checks whether 2 GenesisState structs are equivalent.
func (GenesisState) IsEmpty ¶
func (data GenesisState) IsEmpty() bool
IsEmpty - Returns if a GenesisState is empty or has data in it
type MsgDeposit ¶
type MsgDeposit struct { ProposalID uint64 `json:"proposal_id" yaml:"proposal_id"` // ID of the proposal Depositor sdk.AccAddress `json:"depositor" yaml:"depositor"` // Address of the depositor Amount sdk.Coins `json:"amount" yaml:"amount"` // Coins to add to the proposal's deposit }
MsgDeposit
func NewMsgDeposit ¶
func NewMsgDeposit(depositor sdk.AccAddress, proposalID uint64, amount sdk.Coins) MsgDeposit
func (MsgDeposit) String ¶
func (msg MsgDeposit) String() string
func (MsgDeposit) Type ¶
func (msg MsgDeposit) Type() string
type MsgSubmitProposal ¶
type MsgSubmitProposal struct { Content Content `json:"content" yaml:"content"` InitialDeposit sdk.Coins `json:"initial_deposit" yaml:"initial_deposit"` // Initial deposit paid by sender. Must be strictly positive Proposer sdk.AccAddress `json:"proposer" yaml:"proposer"` // Address of the proposer }
MsgSubmitProposal
func NewMsgSubmitProposal ¶
func NewMsgSubmitProposal(content Content, initialDeposit sdk.Coins, proposer sdk.AccAddress) MsgSubmitProposal
func (MsgSubmitProposal) GetSignBytes ¶
func (msg MsgSubmitProposal) GetSignBytes() []byte
Implements Msg.
func (MsgSubmitProposal) GetSigners ¶
func (msg MsgSubmitProposal) GetSigners() []sdk.AccAddress
Implements Msg.
func (MsgSubmitProposal) String ¶
func (msg MsgSubmitProposal) String() string
func (MsgSubmitProposal) Type ¶
func (msg MsgSubmitProposal) Type() string
func (MsgSubmitProposal) ValidateBasic ¶
func (msg MsgSubmitProposal) ValidateBasic() error
Implements Msg.
type MsgVote ¶
type MsgVote struct { ProposalID uint64 `json:"proposal_id" yaml:"proposal_id"` // ID of the proposal Voter sdk.AccAddress `json:"voter" yaml:"voter"` // address of the voter Option VoteOption `json:"option" yaml:"option"` // option from OptionSet chosen by the voter }
MsgVote
func NewMsgVote ¶
func NewMsgVote(voter sdk.AccAddress, proposalID uint64, option VoteOption) MsgVote
type Params ¶
type Params struct { VotingParams VotingParams `json:"voting_params" yaml:"voting_params"` TallyParams TallyParams `json:"tally_params" yaml:"tally_params"` DepositParams DepositParams `json:"deposit_params" yaml:"deposit_parmas"` }
Params returns all of the governance params
func NewParams ¶
func NewParams(vp VotingParams, tp TallyParams, dp DepositParams) Params
type Proposal ¶
type Proposal struct { Content `json:"content" yaml:"content"` // Proposal content interface ProposalID uint64 `json:"id" yaml:"id"` // ID of the proposal Status ProposalStatus `json:"proposal_status" yaml:"proposal_status"` // Status of the Proposal {Pending, Active, Passed, Rejected} FinalTallyResult TallyResult `json:"final_tally_result" yaml:"final_tally_result"` // Result of Tallys SubmitTime time.Time `json:"submit_time" yaml:"submit_time"` // Time of the block where TxGovSubmitProposal was included DepositEndTime time.Time `json:"deposit_end_time" yaml:"deposit_end_time"` // Time that the Proposal would expire if deposit amount isn't met TotalDeposit sdk.Coins `json:"total_deposit" yaml:"total_deposit"` // Current deposit on this proposal. Initial value is set at InitialDeposit VotingStartTime time.Time `json:"voting_start_time" yaml:"voting_start_time"` // Time of the block where MinDeposit was reached. -1 if MinDeposit is not reached VotingEndTime time.Time `json:"voting_end_time" yaml:"voting_end_time"` // Time that the VotingPeriod for this proposal will end and votes will be tallied Proposer sdk.AccAddress `json:"proposer"` }
Proposal defines a struct used by the governance module to allow for voting on network changes.
func NewProposal ¶
type ProposalStatus ¶
type ProposalStatus byte
ProposalStatus is a type alias that represents a proposal status as a byte
const ( StatusNil ProposalStatus = 0x00 StatusDepositPeriod ProposalStatus = 0x01 StatusVotingPeriod ProposalStatus = 0x02 StatusPassed ProposalStatus = 0x03 StatusRejected ProposalStatus = 0x04 StatusFailed ProposalStatus = 0x05 )
nolint
func ProposalStatusFromString ¶
func ProposalStatusFromString(str string) (ProposalStatus, error)
ProposalStatusToString turns a string into a ProposalStatus
func (ProposalStatus) Format ¶
func (status ProposalStatus) Format(s fmt.State, verb rune)
Format implements the fmt.Formatter interface. nolint: errcheck
func (ProposalStatus) Marshal ¶
func (status ProposalStatus) Marshal() ([]byte, error)
Marshal needed for protobuf compatibility
func (ProposalStatus) MarshalJSON ¶
func (status ProposalStatus) MarshalJSON() ([]byte, error)
Marshals to JSON using string
func (ProposalStatus) String ¶
func (status ProposalStatus) String() string
String implements the Stringer interface.
func (*ProposalStatus) Unmarshal ¶
func (status *ProposalStatus) Unmarshal(data []byte) error
Unmarshal needed for protobuf compatibility
func (*ProposalStatus) UnmarshalJSON ¶
func (status *ProposalStatus) UnmarshalJSON(data []byte) error
Unmarshals from JSON assuming Bech32 encoding
type QueryDepositParams ¶
type QueryDepositParams struct { ProposalID uint64 Depositor sdk.AccAddress }
QueryDepositParams params for query 'custom/gov/deposit'
func NewQueryDepositParams ¶
func NewQueryDepositParams(proposalID uint64, depositor sdk.AccAddress) QueryDepositParams
NewQueryDepositParams creates a new instance of QueryDepositParams
type QueryProposalParams ¶
type QueryProposalParams struct {
ProposalID uint64
}
QueryProposalParams for queries: - 'custom/gov/proposal' - 'custom/gov/deposits' - 'custom/gov/tally' - 'custom/gov/votes'
func NewQueryProposalParams ¶
func NewQueryProposalParams(proposalID uint64) QueryProposalParams
NewQueryProposalParams creates a new instance of QueryProposalParams
type QueryProposalsParams ¶
type QueryProposalsParams struct { Voter sdk.AccAddress Depositor sdk.AccAddress ProposalStatus ProposalStatus Limit uint64 }
QueryProposalsParams Params for query 'custom/gov/proposals'
func NewQueryProposalsParams ¶
func NewQueryProposalsParams(status ProposalStatus, limit uint64, voter, depositor sdk.AccAddress) QueryProposalsParams
NewQueryProposalsParams creates a new instance of QueryProposalsParams
type QueryVoteParams ¶
type QueryVoteParams struct { ProposalID uint64 Voter sdk.AccAddress }
QueryVoteParams for query 'custom/gov/vote'
func NewQueryVoteParams ¶
func NewQueryVoteParams(proposalID uint64, voter sdk.AccAddress) QueryVoteParams
NewQueryVoteParams creates a new instance of QueryVoteParams
type SoftwareUpgradeProposal ¶
type SoftwareUpgradeProposal struct { Title string `json:"title" yaml:"title"` Description string `json:"description" yaml:"description"` Version uint64 `json:"version"` Software string `json:"software"` SwitchHeight uint64 `json:"switch_height"` Threshold sdk.Dec `json:"threshold"` }
func (SoftwareUpgradeProposal) GetDescription ¶
func (sup SoftwareUpgradeProposal) GetDescription() string
func (SoftwareUpgradeProposal) GetTitle ¶
func (sup SoftwareUpgradeProposal) GetTitle() string
nolint
func (SoftwareUpgradeProposal) ProposalRoute ¶
func (sup SoftwareUpgradeProposal) ProposalRoute() string
func (SoftwareUpgradeProposal) ProposalType ¶
func (sup SoftwareUpgradeProposal) ProposalType() string
func (SoftwareUpgradeProposal) String ¶
func (sup SoftwareUpgradeProposal) String() string
func (SoftwareUpgradeProposal) ValidateBasic ¶
func (sup SoftwareUpgradeProposal) ValidateBasic() error
type TallyParams ¶
type TallyParams struct { Quorum sdk.Dec `json:"quorum,omitempty" yaml:"quorum,omitempty"` // Minimum percentage of total stake needed to vote for a result to be considered valid Threshold sdk.Dec `json:"threshold,omitempty" yaml:"threshold,omitempty"` // Minimum proportion of Yes votes for proposal to pass. Initial value: 0.5 Veto sdk.Dec `json:"veto,omitempty" yaml:"veto,omitempty"` // Minimum value of Veto votes to Total votes ratio for proposal to be vetoed. Initial value: 1/3 }
Param around Tallying votes in governance
func DefaultTallyParams ¶
func DefaultTallyParams() TallyParams
DefaultTallyParams default parameters for tallying
func NewTallyParams ¶
func NewTallyParams(quorum, threshold, veto sdk.Dec) TallyParams
NewTallyParams creates a new TallyParams object
func (TallyParams) String ¶
func (tp TallyParams) String() string
type TallyResult ¶
type TallyResult struct { Yes sdk.Int `json:"yes" yaml:"yes"` Abstain sdk.Int `json:"abstain" yaml:"abstain"` No sdk.Int `json:"no" yaml:"no"` NoWithVeto sdk.Int `json:"no_with_veto" yaml:"no_with_veto"` }
Tally Results
func EmptyTallyResult ¶
func EmptyTallyResult() TallyResult
EmptyTallyResult returns an empty TallyResult.
func NewTallyResult ¶
func NewTallyResult(yes, abstain, no, noWithVeto sdk.Int) TallyResult
func NewTallyResultFromMap ¶
func NewTallyResultFromMap(results map[VoteOption]sdk.Dec) TallyResult
func (TallyResult) Equals ¶
func (tr TallyResult) Equals(comp TallyResult) bool
Equals returns if two proposals are equal.
func (TallyResult) String ¶
func (tr TallyResult) String() string
type TextProposal ¶
type TextProposal struct { Title string `json:"title" yaml:"title"` Description string `json:"description" yaml:"description"` }
func (TextProposal) GetDescription ¶
func (tp TextProposal) GetDescription() string
func (TextProposal) ProposalRoute ¶
func (tp TextProposal) ProposalRoute() string
func (TextProposal) ProposalType ¶
func (tp TextProposal) ProposalType() string
func (TextProposal) String ¶
func (tp TextProposal) String() string
func (TextProposal) ValidateBasic ¶
func (tp TextProposal) ValidateBasic() error
type Vote ¶
type Vote struct { ProposalID uint64 `json:"proposal_id" yaml:"proposal_id"` // proposalID of the proposal Voter sdk.AccAddress `json:"voter" yaml:"voter"` // address of the voter Option VoteOption `json:"option" yaml:"option"` // option from OptionSet chosen by the voter }
Vote
func NewVote ¶
func NewVote(proposalID uint64, voter sdk.AccAddress, option VoteOption) Vote
NewVote creates a new Vote instance
type VoteOption ¶
type VoteOption byte
VoteOption defines a vote option
const ( OptionEmpty VoteOption = 0x00 OptionYes VoteOption = 0x01 OptionAbstain VoteOption = 0x02 OptionNo VoteOption = 0x03 OptionNoWithVeto VoteOption = 0x04 )
Vote options
func VoteOptionFromString ¶
func VoteOptionFromString(str string) (VoteOption, error)
VoteOptionFromString returns a VoteOption from a string. It returns an error if the string is invalid.
func (VoteOption) Format ¶
func (vo VoteOption) Format(s fmt.State, verb rune)
Format implements the fmt.Formatter interface. nolint: errcheck
func (VoteOption) Marshal ¶
func (vo VoteOption) Marshal() ([]byte, error)
Marshal needed for protobuf compatibility.
func (VoteOption) MarshalJSON ¶
func (vo VoteOption) MarshalJSON() ([]byte, error)
Marshals to JSON using string.
func (VoteOption) String ¶
func (vo VoteOption) String() string
String implements the Stringer interface.
func (*VoteOption) Unmarshal ¶
func (vo *VoteOption) Unmarshal(data []byte) error
Unmarshal needed for protobuf compatibility.
func (*VoteOption) UnmarshalJSON ¶
func (vo *VoteOption) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes from JSON assuming Bech32 encoding.
type VotingParams ¶
type VotingParams struct {
VotingPeriod time.Duration `json:"voting_period,omitempty" yaml:"voting_period,omitempty"` // Length of the voting period.
}
Param around Voting in governance
func DefaultVotingParams ¶
func DefaultVotingParams() VotingParams
DefaultVotingParams default parameters for voting
func NewVotingParams ¶
func NewVotingParams(votingPeriod time.Duration) VotingParams
NewVotingParams creates a new VotingParams object
func (VotingParams) String ¶
func (vp VotingParams) String() string