// Copyright 2021 Evmos Foundation // This file is part of Evmos' Ethermint library. // // The Ethermint library is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // The Ethermint library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with the Ethermint library. If not, see https://github.com/evmos/ethermint/blob/main/LICENSE package cli import ( "github.com/spf13/cobra" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cerc-io/laconicd/x/feemarket/types" ) // GetQueryCmd returns the parent command for all x/feemarket CLI query commands. func GetQueryCmd() *cobra.Command { cmd := &cobra.Command{ Use: types.ModuleName, Short: "Querying commands for the fee market module", DisableFlagParsing: true, SuggestionsMinimumDistance: 2, RunE: client.ValidateCmd, } cmd.AddCommand( GetBlockGasCmd(), GetBaseFeeCmd(), GetParamsCmd(), ) return cmd } // GetBlockGasCmd queries the gas used in a block func GetBlockGasCmd() *cobra.Command { cmd := &cobra.Command{ Use: "block-gas", Short: "Get the block gas used at a given block height", Long: `Get the block gas used at a given block height. If the height is not provided, it will use the latest height from context`, Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { clientCtx, err := client.GetClientQueryContext(cmd) if err != nil { return err } queryClient := types.NewQueryClient(clientCtx) ctx := cmd.Context() res, err := queryClient.BlockGas(ctx, &types.QueryBlockGasRequest{}) if err != nil { return err } return clientCtx.PrintProto(res) }, } flags.AddQueryFlagsToCmd(cmd) return cmd } // GetParamsCmd queries the fee market params func GetParamsCmd() *cobra.Command { cmd := &cobra.Command{ Use: "params", Short: "Get the fee market params", Long: "Get the fee market parameter values.", Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, _ []string) error { clientCtx, err := client.GetClientQueryContext(cmd) if err != nil { return err } queryClient := types.NewQueryClient(clientCtx) res, err := queryClient.Params(cmd.Context(), &types.QueryParamsRequest{}) if err != nil { return err } return clientCtx.PrintProto(res) }, } flags.AddQueryFlagsToCmd(cmd) return cmd } // GetBaseFeeCmd queries the base fee at a given height func GetBaseFeeCmd() *cobra.Command { cmd := &cobra.Command{ Use: "base-fee", Short: "Get the base fee amount at a given block height", Long: `Get the base fee amount at a given block height. If the height is not provided, it will use the latest height from context.`, Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { clientCtx, err := client.GetClientQueryContext(cmd) if err != nil { return err } queryClient := types.NewQueryClient(clientCtx) ctx := cmd.Context() res, err := queryClient.BaseFee(ctx, &types.QueryBaseFeeRequest{}) if err != nil { return err } return clientCtx.PrintProto(res) }, } flags.AddQueryFlagsToCmd(cmd) return cmd }