ci: lint (#500)
This commit is contained in:
parent
b5288399d3
commit
7389770b10
@ -1,15 +1,15 @@
|
|||||||
run:
|
run:
|
||||||
tests: false
|
tests: false
|
||||||
# # timeout for analysis, e.g. 30s, 5m, default is 1m
|
# timeout for analysis, e.g. 30s, 5m, default is 1m
|
||||||
# timeout: 5m
|
# timeout: 5m
|
||||||
|
|
||||||
linters:
|
linters:
|
||||||
disable-all: true
|
|
||||||
enable:
|
enable:
|
||||||
- bodyclose
|
- bodyclose
|
||||||
- deadcode
|
- deadcode
|
||||||
- depguard
|
- depguard
|
||||||
- dogsled
|
- dogsled
|
||||||
|
- dupl
|
||||||
- errcheck
|
- errcheck
|
||||||
- goconst
|
- goconst
|
||||||
- gocritic
|
- gocritic
|
||||||
@ -20,9 +20,9 @@ linters:
|
|||||||
- gosimple
|
- gosimple
|
||||||
- govet
|
- govet
|
||||||
- ineffassign
|
- ineffassign
|
||||||
- interfacer
|
# - lll TODO: enable
|
||||||
- maligned
|
|
||||||
- misspell
|
- misspell
|
||||||
|
- maligned
|
||||||
- nakedret
|
- nakedret
|
||||||
- prealloc
|
- prealloc
|
||||||
- scopelint
|
- scopelint
|
||||||
@ -31,39 +31,33 @@ linters:
|
|||||||
- stylecheck
|
- stylecheck
|
||||||
- typecheck
|
- typecheck
|
||||||
- unconvert
|
- unconvert
|
||||||
- unused
|
|
||||||
- unparam
|
- unparam
|
||||||
- misspell
|
- unused
|
||||||
# TODO: address these lint issues
|
- varcheck
|
||||||
|
- nolintlint
|
||||||
|
- asciicheck
|
||||||
|
# - whitespace
|
||||||
# - wsl
|
# - wsl
|
||||||
# - nolintlint
|
|
||||||
|
|
||||||
issues:
|
issues:
|
||||||
exclude-rules:
|
exclude-rules:
|
||||||
- text: "Use of weak random number generator"
|
- path: _test\.go
|
||||||
linters:
|
linters:
|
||||||
- gosec
|
- gosec
|
||||||
- text: "comment on exported var"
|
- linters:
|
||||||
linters:
|
- lll
|
||||||
- golint
|
source: "https://"
|
||||||
- text: "don't use an underscore in package name"
|
max-same-issues: 50
|
||||||
linters:
|
|
||||||
- golint
|
|
||||||
- text: "ST1003:"
|
|
||||||
linters:
|
|
||||||
- stylecheck
|
|
||||||
- text: "SA1019:"
|
|
||||||
linters:
|
|
||||||
- staticcheck
|
|
||||||
max-issues-per-linter: 10000
|
|
||||||
max-same-issues: 10000
|
|
||||||
|
|
||||||
linters-settings:
|
linters-settings:
|
||||||
dogsled:
|
dogsled:
|
||||||
max-blank-identifiers: 3
|
max-blank-identifiers: 3
|
||||||
|
golint:
|
||||||
|
min-confidence: 0
|
||||||
maligned:
|
maligned:
|
||||||
# print struct with more effective memory layout or not, false by default
|
|
||||||
suggest-new: true
|
suggest-new: true
|
||||||
|
misspell:
|
||||||
|
locale: US
|
||||||
nolintlint:
|
nolintlint:
|
||||||
allow-unused: false
|
allow-unused: false
|
||||||
allow-leading-space: true
|
allow-leading-space: true
|
||||||
|
@ -320,11 +320,11 @@ func initGenFiles(
|
|||||||
numValidators int,
|
numValidators int,
|
||||||
) error {
|
) error {
|
||||||
|
|
||||||
appGenState := mbm.DefaultGenesis(clientCtx.JSONCodec)
|
appGenState := mbm.DefaultGenesis(clientCtx.Codec)
|
||||||
|
|
||||||
// set the accounts in the genesis state
|
// set the accounts in the genesis state
|
||||||
var authGenState authtypes.GenesisState
|
var authGenState authtypes.GenesisState
|
||||||
clientCtx.JSONCodec.MustUnmarshalJSON(appGenState[authtypes.ModuleName], &authGenState)
|
clientCtx.Codec.MustUnmarshalJSON(appGenState[authtypes.ModuleName], &authGenState)
|
||||||
|
|
||||||
accounts, err := authtypes.PackAccounts(genAccounts)
|
accounts, err := authtypes.PackAccounts(genAccounts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -332,44 +332,44 @@ func initGenFiles(
|
|||||||
}
|
}
|
||||||
|
|
||||||
authGenState.Accounts = accounts
|
authGenState.Accounts = accounts
|
||||||
appGenState[authtypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(&authGenState)
|
appGenState[authtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&authGenState)
|
||||||
|
|
||||||
// set the balances in the genesis state
|
// set the balances in the genesis state
|
||||||
var bankGenState banktypes.GenesisState
|
var bankGenState banktypes.GenesisState
|
||||||
clientCtx.JSONCodec.MustUnmarshalJSON(appGenState[banktypes.ModuleName], &bankGenState)
|
clientCtx.Codec.MustUnmarshalJSON(appGenState[banktypes.ModuleName], &bankGenState)
|
||||||
|
|
||||||
bankGenState.Balances = genBalances
|
bankGenState.Balances = genBalances
|
||||||
appGenState[banktypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(&bankGenState)
|
appGenState[banktypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&bankGenState)
|
||||||
|
|
||||||
var stakingGenState stakingtypes.GenesisState
|
var stakingGenState stakingtypes.GenesisState
|
||||||
clientCtx.JSONCodec.MustUnmarshalJSON(appGenState[stakingtypes.ModuleName], &stakingGenState)
|
clientCtx.Codec.MustUnmarshalJSON(appGenState[stakingtypes.ModuleName], &stakingGenState)
|
||||||
|
|
||||||
stakingGenState.Params.BondDenom = coinDenom
|
stakingGenState.Params.BondDenom = coinDenom
|
||||||
appGenState[stakingtypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(&stakingGenState)
|
appGenState[stakingtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&stakingGenState)
|
||||||
|
|
||||||
var govGenState govtypes.GenesisState
|
var govGenState govtypes.GenesisState
|
||||||
clientCtx.JSONCodec.MustUnmarshalJSON(appGenState[govtypes.ModuleName], &govGenState)
|
clientCtx.Codec.MustUnmarshalJSON(appGenState[govtypes.ModuleName], &govGenState)
|
||||||
|
|
||||||
govGenState.DepositParams.MinDeposit[0].Denom = coinDenom
|
govGenState.DepositParams.MinDeposit[0].Denom = coinDenom
|
||||||
appGenState[govtypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(&govGenState)
|
appGenState[govtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&govGenState)
|
||||||
|
|
||||||
var mintGenState mintypes.GenesisState
|
var mintGenState mintypes.GenesisState
|
||||||
clientCtx.JSONCodec.MustUnmarshalJSON(appGenState[mintypes.ModuleName], &mintGenState)
|
clientCtx.Codec.MustUnmarshalJSON(appGenState[mintypes.ModuleName], &mintGenState)
|
||||||
|
|
||||||
mintGenState.Params.MintDenom = coinDenom
|
mintGenState.Params.MintDenom = coinDenom
|
||||||
appGenState[mintypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(&mintGenState)
|
appGenState[mintypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&mintGenState)
|
||||||
|
|
||||||
var crisisGenState crisistypes.GenesisState
|
var crisisGenState crisistypes.GenesisState
|
||||||
clientCtx.JSONCodec.MustUnmarshalJSON(appGenState[crisistypes.ModuleName], &crisisGenState)
|
clientCtx.Codec.MustUnmarshalJSON(appGenState[crisistypes.ModuleName], &crisisGenState)
|
||||||
|
|
||||||
crisisGenState.ConstantFee.Denom = coinDenom
|
crisisGenState.ConstantFee.Denom = coinDenom
|
||||||
appGenState[crisistypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(&crisisGenState)
|
appGenState[crisistypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&crisisGenState)
|
||||||
|
|
||||||
var evmGenState evmtypes.GenesisState
|
var evmGenState evmtypes.GenesisState
|
||||||
clientCtx.JSONCodec.MustUnmarshalJSON(appGenState[evmtypes.ModuleName], &evmGenState)
|
clientCtx.Codec.MustUnmarshalJSON(appGenState[evmtypes.ModuleName], &evmGenState)
|
||||||
|
|
||||||
evmGenState.Params.EvmDenom = coinDenom
|
evmGenState.Params.EvmDenom = coinDenom
|
||||||
appGenState[evmtypes.ModuleName] = clientCtx.JSONCodec.MustMarshalJSON(&evmGenState)
|
appGenState[evmtypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(&evmGenState)
|
||||||
|
|
||||||
appGenStateJSON, err := json.MarshalIndent(appGenState, "", " ")
|
appGenStateJSON, err := json.MarshalIndent(appGenState, "", " ")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -416,7 +416,7 @@ func collectGenFiles(
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeAppState, err := genutil.GenAppStateFromConfig(clientCtx.JSONCodec, clientCtx.TxConfig, nodeConfig, initCfg, *genDoc, genBalIterator)
|
nodeAppState, err := genutil.GenAppStateFromConfig(clientCtx.Codec, clientCtx.TxConfig, nodeConfig, initCfg, *genDoc, genBalIterator)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -39,12 +39,12 @@ func TestSetBech32Prefixes(t *testing.T) {
|
|||||||
func TestSetCoinType(t *testing.T) {
|
func TestSetCoinType(t *testing.T) {
|
||||||
config := sdk.GetConfig()
|
config := sdk.GetConfig()
|
||||||
require.Equal(t, sdk.CoinType, int(config.GetCoinType()))
|
require.Equal(t, sdk.CoinType, int(config.GetCoinType()))
|
||||||
require.Equal(t, sdk.FullFundraiserPath, config.GetFullFundraiserPath())
|
require.Equal(t, sdk.FullFundraiserPath, config.GetFullBIP44Path())
|
||||||
|
|
||||||
SetBip44CoinType(config)
|
SetBip44CoinType(config)
|
||||||
require.Equal(t, int(ethermint.Bip44CoinType), int(config.GetCoinType()))
|
require.Equal(t, int(ethermint.Bip44CoinType), int(config.GetCoinType()))
|
||||||
require.Equal(t, sdk.GetConfig().GetCoinType(), config.GetCoinType())
|
require.Equal(t, sdk.GetConfig().GetCoinType(), config.GetCoinType())
|
||||||
require.Equal(t, sdk.GetConfig().GetFullFundraiserPath(), config.GetFullFundraiserPath())
|
require.Equal(t, sdk.GetConfig().GetFullBIP44Path(), config.GetFullBIP44Path())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestHDPath(t *testing.T) {
|
func TestHDPath(t *testing.T) {
|
||||||
|
@ -76,12 +76,12 @@ func (privKey PrivKey) Type() string {
|
|||||||
return KeyType
|
return KeyType
|
||||||
}
|
}
|
||||||
|
|
||||||
// MarshalAmino overrides Amino binary marshalling.
|
// MarshalAmino overrides Amino binary marshaling.
|
||||||
func (privKey PrivKey) MarshalAmino() ([]byte, error) {
|
func (privKey PrivKey) MarshalAmino() ([]byte, error) {
|
||||||
return privKey.Key, nil
|
return privKey.Key, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnmarshalAmino overrides Amino binary marshalling.
|
// UnmarshalAmino overrides Amino binary marshaling.
|
||||||
func (privKey *PrivKey) UnmarshalAmino(bz []byte) error {
|
func (privKey *PrivKey) UnmarshalAmino(bz []byte) error {
|
||||||
if len(bz) != PrivKeySize {
|
if len(bz) != PrivKeySize {
|
||||||
return fmt.Errorf("invalid privkey size, expected %d got %d", PrivKeySize, len(bz))
|
return fmt.Errorf("invalid privkey size, expected %d got %d", PrivKeySize, len(bz))
|
||||||
@ -91,14 +91,14 @@ func (privKey *PrivKey) UnmarshalAmino(bz []byte) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// MarshalAminoJSON overrides Amino JSON marshalling.
|
// MarshalAminoJSON overrides Amino JSON marshaling.
|
||||||
func (privKey PrivKey) MarshalAminoJSON() ([]byte, error) {
|
func (privKey PrivKey) MarshalAminoJSON() ([]byte, error) {
|
||||||
// When we marshal to Amino JSON, we don't marshal the "key" field itself,
|
// When we marshal to Amino JSON, we don't marshal the "key" field itself,
|
||||||
// just its contents (i.e. the key bytes).
|
// just its contents (i.e. the key bytes).
|
||||||
return privKey.MarshalAmino()
|
return privKey.MarshalAmino()
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnmarshalAminoJSON overrides Amino JSON marshalling.
|
// UnmarshalAminoJSON overrides Amino JSON marshaling.
|
||||||
func (privKey *PrivKey) UnmarshalAminoJSON(bz []byte) error {
|
func (privKey *PrivKey) UnmarshalAminoJSON(bz []byte) error {
|
||||||
return privKey.UnmarshalAmino(bz)
|
return privKey.UnmarshalAmino(bz)
|
||||||
}
|
}
|
||||||
@ -163,12 +163,12 @@ func (pubKey PubKey) Equals(other cryptotypes.PubKey) bool {
|
|||||||
return pubKey.Type() == other.Type() && bytes.Equal(pubKey.Bytes(), other.Bytes())
|
return pubKey.Type() == other.Type() && bytes.Equal(pubKey.Bytes(), other.Bytes())
|
||||||
}
|
}
|
||||||
|
|
||||||
// MarshalAmino overrides Amino binary marshalling.
|
// MarshalAmino overrides Amino binary marshaling.
|
||||||
func (pubKey PubKey) MarshalAmino() ([]byte, error) {
|
func (pubKey PubKey) MarshalAmino() ([]byte, error) {
|
||||||
return pubKey.Key, nil
|
return pubKey.Key, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnmarshalAmino overrides Amino binary marshalling.
|
// UnmarshalAmino overrides Amino binary marshaling.
|
||||||
func (pubKey *PubKey) UnmarshalAmino(bz []byte) error {
|
func (pubKey *PubKey) UnmarshalAmino(bz []byte) error {
|
||||||
if len(bz) != PubKeySize {
|
if len(bz) != PubKeySize {
|
||||||
return sdkerrors.Wrapf(sdkerrors.ErrInvalidPubKey, "invalid pubkey size, expected %d, got %d", PubKeySize, len(bz))
|
return sdkerrors.Wrapf(sdkerrors.ErrInvalidPubKey, "invalid pubkey size, expected %d, got %d", PubKeySize, len(bz))
|
||||||
@ -178,14 +178,14 @@ func (pubKey *PubKey) UnmarshalAmino(bz []byte) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// MarshalAminoJSON overrides Amino JSON marshalling.
|
// MarshalAminoJSON overrides Amino JSON marshaling.
|
||||||
func (pubKey PubKey) MarshalAminoJSON() ([]byte, error) {
|
func (pubKey PubKey) MarshalAminoJSON() ([]byte, error) {
|
||||||
// When we marshal to Amino JSON, we don't marshal the "key" field itself,
|
// When we marshal to Amino JSON, we don't marshal the "key" field itself,
|
||||||
// just its contents (i.e. the key bytes).
|
// just its contents (i.e. the key bytes).
|
||||||
return pubKey.MarshalAmino()
|
return pubKey.MarshalAmino()
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnmarshalAminoJSON overrides Amino JSON marshalling.
|
// UnmarshalAminoJSON overrides Amino JSON marshaling.
|
||||||
func (pubKey *PubKey) UnmarshalAminoJSON(bz []byte) error {
|
func (pubKey *PubKey) UnmarshalAminoJSON(bz []byte) error {
|
||||||
return pubKey.UnmarshalAmino(bz)
|
return pubKey.UnmarshalAmino(bz)
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,7 @@ func (a *InternalAPI) BlockProfile(file string, nsec uint) error {
|
|||||||
|
|
||||||
// CpuProfile turns on CPU profiling for nsec seconds and writes
|
// CpuProfile turns on CPU profiling for nsec seconds and writes
|
||||||
// profile data to file.
|
// profile data to file.
|
||||||
func (a *InternalAPI) CpuProfile(file string, nsec uint) error { // nolint: golint
|
func (a *InternalAPI) CpuProfile(file string, nsec uint) error { // nolint: golint, stylecheck
|
||||||
a.logger.Debug("debug_cpuProfile", "file", file, "nsec", nsec)
|
a.logger.Debug("debug_cpuProfile", "file", file, "nsec", nsec)
|
||||||
if err := a.StartCPUProfile(file); err != nil {
|
if err := a.StartCPUProfile(file); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -893,7 +893,7 @@ func (e *PublicAPI) GetProof(address common.Address, storageKeys []string, block
|
|||||||
func (e *PublicAPI) getBlockNumber(blockNrOrHash rpctypes.BlockNumberOrHash) (rpctypes.BlockNumber, error) {
|
func (e *PublicAPI) getBlockNumber(blockNrOrHash rpctypes.BlockNumberOrHash) (rpctypes.BlockNumber, error) {
|
||||||
switch {
|
switch {
|
||||||
case blockNrOrHash.BlockHash == nil && blockNrOrHash.BlockNumber == nil:
|
case blockNrOrHash.BlockHash == nil && blockNrOrHash.BlockNumber == nil:
|
||||||
return rpctypes.EthEarliestBlockNumber, fmt.Errorf("BlockHash and BlockNumber cannot be both nil")
|
return rpctypes.EthEarliestBlockNumber, fmt.Errorf("types BlockHash and BlockNumber cannot be both nil")
|
||||||
case blockNrOrHash.BlockHash != nil:
|
case blockNrOrHash.BlockHash != nil:
|
||||||
blockHeader, err := e.backend.HeaderByHash(*blockNrOrHash.BlockHash)
|
blockHeader, err := e.backend.HeaderByHash(*blockNrOrHash.BlockHash)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -191,7 +191,7 @@ func (api *PublicFilterAPI) NewPendingTransactions(ctx context.Context) (*rpc.Su
|
|||||||
|
|
||||||
txHash := common.BytesToHash(tmtypes.Tx(data.Tx).Hash())
|
txHash := common.BytesToHash(tmtypes.Tx(data.Tx).Hash())
|
||||||
|
|
||||||
// To keep the original behaviour, send a single tx hash in one notification.
|
// To keep the original behavior, send a single tx hash in one notification.
|
||||||
// TODO(rjl493456442) Send a batch of tx hashes in one notification
|
// TODO(rjl493456442) Send a batch of tx hashes in one notification
|
||||||
err = notifier.Notify(rpcSub.ID, txHash)
|
err = notifier.Notify(rpcSub.ID, txHash)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -39,7 +39,7 @@ type PrivateAccountAPI struct {
|
|||||||
// NewAPI creates an instance of the public Personal Eth API.
|
// NewAPI creates an instance of the public Personal Eth API.
|
||||||
func NewAPI(logger log.Logger, clientCtx client.Context, backend backend.Backend) *PrivateAccountAPI {
|
func NewAPI(logger log.Logger, clientCtx client.Context, backend backend.Backend) *PrivateAccountAPI {
|
||||||
cfg := sdk.GetConfig()
|
cfg := sdk.GetConfig()
|
||||||
basePath := cfg.GetFullFundraiserPath()
|
basePath := cfg.GetFullBIP44Path()
|
||||||
|
|
||||||
iterator, err := ethermint.NewHDPathIterator(basePath, true)
|
iterator, err := ethermint.NewHDPathIterator(basePath, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -222,7 +222,6 @@ func DeployTestContractWithFunction(t *testing.T, addr []byte) hexutil.Bytes {
|
|||||||
return hash
|
return hash
|
||||||
}
|
}
|
||||||
|
|
||||||
//nolint
|
|
||||||
func GetTransactionReceipt(t *testing.T, hash hexutil.Bytes) map[string]interface{} {
|
func GetTransactionReceipt(t *testing.T, hash hexutil.Bytes) map[string]interface{} {
|
||||||
param := []string{hash.String()}
|
param := []string{hash.String()}
|
||||||
rpcRes := Call(t, "eth_getTransactionReceipt", param)
|
rpcRes := Call(t, "eth_getTransactionReceipt", param)
|
||||||
|
@ -66,7 +66,6 @@ func InitGenesis(
|
|||||||
func ExportGenesis(ctx sdk.Context, k *keeper.Keeper, ak types.AccountKeeper) *types.GenesisState {
|
func ExportGenesis(ctx sdk.Context, k *keeper.Keeper, ak types.AccountKeeper) *types.GenesisState {
|
||||||
k.WithContext(ctx)
|
k.WithContext(ctx)
|
||||||
|
|
||||||
// nolint: prealloc
|
|
||||||
var ethGenAccounts []types.GenesisAccount
|
var ethGenAccounts []types.GenesisAccount
|
||||||
ak.IterateAccounts(ctx, func(account authtypes.AccountI) bool {
|
ak.IterateAccounts(ctx, func(account authtypes.AccountI) bool {
|
||||||
ethAccount, ok := account.(*ethermint.EthAccount)
|
ethAccount, ok := account.(*ethermint.EthAccount)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cli
|
package cli
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
@ -37,7 +38,8 @@ func GetBlockGasCmd() *cobra.Command {
|
|||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "block-gas [height]",
|
Use: "block-gas [height]",
|
||||||
Short: "Get the block gas used at a given block height",
|
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.",
|
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.RangeArgs(0, 1),
|
Args: cobra.RangeArgs(0, 1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
clientCtx, err := client.GetClientQueryContext(cmd)
|
clientCtx, err := client.GetClientQueryContext(cmd)
|
||||||
@ -47,13 +49,10 @@ func GetBlockGasCmd() *cobra.Command {
|
|||||||
|
|
||||||
ctx := cmd.Context()
|
ctx := cmd.Context()
|
||||||
if len(args) == 1 {
|
if len(args) == 1 {
|
||||||
height := args[0]
|
ctx, err = getContextHeight(ctx, args[0])
|
||||||
_, err := strconv.ParseInt(height, 10, 64)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("invalid height: %w", err)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx = metadata.AppendToOutgoingContext(ctx, grpctypes.GRPCBlockHeightHeader, height)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
queryClient := types.NewQueryClient(clientCtx)
|
queryClient := types.NewQueryClient(clientCtx)
|
||||||
@ -104,7 +103,8 @@ func GetBaseFeeCmd() *cobra.Command {
|
|||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "base-fee [height]",
|
Use: "base-fee [height]",
|
||||||
Short: "Get the base fee amount at a given block height",
|
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.",
|
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.RangeArgs(0, 1),
|
Args: cobra.RangeArgs(0, 1),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
clientCtx, err := client.GetClientQueryContext(cmd)
|
clientCtx, err := client.GetClientQueryContext(cmd)
|
||||||
@ -114,13 +114,10 @@ func GetBaseFeeCmd() *cobra.Command {
|
|||||||
|
|
||||||
ctx := cmd.Context()
|
ctx := cmd.Context()
|
||||||
if len(args) == 1 {
|
if len(args) == 1 {
|
||||||
height := args[0]
|
ctx, err = getContextHeight(ctx, args[0])
|
||||||
_, err := strconv.ParseInt(height, 10, 64)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("invalid height: %w", err)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx = metadata.AppendToOutgoingContext(ctx, grpctypes.GRPCBlockHeightHeader, height)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
queryClient := types.NewQueryClient(clientCtx)
|
queryClient := types.NewQueryClient(clientCtx)
|
||||||
@ -137,3 +134,12 @@ func GetBaseFeeCmd() *cobra.Command {
|
|||||||
flags.AddQueryFlagsToCmd(cmd)
|
flags.AddQueryFlagsToCmd(cmd)
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getContextHeight(ctx context.Context, height string) (context.Context, error) {
|
||||||
|
_, err := strconv.ParseInt(height, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return ctx, fmt.Errorf("invalid height: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return metadata.AppendToOutgoingContext(ctx, grpctypes.GRPCBlockHeightHeader, height), nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user