gov

package
v0.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2019 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const (
	QueryProposals = "proposals"
	QueryProposal  = "proposal"
	QueryDeposits  = "deposits"
	QueryDeposit   = "deposit"
	QueryVotes     = "votes"
	QueryVote      = "vote"
	QueryTally     = "tally"
)

query endpoints supported by the governance Querier

View Source
const MsgRoute = "gov"

name to idetify transaction types

View Source
const (
	Prefix = "gov/"
)

Variables

View Source
var (
	DepositedCoinsAccAddr     = sdk.AccAddress(crypto.AddressHash([]byte("govDepositedCoins")))
	BurnedDepositCoinsAccAddr = sdk.AccAddress(crypto.AddressHash([]byte("govBurnedDepositCoins")))
)

nolint

View Source
var (
	KeyDelimiter = []byte(":")

	KeyNextProposalID           = []byte("newProposalID")
	PrefixActiveProposalQueue   = []byte("activeProposalQueue")
	PrefixInactiveProposalQueue = []byte("inactiveProposalQueue")
)

Key for getting a the next available proposalID from the store

View Source
var (
	KeyTerminatorHeight = []byte("TerminatorHeight")
	KeyTerminatorPeriod = []byte("TerminatorPeriod")
)

Key for getting a the next available proposalID from the store

Functions

func EndBlocker

func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags)

Called every block, process inflation, update validator set

func Execute

func Execute(ctx sdk.Context, k Keeper, p govtypes.Proposal) (err error)

func HaltProposalExecute

func HaltProposalExecute(ctx sdk.Context, k Keeper) error

func InitGenesis

func InitGenesis(ctx sdk.Context, k Keeper, data GenesisState)

InitGenesis - store genesis parameters

func KeyActiveProposalQueueProposal

func KeyActiveProposalQueueProposal(endTime time.Time, proposalID uint64) []byte

Returns the key for a proposalID in the activeProposalQueue

func KeyDeposit

func KeyDeposit(proposalID uint64, depositorAddr sdk.AccAddress) []byte

Key for getting a specific deposit from the store

func KeyDepositsSubspace

func KeyDepositsSubspace(proposalID uint64) []byte

Key for getting all deposits on a proposal from the store

func KeyInactiveProposalQueueProposal

func KeyInactiveProposalQueueProposal(endTime time.Time, proposalID uint64) []byte

Returns the key for a proposalID in the activeProposalQueue

func KeyProposal

func KeyProposal(proposalID uint64) []byte

Key for getting a specific proposal from the store

func KeyVote

func KeyVote(proposalID uint64, voterAddr sdk.AccAddress) []byte

Key for getting a specific vote from the store

func KeyVotesSubspace

func KeyVotesSubspace(proposalID uint64) []byte

Key for getting all votes on a proposal from the store

func NewHandler

func NewHandler(keeper Keeper) sdk.Handler

Handle all "gov" type messages.

func NewQuerier

func NewQuerier(keeper Keeper) sdk.Querier

func ParameterProposalExecute

func ParameterProposalExecute(ctx sdk.Context, k Keeper, pp *govtypes.ParameterProposal) (err error)

func PrefixActiveProposalQueueTime

func PrefixActiveProposalQueueTime(endTime time.Time) []byte

Returns the key for a proposalID in the activeProposalQueue

func PrefixInactiveProposalQueueTime

func PrefixInactiveProposalQueueTime(endTime time.Time) []byte

Returns the key for a proposalID in the activeProposalQueue

func RegisterCodec

func RegisterCodec(cdc *codec.Codec)

Register concrete types on codec codec

func SoftwareUpgradeProposalExecute

func SoftwareUpgradeProposalExecute(ctx sdk.Context, k Keeper, sp *govtypes.SoftwareUpgradeProposal) error

func SortAddresses

func SortAddresses(addrs []sdk.AccAddress)

Sorts Addresses

func SortByteArrays

func SortByteArrays(src [][]byte) [][]byte

Public

func TaxUsageProposalExecute

func TaxUsageProposalExecute(ctx sdk.Context, k Keeper, p *govtypes.TaxUsageProposal) (err error)

Types

type DepositWithMetadata

