diff --git a/CHANGELOG.md b/CHANGELOG.md index 48b9003b37..efd40143e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,12 @@ Ref: https://keepachangelog.com/en/1.0.0/ # Changelog +## [v0.11.1] - 2022-07-13 + +### Improvements + +* (rpc) [\#1169](https://github.com/evmos/ethermint/pull/1169) Remove unnecessary queries from `getBlockNumber` function + ## [v0.11.0] - 2022-03-06 ### State Machine Breaking diff --git a/app/ante/ante.go b/app/ante/ante.go index fbf1e9c760..bc7903eab4 100644 --- a/app/ante/ante.go +++ b/app/ante/ante.go @@ -12,7 +12,7 @@ import ( authante "github.com/cosmos/cosmos-sdk/x/auth/ante" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/tharsis/ethermint/crypto/ethsecp256k1" + "github.com/tharsis/ethermint/crypto/ethsecp256k1" // nolint: typecheck ) const ( diff --git a/app/ante/eip712.go b/app/ante/eip712.go index 9de0d191b4..fb602d244c 100644 --- a/app/ante/eip712.go +++ b/app/ante/eip712.go @@ -10,10 +10,10 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/types/tx/signing" authante "github.com/cosmos/cosmos-sdk/x/auth/ante" - "github.com/cosmos/cosmos-sdk/x/auth/legacy/legacytx" + "github.com/cosmos/cosmos-sdk/x/auth/legacy/legacytx" // nolint: typecheck authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing" - ethcrypto "github.com/ethereum/go-ethereum/crypto" + ethcrypto "github.com/ethereum/go-ethereum/crypto" // nolint: typecheck "github.com/ethereum/go-ethereum/crypto/secp256k1" "github.com/tharsis/ethermint/crypto/ethsecp256k1" "github.com/tharsis/ethermint/ethereum/eip712" diff --git a/app/ante/eth.go b/app/ante/eth.go index 0908377ceb..b15ff39866 100644 --- a/app/ante/eth.go +++ b/app/ante/eth.go @@ -112,7 +112,7 @@ func (avd EthAccountVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx // check whether the sender address is EOA fromAddr := common.BytesToAddress(from) - acct := avd.evmKeeper.GetAccount(ctx, fromAddr) + acct := avd.evmKeeper.GetAccount(ctx, fromAddr) // nolint: typecheck if acct == nil { acc := avd.ak.NewAccountWithAddress(ctx, from) diff --git a/app/ante/reject_msgs.go b/app/ante/reject_msgs.go index fafb159ed3..2f0e733688 100644 --- a/app/ante/reject_msgs.go +++ b/app/ante/reject_msgs.go @@ -3,7 +3,7 @@ package ante import ( sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - evmtypes "github.com/tharsis/ethermint/x/evm/types" + evmtypes "github.com/tharsis/ethermint/x/evm/types" // nolint: typecheck ) // RejectMessagesDecorator prevents invalid msg types from being executed diff --git a/app/app.go b/app/app.go index d50d661446..2da2a516be 100644 --- a/app/app.go +++ b/app/app.go @@ -755,7 +755,8 @@ func GetMaccPerms() map[string][]string { // initParamsKeeper init params keeper and its subspaces func initParamsKeeper( - appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey sdk.StoreKey) paramskeeper.Keeper { + appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey sdk.StoreKey, +) paramskeeper.Keeper { paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey) // SDK subspaces diff --git a/client/testnet.go b/client/testnet.go index 4bee072e9f..3a518df986 100644 --- a/client/testnet.go +++ b/client/testnet.go @@ -208,7 +208,6 @@ func initTestnetFiles( genBalIterator banktypes.GenesisBalancesIterator, args initArgs, ) error { - if args.chainID == "" { args.chainID = fmt.Sprintf("ethermint_%d-1", tmrand.Int63n(9999999999999)+1) } @@ -377,7 +376,6 @@ func initGenFiles( genFiles []string, numValidators int, ) error { - appGenState := mbm.DefaultGenesis(clientCtx.Codec) // set the accounts in the genesis state var authGenState authtypes.GenesisState @@ -453,7 +451,6 @@ func collectGenFiles( nodeIDs []string, valPubKeys []cryptotypes.PubKey, numValidators int, outputDir, nodeDirPrefix, nodeDaemonHome string, genBalIterator banktypes.GenesisBalancesIterator, ) error { - var appState json.RawMessage genTime := tmtime.Now() diff --git a/crypto/ethsecp256k1/ethsecp256k1.go b/crypto/ethsecp256k1/ethsecp256k1.go index 38f16c336a..be54e83c9a 100644 --- a/crypto/ethsecp256k1/ethsecp256k1.go +++ b/crypto/ethsecp256k1/ethsecp256k1.go @@ -3,7 +3,7 @@ package ethsecp256k1 import ( "bytes" "crypto/ecdsa" - "crypto/subtle" + "crypto/subtle" // nolint: typecheck "fmt" "github.com/cosmos/cosmos-sdk/codec" diff --git a/ethereum/eip712/eip712.go b/ethereum/eip712/eip712.go index 35a05dc244..d4975328d6 100644 --- a/ethereum/eip712/eip712.go +++ b/ethereum/eip712/eip712.go @@ -96,7 +96,7 @@ type FeeDelegationOptions struct { func extractMsgTypes(cdc codectypes.AnyUnpacker, msgTypeName string, msg sdk.Msg) (apitypes.Types, error) { rootTypes := apitypes.Types{ - "EIP712Domain": { + "EIP712Domain": { // nolint: typecheck { Name: "name", Type: "string", @@ -118,7 +118,7 @@ func extractMsgTypes(cdc codectypes.AnyUnpacker, msgTypeName string, msg sdk.Msg Type: "string", }, }, - "Tx": { + "Tx": { // nolint: typecheck {Name: "account_number", Type: "string"}, {Name: "chain_id", Type: "string"}, {Name: "fee", Type: "Fee"}, @@ -128,19 +128,19 @@ func extractMsgTypes(cdc codectypes.AnyUnpacker, msgTypeName string, msg sdk.Msg // Note timeout_height was removed because it was not getting filled with the legacyTx // {Name: "timeout_height", Type: "string"}, }, - "Fee": { + "Fee": { // nolint: typecheck {Name: "amount", Type: "Coin[]"}, {Name: "gas", Type: "string"}, }, - "Coin": { + "Coin": { // nolint: typecheck {Name: "denom", Type: "string"}, {Name: "amount", Type: "string"}, }, - "Msg": { + "Msg": { // nolint: typecheck {Name: "type", Type: "string"}, {Name: "value", Type: msgTypeName}, }, - msgTypeName: {}, + msgTypeName: {}, // nolint: typecheck } if err := walkFields(cdc, rootTypes, msgTypeName, msg); err != nil { @@ -364,7 +364,7 @@ func sanitizeTypedef(str string) string { subparts := strings.Split(part, "_") for _, subpart := range subparts { - buf.WriteString(strings.Title(subpart)) + buf.WriteString(strings.Title(subpart)) // nolint: staticcheck } } diff --git a/go.sum b/go.sum index 795849a80b..a37044946e 100644 --- a/go.sum +++ b/go.sum @@ -308,10 +308,12 @@ github.com/ethereum/go-ethereum v1.10.16 h1:3oPrumn0bCW/idjcxMn5YYVCdK7VzJYIvwGZ github.com/ethereum/go-ethereum v1.10.16/go.mod h1:Anj6cxczl+AHy63o4X9O8yWNHuN5wMpfb8MAnHkWn7Y= github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= +github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= +github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= github.com/fatih/color v1.3.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= @@ -341,6 +343,7 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU= +github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= @@ -523,6 +526,7 @@ github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIv github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/api v1.11.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= +github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= @@ -797,9 +801,11 @@ github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2i github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= +github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= github.com/opencontainers/runc v1.0.3 h1:1hbqejyQWCJBvtKAfdO0b1FmaEf2z/bxnjqbARass5k= +github.com/opencontainers/runc v1.0.3/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= @@ -920,6 +926,7 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= +github.com/sagikazarmark/crypt v0.4.0/go.mod h1:ALv2SRj7GxYV4HO9elxH9nS6M9gW+xDNxqmyJ6RfDFM= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa h1:0U2s5loxrTy6/VgfVoLuVLFJcURKLH49ie0zSch7gh4= github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= @@ -1483,6 +1490,7 @@ google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdr google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= diff --git a/rpc/ethereum/backend/backend.go b/rpc/ethereum/backend/backend.go index c337444120..08ebf263c0 100644 --- a/rpc/ethereum/backend/backend.go +++ b/rpc/ethereum/backend/backend.go @@ -62,6 +62,7 @@ type Backend interface { BlockByHash(blockHash common.Hash) (*ethtypes.Block, error) CurrentHeader() *ethtypes.Header HeaderByNumber(blockNum types.BlockNumber) (*ethtypes.Header, error) + GetBlockNumberByHash(blockHash common.Hash) (*big.Int, error) HeaderByHash(blockHash common.Hash) (*ethtypes.Header, error) PendingTransactions() ([]*sdk.Tx, error) GetTransactionCount(address common.Address, blockNum types.BlockNumber) (*hexutil.Uint64, error) @@ -506,6 +507,18 @@ func (e *EVMBackend) HeaderByNumber(blockNum types.BlockNumber) (*ethtypes.Heade return ethHeader, nil } +// GetBlockNumberByHash returns the block height of given block hash +func (e *EVMBackend) GetBlockNumberByHash(blockHash common.Hash) (*big.Int, error) { + resBlock, err := e.GetTendermintBlockByHash(blockHash) + if err != nil { + return nil, err + } + if resBlock == nil { + return nil, errors.Errorf("block not found for hash %s", blockHash.Hex()) + } + return big.NewInt(resBlock.Block.Height), nil +} + // HeaderByHash returns the block header identified by hash. func (e *EVMBackend) HeaderByHash(blockHash common.Hash) (*ethtypes.Header, error) { resBlock, err := e.clientCtx.Client.BlockByHash(e.ctx, blockHash.Bytes()) diff --git a/rpc/ethereum/backend/feebackend.go b/rpc/ethereum/backend/feebackend.go index ed44833aca..6bac2e4a5c 100644 --- a/rpc/ethereum/backend/feebackend.go +++ b/rpc/ethereum/backend/feebackend.go @@ -35,7 +35,8 @@ func (e *EVMBackend) processBlock( ethBlock *map[string]interface{}, rewardPercentiles []float64, tendermintBlockResult *tmrpctypes.ResultBlockResults, - targetOneFeeHistory *rpctypes.OneFeeHistory) error { + targetOneFeeHistory *rpctypes.OneFeeHistory, +) error { blockHeight := tendermintBlock.Block.Height blockBaseFee, err := e.BaseFee(blockHeight) if err != nil { diff --git a/rpc/ethereum/namespaces/eth/api.go b/rpc/ethereum/namespaces/eth/api.go index 2cbbb24732..7fb2d91bcf 100644 --- a/rpc/ethereum/namespaces/eth/api.go +++ b/rpc/ethereum/namespaces/eth/api.go @@ -1102,11 +1102,11 @@ func (e *PublicAPI) getBlockNumber(blockNrOrHash rpctypes.BlockNumberOrHash) (rp case blockNrOrHash.BlockHash == nil && blockNrOrHash.BlockNumber == nil: return rpctypes.EthEarliestBlockNumber, fmt.Errorf("types BlockHash and BlockNumber cannot be both nil") case blockNrOrHash.BlockHash != nil: - blockHeader, err := e.backend.HeaderByHash(*blockNrOrHash.BlockHash) + blockNumber, err := e.backend.GetBlockNumberByHash(*blockNrOrHash.BlockHash) if err != nil { return rpctypes.EthEarliestBlockNumber, err } - return rpctypes.NewBlockNumber(blockHeader.Number), nil + return rpctypes.NewBlockNumber(blockNumber), nil case blockNrOrHash.BlockNumber != nil: return *blockNrOrHash.BlockNumber, nil default: diff --git a/rpc/ethereum/types/block.go b/rpc/ethereum/types/block.go index 0f407f9086..1121566a2e 100644 --- a/rpc/ethereum/types/block.go +++ b/rpc/ethereum/types/block.go @@ -15,7 +15,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" - grpctypes "github.com/cosmos/cosmos-sdk/types/grpc" + grpctypes "github.com/cosmos/cosmos-sdk/types/grpc" // nolint: typecheck ethermint "github.com/tharsis/ethermint/types" ) diff --git a/tests/importer/chain_ctx.go b/tests/importer/chain_ctx.go index 7ee12ffc32..f4fd9244ec 100644 --- a/tests/importer/chain_ctx.go +++ b/tests/importer/chain_ctx.go @@ -96,8 +96,10 @@ func (cc *ChainContext) Finalize( // Note: The block header and state database might be updated to reflect any // consensus rules that happen at finalization (e.g. block rewards). // TODO: Figure out if this needs to be hooked up to any part of the ABCI? -func (cc *ChainContext) FinalizeAndAssemble(_ ethcons.ChainHeaderReader, _ *ethtypes.Header, _ *ethstate.StateDB, _ []*ethtypes.Transaction, - _ []*ethtypes.Header, _ []*ethtypes.Receipt) (*ethtypes.Block, error) { +func (cc *ChainContext) FinalizeAndAssemble( + _ ethcons.ChainHeaderReader, _ *ethtypes.Header, _ *ethstate.StateDB, + _ []*ethtypes.Transaction, _ []*ethtypes.Header, _ []*ethtypes.Receipt, +) (*ethtypes.Block, error) { return nil, nil } diff --git a/types/account.go b/types/account.go index abdec11bdb..33d900b227 100644 --- a/types/account.go +++ b/types/account.go @@ -54,7 +54,7 @@ func ProtoAccount() authtypes.AccountI { // EthAddress returns the account address ethereum format. func (acc EthAccount) EthAddress() common.Address { - return common.BytesToAddress(acc.GetAddress().Bytes()) + return common.BytesToAddress(acc.GetAddress().Bytes()) // nolint: typecheck } // GetCodeHash returns the account code hash in byte format diff --git a/x/evm/keeper/statedb.go b/x/evm/keeper/statedb.go index 1dbd6f9b72..3f2beddc59 100644 --- a/x/evm/keeper/statedb.go +++ b/x/evm/keeper/statedb.go @@ -9,7 +9,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" - ethermint "github.com/tharsis/ethermint/types" + ethermint "github.com/tharsis/ethermint/types" // nolint: typecheck "github.com/tharsis/ethermint/x/evm/statedb" "github.com/tharsis/ethermint/x/evm/types" ) diff --git a/x/evm/types/msg.go b/x/evm/types/msg.go index 7cec50c944..f793708273 100644 --- a/x/evm/types/msg.go +++ b/x/evm/types/msg.go @@ -12,7 +12,7 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/auth/ante" "github.com/cosmos/cosmos-sdk/x/auth/signing" - authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" + authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" // nolint: typecheck "github.com/tharsis/ethermint/types"