* Add params error types * Update param module keeper to take a codespace * Update imports * Implement SetRaw and SetRawWithSubkey * Implement ParamChange and update aliases * Add types codec * Implement ParameterChangeProposal * Implement TestParameterChangeProposal * Fix linting errors * Update tags * Implement content * Updata params aliases * Finish params handler and proposal types * Move deposit and vote logic to types package * Move proposal type to types package * Move errors to types package * Update proposal * Move gov messages to types package * Minor updates to naming * Move keys to types package * Move codec to types package * Move proposal types to types package * Update aliases * Add governance alias types * Implement governance router * Update gov aliases * Update gov keeper * Update private functions needed for the keeper * Update godocs * Update the gov message handler * Update Gaia app * Make updates to auth * Update the message codec in the keeper * Update gov end blocker * Update types tests * Minor tweaks * Add legacy genesis logic * Update gov aliases * Move gov keys to types package * Revertt to using gov/types in params * Implement params handler test * Update governance tests * Fix endblocker tests * Fix governance querier tests * Add seal support to gov router * Update simulationCreateMsgSubmitProposal * Disable software upgrade proposals * Move params keys to types package * Implement param module proposal client logic * Update gov client logic * Update gaia app client hooks * Fix linting errors * Fix ValidateBasic * Remove legacy files * Update paramchange to use strings * Update paramchange cli cmd * Update ValidateBasic and errors * Use PostCommands when adding child cmds * Fix codec logic * Update params client and handler * Update IsValidProposalType * Update SubmitProposal to test exec * Implement TestGaiaCLISubmitParamChangeProposal * Implement TestSubmitParamChangeProposal * Update swagger.yaml * Update gaiacli.md * Update gov spec docs * Fix linting errors * Fix unit tests * Add pending log entries * Update docs * Update docs * Update client/lcd/swagger-ui/swagger.yaml Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update docs/cosmos-hub/gaiacli.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update cmd/gaia/cli_test/test_helpers.go Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update client/lcd/test_helpers.go Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update docs/cosmos-hub/gaiacli.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update docs/cosmos-hub/gaiacli.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update docs/cosmos-hub/gaiacli.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update x/gov/types/proposal.go Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update docs/cosmos-hub/gaiacli.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update docs/cosmos-hub/gaiacli.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Address PR comments * Update docs/cosmos-hub/gaiacli.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update gov docs to include quorum notes * Add logs to handleParameterChangeProposal * Update docs/spec/governance/02_state.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Support and use new StatusFailed when proposal passes but fails exec * Add docs/notes warning on param validity * Update docs * Update docs/spec/governance/02_state.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Update docs/spec/governance/02_state.md Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Minor doc update * Update x/gov/client/cli/tx.go Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Fix usage of fromAddr * Rige code style suggestion * Update x/params/types/proposal.go Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com> * Fix CI lint errors * Update NewModuleClient godoc * Add godoc to rtr.Seal() call * Rename files * Rename NewProposalHandler
70 lines
2.2 KiB
Go
70 lines
2.2 KiB
Go
package client
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
amino "github.com/tendermint/go-amino"
|
|
|
|
"github.com/cosmos/cosmos-sdk/client"
|
|
"github.com/cosmos/cosmos-sdk/x/gov"
|
|
govCli "github.com/cosmos/cosmos-sdk/x/gov/client/cli"
|
|
)
|
|
|
|
// ModuleClient exports all client functionality from the governance module. The
|
|
// governance ModuleClient is slightly different from other ModuleClients in that
|
|
// it contains a slice of "proposal" child commands. These commands are respective
|
|
// to proposal type handlers that are implemented in other modules but are mounted
|
|
// under the governance CLI (eg. parameter change proposals).
|
|
type ModuleClient struct {
|
|
storeKey string
|
|
cdc *amino.Codec
|
|
pcmds []*cobra.Command
|
|
}
|
|
|
|
func NewModuleClient(storeKey string, cdc *amino.Codec, pcmds ...*cobra.Command) ModuleClient {
|
|
return ModuleClient{storeKey, cdc, pcmds}
|
|
}
|
|
|
|
// GetQueryCmd returns the cli query commands for this module
|
|
func (mc ModuleClient) GetQueryCmd() *cobra.Command {
|
|
// Group gov queries under a subcommand
|
|
govQueryCmd := &cobra.Command{
|
|
Use: gov.ModuleName,
|
|
Short: "Querying commands for the governance module",
|
|
}
|
|
|
|
govQueryCmd.AddCommand(client.GetCommands(
|
|
govCli.GetCmdQueryProposal(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdQueryProposals(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdQueryVote(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdQueryVotes(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdQueryParam(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdQueryParams(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdQueryProposer(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdQueryDeposit(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdQueryDeposits(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdQueryTally(mc.storeKey, mc.cdc))...)
|
|
|
|
return govQueryCmd
|
|
}
|
|
|
|
// GetTxCmd returns the transaction commands for this module
|
|
func (mc ModuleClient) GetTxCmd() *cobra.Command {
|
|
govTxCmd := &cobra.Command{
|
|
Use: gov.ModuleName,
|
|
Short: "Governance transactions subcommands",
|
|
}
|
|
|
|
cmdSubmitProp := govCli.GetCmdSubmitProposal(mc.cdc)
|
|
for _, pcmd := range mc.pcmds {
|
|
cmdSubmitProp.AddCommand(client.PostCommands(pcmd)[0])
|
|
}
|
|
|
|
govTxCmd.AddCommand(client.PostCommands(
|
|
govCli.GetCmdDeposit(mc.storeKey, mc.cdc),
|
|
govCli.GetCmdVote(mc.storeKey, mc.cdc),
|
|
cmdSubmitProp,
|
|
)...)
|
|
|
|
return govTxCmd
|
|
}
|