type DepositWithMetadata struct {
	ProposalID uint64           `json:"proposal_id"`
	Deposit    govtypes.Deposit `json:"deposit"`
}

type GenesisState

type GenesisState struct {
	TerminatorPeriod   int64                       `json:"terminator_period"`
	StartingProposalID uint64                      `json:"starting_proposalID"`
	Deposits           []DepositWithMetadata       `json:"deposits"`
	Votes              []VoteWithMetadata          `json:"votes"`
	Proposals          []govtypes.Proposal         `json:"proposals"`
	DepositProcedure   govparams.DepositProcedure  `json:"deposit_period"`
	VotingProcedure    govparams.VotingProcedure   `json:"voting_period"`
	TallyingProcedure  govparams.TallyingProcedure `json:"tallying_procedure"`
}

GenesisState - all gov state that must be provided at genesis

func DefaultGenesisState

func DefaultGenesisState() GenesisState

get raw genesis raw message for testing

func DefaultGenesisStateForCliTest

func DefaultGenesisStateForCliTest() GenesisState

get raw genesis raw message for testing

func DefaultGenesisStateForLCDTest

func DefaultGenesisStateForLCDTest() GenesisState

get raw genesis raw message for testing

func ExportGenesis

func ExportGenesis(ctx sdk.Context, k Keeper) GenesisState

ExportGenesis - output genesis parameters

func NewGenesisState

func NewGenesisState(startingProposalID uint64, dp govparams.DepositProcedure, vp govparams.VotingProcedure, tp govparams.TallyingProcedure) GenesisState

type Keeper

type Keeper struct {
	// contains filtered or unexported fields
}

Governance Keeper

func NewKeeper

NewKeeper returns a governance keeper. It handles: - submitting governance proposals - depositing funds into proposals, and activating upon sufficient funds being deposited - users voting on proposals, with weight proportional to stake in the system - and tallying the result of the vote.

func (Keeper) ActiveProposalQueueIterator

func (keeper Keeper) ActiveProposalQueueIterator(ctx sdk.Context, endTime time.Time) sdk.Iterator

Returns an iterator for all the proposals in the Active Queue that expire by endTime

func (Keeper) AddDeposit

func (keeper Keeper) AddDeposit(ctx sdk.Context, proposalID uint64, depositorAddr sdk.AccAddress, depositAmount sdk.Coins) (sdk.Error, bool)

Adds or updates a deposit of a specific depositor on a specific proposal Activates voting period when appropriate

func (Keeper) AddVote

func (keeper Keeper) AddVote(ctx sdk.Context, proposalID uint64, voterAddr sdk.AccAddress, option govtypes.VoteOption) sdk.Error

Adds a vote on a specific proposal

func (Keeper) DeleteDeposits

func (keeper Keeper) DeleteDeposits(ctx sdk.Context, proposalID uint64)

Deletes all the deposits on a specific proposal without refunding them

func (Keeper) DeleteProposal

func (keeper Keeper) DeleteProposal(ctx sdk.Context, proposalID uint64)

Implements sdk.AccountKeeper.

func (Keeper) GetDeposit

func (keeper Keeper) GetDeposit(ctx sdk.Context, proposalID uint64, depositorAddr sdk.AccAddress) (govtypes.Deposit, bool)

Gets the deposit of a specific depositor on a specific proposal

func (Keeper) GetDeposits

func (keeper Keeper) GetDeposits(ctx sdk.Context, proposalID uint64) sdk.Iterator

Gets all the deposits on a specific proposal

func (Keeper) GetLastProposalID

func (keeper Keeper) GetLastProposalID(ctx sdk.Context) (proposalID uint64)

Get the last used proposal ID

func (Keeper) GetProposal

func (keeper Keeper) GetProposal(ctx sdk.Context, proposalID uint64) govtypes.Proposal

Get Proposal from store by ProposalID

func (Keeper) GetProposalsFiltered

func (keeper Keeper) GetProposalsFiltered(ctx sdk.Context, voterAddr sdk.AccAddress, depositorAddr sdk.AccAddress, status govtypes.ProposalStatus, numLatest uint64) []govtypes.Proposal

Get Proposal from store by ProposalID

