Skip to content

Commit

Permalink
rpc: protocol version (cosmos#575)
Browse files Browse the repository at this point in the history
* evm: protocol version

* changelog

* version

* fix

* support latest version only
  • Loading branch information
fedekunze authored Dec 8, 2020
1 parent 3bb76e8 commit ef1bef1
Show file tree
Hide file tree
Showing 10 changed files with 20 additions and 60 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
* (evm) [\#621](https://github.com/cosmos/ethermint/issues/621) EVM `GenesisAccount` fields now share the same format as the auth module `Account`.
* (evm) [\#618](https://github.com/cosmos/ethermint/issues/618) Add missing EVM `Context` `GetHash` field that retrieves a the header hash from a given block height.
* (app) [\#617](https://github.com/cosmos/ethermint/issues/617) Fix genesis export functionality.
* (rpc) [\#574](https://github.com/cosmos/ethermint/issues/574) Fix outdated version from `eth_protocolVersion`.

## [v0.3.1] - 2020-11-24

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -123,14 +123,14 @@ all: tools verify install
###############################################################################

build: go.sum

ifeq ($(OS), Windows_NT)
go build -mod=readonly $(BUILD_FLAGS) -o build/$(ETHERMINT_DAEMON_BINARY).exe ./cmd/$(ETHERMINT_DAEMON_BINARY)
go build -mod=readonly $(BUILD_FLAGS) -o build/$(ETHERMINT_CLI_BINARY).exe ./cmd/$(ETHERMINT_CLI_BINARY)
else
go build -mod=readonly $(BUILD_FLAGS) -o build/$(ETHERMINT_DAEMON_BINARY) ./cmd/$(ETHERMINT_DAEMON_BINARY)
go build -mod=readonly $(BUILD_FLAGS) -o build/$(ETHERMINT_CLI_BINARY) ./cmd/$(ETHERMINT_CLI_BINARY)
endif
go build -mod=readonly ./...

build-ethermint: go.sum
mkdir -p $(BUILDDIR)
Expand Down
3 changes: 1 addition & 2 deletions rpc/namespaces/eth/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import (
rpctypes "github.com/cosmos/ethermint/rpc/types"
ethermint "github.com/cosmos/ethermint/types"
"github.com/cosmos/ethermint/utils"
"github.com/cosmos/ethermint/version"
evmtypes "github.com/cosmos/ethermint/x/evm/types"

abci "github.com/tendermint/tendermint/abci/types"
Expand Down Expand Up @@ -124,7 +123,7 @@ func (api *PublicEthereumAPI) SetKeys(keys []ethsecp256k1.PrivKey) {
// ProtocolVersion returns the supported Ethereum protocol version.
func (api *PublicEthereumAPI) ProtocolVersion() hexutil.Uint {
api.logger.Debug("eth_protocolVersion")
return hexutil.Uint(version.ProtocolVersion)
return hexutil.Uint(ethermint.ProtocolVersion)
}

// ChainId returns the chain's identifier in hex format
Expand Down
9 changes: 6 additions & 3 deletions rpc/namespaces/web3/api.go
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
package web3

import (
"github.com/cosmos/ethermint/version"
"fmt"

"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/crypto"

"github.com/cosmos/cosmos-sdk/version"
)

// PublicWeb3API is the web3_ prefixed set of APIs in the Web3 JSON-RPC spec.
type PublicWeb3API struct{}

// New creates an instance of the Web3 API.
// NewAPI creates an instance of the Web3 API.
func NewAPI() *PublicWeb3API {
return &PublicWeb3API{}
}

// ClientVersion returns the client version in the Web3 user agent format.
func (PublicWeb3API) ClientVersion() string {
return version.ClientVersion()
info := version.NewInfo()
return fmt.Sprintf("%s-%s", info.Name, info.Version)
}

// Sha3 returns the keccak-256 hash of the passed-in input.
Expand Down
4 changes: 2 additions & 2 deletions tests/rpc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import (
ethtypes "github.com/ethereum/go-ethereum/core/types"

rpctypes "github.com/cosmos/ethermint/rpc/types"
"github.com/cosmos/ethermint/version"
ethermint "github.com/cosmos/ethermint/types"
)

const (
Expand Down Expand Up @@ -258,7 +258,7 @@ func TestEth_GetTransactionLogs(t *testing.T) {
}

func TestEth_protocolVersion(t *testing.T) {
expectedRes := hexutil.Uint(version.ProtocolVersion)
expectedRes := hexutil.Uint(ethermint.ProtocolVersion)

rpcRes := call(t, "eth_protocolVersion", []string{})

Expand Down
9 changes: 9 additions & 0 deletions types/protocol.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package types

// Constants to match up protocol versions and messages
const (
eth65 = 65

// ProtocolVersion is the latest supported version of the eth protocol.
ProtocolVersion = eth65
)
26 changes: 0 additions & 26 deletions version/version.go

This file was deleted.

15 changes: 0 additions & 15 deletions x/evm/keeper/querier.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ import (
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"

"github.com/cosmos/ethermint/utils"
"github.com/cosmos/ethermint/version"
"github.com/cosmos/ethermint/x/evm/types"

ethcmn "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"

abci "github.com/tendermint/tendermint/abci/types"
)
Expand All @@ -23,8 +21,6 @@ import (
func NewQuerier(keeper Keeper) sdk.Querier {
return func(ctx sdk.Context, path []string, _ abci.RequestQuery) ([]byte, error) {
switch path[0] {
case types.QueryProtocolVersion:
return queryProtocolVersion(keeper)
case types.QueryBalance:
return queryBalance(ctx, path, keeper)
case types.QueryBlockNumber:
Expand All @@ -51,17 +47,6 @@ func NewQuerier(keeper Keeper) sdk.Querier {
}
}

func queryProtocolVersion(keeper Keeper) ([]byte, error) {
vers := version.ProtocolVersion

bz, err := codec.MarshalJSONIndent(keeper.cdc, hexutil.Uint(vers))
if err != nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error())
}

return bz, nil
}

func queryBalance(ctx sdk.Context, path []string, keeper Keeper) ([]byte, error) {
addr := ethcmn.HexToAddress(path[1])
balance := keeper.GetBalance(ctx, addr)
Expand Down
1 change: 0 additions & 1 deletion x/evm/keeper/querier_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ func (suite *KeeperTestSuite) TestQuerier() {
malleate func()
expPass bool
}{
{"protocol version", []string{types.QueryProtocolVersion}, func() {}, true},
{"balance", []string{types.QueryBalance, addrHex}, func() {
suite.app.EvmKeeper.SetBalance(suite.ctx, suite.address, big.NewInt(5))
}, true},
Expand Down
10 changes: 0 additions & 10 deletions x/evm/types/querier.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (

// Supported endpoints
const (
QueryProtocolVersion = "protocolVersion"
QueryBalance = "balance"
QueryBlockNumber = "blockNumber"
QueryStorage = "storage"
Expand All @@ -22,15 +21,6 @@ const (
QueryExportAccount = "exportAccount"
)

// QueryResProtocolVersion is response type for protocol version query
type QueryResProtocolVersion struct {
Version string `json:"version"`
}

func (q QueryResProtocolVersion) String() string {
return q.Version
}

// QueryResBalance is response type for balance query
type QueryResBalance struct {
Balance string `json:"balance"`
Expand Down

0 comments on commit ef1bef1

Please sign in to comment.