package rest import ( "fmt" "net/http" "github.com/gorilla/mux" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/types/rest" "github.com/cosmos/cosmos-sdk/x/mint/types" ) func registerQueryRoutes(clientCtx client.Context, r *mux.Router) { r.HandleFunc( "/minting/parameters", queryParamsHandlerFn(clientCtx), ).Methods("GET") r.HandleFunc( "/minting/inflation", queryInflationHandlerFn(clientCtx), ).Methods("GET") r.HandleFunc( "/minting/annual-provisions", queryAnnualProvisionsHandlerFn(clientCtx), ).Methods("GET") } func queryParamsHandlerFn(clientCtx client.Context) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryParameters) clientCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) if !ok { return } res, height, err := clientCtx.QueryWithData(route, nil) if rest.CheckInternalServerError(w, err) { return } clientCtx = clientCtx.WithHeight(height) rest.PostProcessResponse(w, clientCtx, res) } } func queryInflationHandlerFn(clientCtx client.Context) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryInflation) clientCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) if !ok { return } res, height, err := clientCtx.QueryWithData(route, nil) if rest.CheckInternalServerError(w, err) { return } clientCtx = clientCtx.WithHeight(height) rest.PostProcessResponse(w, clientCtx, res) } } func queryAnnualProvisionsHandlerFn(clientCtx client.Context) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryAnnualProvisions) clientCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) if !ok { return } res, height, err := clientCtx.QueryWithData(route, nil) if rest.CheckInternalServerError(w, err) { return } clientCtx = clientCtx.WithHeight(height) rest.PostProcessResponse(w, clientCtx, res) } }