func (Keeper) GetTerminatorHeight

func (keeper Keeper) GetTerminatorHeight(ctx sdk.Context) int64

func (Keeper) GetTerminatorPeriod

func (keeper Keeper) GetTerminatorPeriod(ctx sdk.Context) int64

func (Keeper) GetVote

func (keeper Keeper) GetVote(ctx sdk.Context, proposalID uint64, voterAddr sdk.AccAddress) (govtypes.Vote, bool)

Gets the vote of a specific voter on a specific proposal

func (Keeper) GetVotes

func (keeper Keeper) GetVotes(ctx sdk.Context, proposalID uint64) sdk.Iterator

Gets all the votes on a specific proposal

func (Keeper) InactiveProposalQueueIterator

func (keeper Keeper) InactiveProposalQueueIterator(ctx sdk.Context, endTime time.Time) sdk.Iterator

Returns an iterator for all the proposals in the Inactive Queue that expire by endTime

func (Keeper) InsertActiveProposalQueue

func (keeper Keeper) InsertActiveProposalQueue(ctx sdk.Context, endTime time.Time, proposalID uint64)

Inserts a ProposalID into the active proposal queue at endTime

func (Keeper) InsertInactiveProposalQueue

func (keeper Keeper) InsertInactiveProposalQueue(ctx sdk.Context, endTime time.Time, proposalID uint64)

Inserts a ProposalID into the inactive proposal queue at endTime

func (Keeper) NewHaltProposal

func (keeper Keeper) NewHaltProposal(ctx sdk.Context, title string, description string, proposalType govtypes.ProposalKind) govtypes.Proposal

func (Keeper) NewParametersProposal

func (keeper Keeper) NewParametersProposal(ctx sdk.Context, title string, description string, proposalType govtypes.ProposalKind, param govtypes.Param) govtypes.Proposal

func (Keeper) NewProposal

func (keeper Keeper) NewProposal(ctx sdk.Context, title string, description string, proposalType govtypes.ProposalKind, param govtypes.Param) govtypes.Proposal

func (Keeper) NewSoftwareUpgradeProposal

func (keeper Keeper) NewSoftwareUpgradeProposal(ctx sdk.Context, msg MsgSubmitSoftwareUpgradeProposal) govtypes.Proposal

func (Keeper) NewUsageProposal

func (keeper Keeper) NewUsageProposal(ctx sdk.Context, msg MsgSubmitTxTaxUsageProposal) govtypes.Proposal

func (Keeper) RefundDeposits

func (keeper Keeper) RefundDeposits(ctx sdk.Context, proposalID uint64)

Returns and deletes all the deposits on a specific proposal

func (Keeper) RemoveFromActiveProposalQueue

func (keeper Keeper) RemoveFromActiveProposalQueue(ctx sdk.Context, endTime time.Time, proposalID uint64)

removes a proposalID from the Active Proposal Queue

func (Keeper) RemoveFromInactiveProposalQueue

func (keeper Keeper) RemoveFromInactiveProposalQueue(ctx sdk.Context, endTime time.Time, proposalID uint64)

removes a proposalID from the Inactive Proposal Queue

func (Keeper) SetProposal

func (keeper Keeper) SetProposal(ctx sdk.Context, proposal govtypes.Proposal)

Implements sdk.AccountKeeper.

func (Keeper) SetTerminatorHeight

func (keeper Keeper) SetTerminatorHeight(ctx sdk.Context, height int64)

func (Keeper) SetTerminatorPeriod

func (keeper Keeper) SetTerminatorPeriod(ctx sdk.Context, height int64)

type MsgDeposit

