mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 04:47:27 +00:00 
			
		
		
		
	Committee module: query next proposal ID (#1019)
* next-proposal-id cli query * fix spelling in comments * next-proposal-id rest query
This commit is contained in:
		
							parent
							
								
									0ee449e5a9
								
							
						
					
					
						commit
						b9c59c728b
					
				@ -31,6 +31,7 @@ func GetQueryCmd(queryRoute string, cdc *codec.Codec) *cobra.Command {
 | 
			
		||||
		GetCmdQueryCommittee(queryRoute, cdc),
 | 
			
		||||
		GetCmdQueryCommittees(queryRoute, cdc),
 | 
			
		||||
		// proposals
 | 
			
		||||
		GetCmdQueryNextProposalID(queryRoute, cdc),
 | 
			
		||||
		GetCmdQueryProposal(queryRoute, cdc),
 | 
			
		||||
		GetCmdQueryProposals(queryRoute, cdc),
 | 
			
		||||
		// votes
 | 
			
		||||
@ -115,6 +116,35 @@ func GetCmdQueryCommittees(queryRoute string, cdc *codec.Codec) *cobra.Command {
 | 
			
		||||
//				Proposals
 | 
			
		||||
// ------------------------------------------
 | 
			
		||||
 | 
			
		||||
// GetCmdQueryNextProposalID implements a query next proposal ID command.
 | 
			
		||||
func GetCmdQueryNextProposalID(queryRoute string, cdc *codec.Codec) *cobra.Command {
 | 
			
		||||
	cmd := &cobra.Command{
 | 
			
		||||
		Use:     "next-proposal-id",
 | 
			
		||||
		Short:   "Query the next proposal ID",
 | 
			
		||||
		Args:    cobra.ExactArgs(0),
 | 
			
		||||
		Example: fmt.Sprintf("%s query %s next-proposal-id", version.ClientName, types.ModuleName),
 | 
			
		||||
		RunE: func(cmd *cobra.Command, args []string) error {
 | 
			
		||||
			cliCtx := context.NewCLIContext().WithCodec(cdc)
 | 
			
		||||
 | 
			
		||||
			// Query
 | 
			
		||||
			res, _, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryNextProposalID), nil)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Decode and print results
 | 
			
		||||
			var nextProposalID uint64
 | 
			
		||||
			err = cdc.UnmarshalJSON(res, &nextProposalID)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			return cliCtx.PrintOutput(nextProposalID)
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	return cmd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetCmdQueryProposal implements the query proposal command.
 | 
			
		||||
func GetCmdQueryProposal(queryRoute string, cdc *codec.Codec) *cobra.Command {
 | 
			
		||||
	return &cobra.Command{
 | 
			
		||||
 | 
			
		||||
@ -17,6 +17,7 @@ import (
 | 
			
		||||
func registerQueryRoutes(cliCtx context.CLIContext, r *mux.Router) {
 | 
			
		||||
	r.HandleFunc(fmt.Sprintf("/%s/committees", types.ModuleName), queryCommitteesHandlerFn(cliCtx)).Methods("GET")
 | 
			
		||||
	r.HandleFunc(fmt.Sprintf("/%s/committees/{%s}", types.ModuleName, RestCommitteeID), queryCommitteeHandlerFn(cliCtx)).Methods("GET")
 | 
			
		||||
	r.HandleFunc(fmt.Sprintf("/%s/next-proposal-id", types.ModuleName), queryNextProposalIdHandlerFn(cliCtx)).Methods("GET")
 | 
			
		||||
	r.HandleFunc(fmt.Sprintf("/%s/committees/{%s}/proposals", types.ModuleName, RestCommitteeID), queryProposalsHandlerFn(cliCtx)).Methods("GET")
 | 
			
		||||
	r.HandleFunc(fmt.Sprintf("/%s/proposals/{%s}", types.ModuleName, RestProposalID), queryProposalHandlerFn(cliCtx)).Methods("GET")
 | 
			
		||||
	r.HandleFunc(fmt.Sprintf("/%s/proposals/{%s}/proposer", types.ModuleName, RestProposalID), queryProposerHandlerFn(cliCtx)).Methods("GET")
 | 
			
		||||
@ -91,6 +92,27 @@ func queryCommitteeHandlerFn(cliCtx context.CLIContext) http.HandlerFunc {
 | 
			
		||||
//				Proposals
 | 
			
		||||
// ------------------------------------------
 | 
			
		||||
 | 
			
		||||
func queryNextProposalIdHandlerFn(cliCtx context.CLIContext) http.HandlerFunc {
 | 
			
		||||
	return func(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
		// Parse the query height
 | 
			
		||||
		cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, cliCtx, r)
 | 
			
		||||
		if !ok {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Query
 | 
			
		||||
		res, height, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/%s", types.ModuleName, types.QueryNextProposalID), nil)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error())
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Write response
 | 
			
		||||
		cliCtx = cliCtx.WithHeight(height)
 | 
			
		||||
		rest.PostProcessResponse(w, cliCtx, res)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func queryProposalsHandlerFn(cliCtx context.CLIContext) http.HandlerFunc {
 | 
			
		||||
	return func(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
		// Parse the query height
 | 
			
		||||
 | 
			
		||||
@ -737,7 +737,7 @@ func addressesEqual(addrs1, addrs2 []sdk.AccAddress) bool {
 | 
			
		||||
	return areEqual
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DefaultNextProposalID is the starting poiint for proposal IDs.
 | 
			
		||||
// DefaultNextProposalID is the starting point for proposal IDs.
 | 
			
		||||
const DefaultNextProposalID uint64 = 1
 | 
			
		||||
 | 
			
		||||
// GenesisState is state that must be provided at chain genesis.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user