type MsgDeposit struct {
	ProposalID uint64         `json:"proposal_id"` // ID of the proposal
	Depositor  sdk.AccAddress `json:"depositor"`   // Address of the depositor
	Amount     sdk.Coins      `json:"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) Get

func (msg MsgDeposit) Get(key interface{}) (value interface{})

Implements Msg.

func (MsgDeposit) GetSignBytes

func (msg MsgDeposit) GetSignBytes() []byte

Implements Msg.

func (MsgDeposit) GetSigners

func (msg MsgDeposit) GetSigners() []sdk.AccAddress

Implements Msg.

func (MsgDeposit) Route

func (msg MsgDeposit) Route() string

Implements Msg. nolint

func (MsgDeposit) String

func (msg MsgDeposit) String() string

func (MsgDeposit) Type

func (msg MsgDeposit) Type() string

func (MsgDeposit) ValidateBasic

func (msg MsgDeposit) ValidateBasic() sdk.Error

Implements Msg.

type MsgSubmitProposal

type MsgSubmitProposal struct {
	Title          string                `json:"title"`           //  Title of the proposal
	Description    string                `json:"description"`     //  Description of the proposal
	ProposalType   govtypes.ProposalKind `json:"proposal_type"`   //  Type of proposal. Initial set {PlainTextProposal, SoftwareUpgradeProposal}
	Proposer       sdk.AccAddress        `json:"proposer"`        //  Address of the proposer
	InitialDeposit sdk.Coins             `json:"initial_deposit"` //  Initial deposit paid by sender. Must be strictly positive.
	Param          govtypes.Param
}

----------------------------------------------------------- MsgSubmitProposal

func NewMsgSubmitProposal

func NewMsgSubmitProposal(title string, description string, proposalType govtypes.ProposalKind, proposer sdk.AccAddress, initialDeposit sdk.Coins, param govtypes.Param) MsgSubmitProposal

func (MsgSubmitProposal) Get

func (msg MsgSubmitProposal) Get(key interface{}) (value interface{})

Implements Msg.

func (MsgSubmitProposal) GetSignBytes

func (msg MsgSubmitProposal) GetSignBytes() []byte

Implements Msg.

func (MsgSubmitProposal) GetSigners

func (msg MsgSubmitProposal) GetSigners() []sdk.AccAddress

Implements Msg.

func (MsgSubmitProposal) Route

func (msg MsgSubmitProposal) Route() string

nolint

func (MsgSubmitProposal) String

func (msg MsgSubmitProposal) String() string

func (MsgSubmitProposal) Type

func (msg MsgSubmitProposal) Type() string

func (MsgSubmitProposal) ValidateBasic

func (msg MsgSubmitProposal) ValidateBasic() sdk.Error

Implements Msg.

type MsgSubmitSoftwareUpgradeProposal

type MsgSubmitSoftwareUpgradeProposal struct {
	MsgSubmitProposal
	Version      uint64 `json:"version"`
	Software     string `json:"software"`
	SwitchHeight uint64 `json:"switch_height"`
}

func NewMsgSubmitSoftwareUpgradeProposal

func NewMsgSubmitSoftwareUpgradeProposal(msgSubmitProposal MsgSubmitProposal, version uint64, software string, switchHeight uint64) MsgSubmitSoftwareUpgradeProposal

func (MsgSubmitSoftwareUpgradeProposal) GetSignBytes

func (msg MsgSubmitSoftwareUpgradeProposal) GetSignBytes() []byte

func (MsgSubmitSoftwareUpgradeProposal) ValidateBasic

func (msg MsgSubmitSoftwareUpgradeProposal) ValidateBasic() sdk.Error

type MsgSubmitTxTaxUsageProposal

type MsgSubmitTxTaxUsageProposal struct {
	MsgSubmitProposal
	Usage       govtypes.UsageType `json:"usage"`
	DestAddress sdk.AccAddress     `json:"dest_address"`
	Percent     sdk.Dec            `json:"percent"`
}

func NewMsgSubmitTaxUsageProposal

func NewMsgSubmitTaxUsageProposal(msgSubmitProposal MsgSubmitProposal, usage govtypes.UsageType, destAddress sdk.AccAddress, percent sdk.Dec) MsgSubmitTxTaxUsageProposal

func (MsgSubmitTxTaxUsageProposal) GetSignBytes

func (msg MsgSubmitTxTaxUsageProposal) GetSignBytes() []byte

func (MsgSubmitTxTaxUsageProposal) ValidateBasic

func (msg MsgSubmitTxTaxUsageProposal) ValidateBasic() sdk.Error

type MsgVote

type MsgVote struct {
	ProposalID uint64              `json:"proposal_id"` // ID of the proposal
	Voter      sdk.AccAddress      `json:"voter"`       //  address of the voter
	Option     govtypes.VoteOption `json:"option"`      //  option from OptionSet chosen by the voter
}

----------------------------------------------------------- MsgVote

func NewMsgVote

func NewMsgVote(voter sdk.AccAddress, proposalID uint64, option govtypes.VoteOption) MsgVote

func (MsgVote) Get

func (msg MsgVote) Get(key interface{}) (value interface{})

Implements Msg.

func (MsgVote) GetSignBytes

func (msg MsgVote) GetSignBytes() []byte

Implements Msg.

func (MsgVote) GetSigners

func (msg MsgVote) GetSigners() []sdk.AccAddress

Implements Msg.

func (MsgVote) Route

func (msg MsgVote) Route() string

Implements Msg. nolint

func (MsgVote) String

func (msg MsgVote) String() string

func (MsgVote) Type

func (msg MsgVote) Type() string

func (MsgVote) ValidateBasic

func (msg MsgVote) ValidateBasic() sdk.Error

Implements Msg.

type ProposalOutput

type ProposalOutput struct {
	ProposalID   uint64                `json:"proposal_id"`   //  ID of the proposal
	Title        string                `json:"title"`         //  Title of the proposal
	Description  string                `json:"description"`   //  Description of the proposal
	ProposalType govtypes.ProposalKind `json:"proposal_type"` //  Type of proposal. Initial set {PlainTextProposal, SoftwareUpgradeProposal}

	Status      govtypes.ProposalStatus `json:"proposal_status"` //  Status of the Proposal {Pending, Active, Passed, Rejected}
	TallyResult govtypes.TallyResult    `json:"tally_result"`    //  Result of Tallys

	SubmitTime     time.Time `json:"submit_time"`      //  Time of the block where TxGovSubmitProposal was included
	DepositEndTime time.Time `json:"deposit_end_time"` // Time that the Proposal would expire if deposit amount isn't met
	TotalDeposit   sdk.Coins `json:"total_deposit"`    //  Current deposit on this proposal. Initial value is set at InitialDeposit

	VotingStartTime time.Time      `json:"voting_start_time"` //  Time of the block where MinDeposit was reached. -1 if MinDeposit is not reached
	VotingEndTime   time.Time      `json:"voting_end_time"`   // Time that the VotingPeriod for this proposal will end and votes will be tallied
	Param           govtypes.Param `json:"param"`
}

func ConvertProposalToProposalOutput

func ConvertProposalToProposalOutput(proposal govtypes.Proposal) ProposalOutput

type ProposalOutputs

type ProposalOutputs []ProposalOutput

func ConvertProposalsToProposalOutputs

func ConvertProposalsToProposalOutputs(proposals []govtypes.Proposal) ProposalOutputs

type QueryDepositParams

type QueryDepositParams struct {
	ProposalID uint64
	Depositor  sdk.AccAddress
}

Params for query 'custom/gov/deposit'

type QueryDepositsParams

type QueryDepositsParams struct {
	ProposalID uint64
}

Params for query 'custom/gov/deposits'

type QueryProposalParams

type QueryProposalParams struct {
	ProposalID uint64
}

Params for query 'custom/gov/proposal'

type QueryProposalsParams

type QueryProposalsParams struct {
	Voter          sdk.AccAddress
	Depositor      sdk.AccAddress
	ProposalStatus govtypes.ProposalStatus
	Limit          uint64
}

Params for query 'custom/gov/proposals'

type QueryTallyParams

type QueryTallyParams struct {
	ProposalID uint64
}

Params for query 'custom/gov/tally'

type QueryVoteParams

type QueryVoteParams struct {
	ProposalID uint64
	Voter      sdk.AccAddress
}

Params for query 'custom/gov/vote'

type QueryVotesParams

type QueryVotesParams struct {
	ProposalID uint64
}

Params for query 'custom/gov/votes'

type VoteWithMetadata

type VoteWithMetadata struct {
	ProposalID uint64        `json:"proposal_id"`
	Vote       govtypes.Vote `json:"vote"`
}

VoteWithMetadata (just for genesis)

Directories

Path Synopsis
nolint
nolint

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL