From e954c24af02802cdee0870230b6dcfc898dd07cd Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Mon, 23 Mar 2015 18:06:05 +0100 Subject: [PATCH] Implement RPC net_version --- eth/backend.go | 12 +++++++----- rpc/api.go | 2 +- xeth/xeth.go | 4 +++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/eth/backend.go b/eth/backend.go index ded3f0021..446f06531 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -13,6 +13,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/core/vm" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/event" @@ -21,7 +22,6 @@ import ( "github.com/ethereum/go-ethereum/p2p" "github.com/ethereum/go-ethereum/p2p/discover" "github.com/ethereum/go-ethereum/p2p/nat" - "github.com/ethereum/go-ethereum/core/vm" "github.com/ethereum/go-ethereum/whisper" ) @@ -141,8 +141,8 @@ type Ethereum struct { Mining bool DataDir string version string - ProtocolVersion int - NetworkId int + protocolVersion int + networkId int } func New(config *Config) (*Ethereum, error) { @@ -185,8 +185,8 @@ func New(config *Config) (*Ethereum, error) { accountManager: config.AccountManager, DataDir: config.DataDir, version: config.Name, // TODO should separate from Name - ProtocolVersion: config.ProtocolVersion, - NetworkId: config.NetworkId, + protocolVersion: config.ProtocolVersion, + networkId: config.NetworkId, } eth.chainManager = core.NewChainManager(blockDb, stateDb, eth.EventMux()) @@ -325,6 +325,8 @@ func (s *Ethereum) PeerCount() int { return s.net.PeerCoun func (s *Ethereum) Peers() []*p2p.Peer { return s.net.Peers() } func (s *Ethereum) MaxPeers() int { return s.net.MaxPeers } func (s *Ethereum) Version() string { return s.version } +func (s *Ethereum) ProtocolVersion() int { return s.protocolVersion } +func (s *Ethereum) NetworkId() int { return s.networkId } // Start the ethereum func (s *Ethereum) Start() error { diff --git a/rpc/api.go b/rpc/api.go index 19bd9b707..4bc199176 100644 --- a/rpc/api.go +++ b/rpc/api.go @@ -62,7 +62,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err case "web3_clientVersion": *reply = api.xeth().Backend().Version() case "net_version": - return NewNotImplementedError(req.Method) + *reply = string(api.xeth().Backend().ProtocolVersion()) case "net_listening": *reply = api.xeth().IsListening() case "net_peerCount": diff --git a/xeth/xeth.go b/xeth/xeth.go index 02a691ffb..98f5f5b36 100644 --- a/xeth/xeth.go +++ b/xeth/xeth.go @@ -12,6 +12,7 @@ import ( "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" + "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/event" @@ -19,7 +20,6 @@ import ( "github.com/ethereum/go-ethereum/logger" "github.com/ethereum/go-ethereum/miner" "github.com/ethereum/go-ethereum/p2p" - "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/whisper" ) @@ -50,6 +50,8 @@ type Backend interface { StartMining() error StopMining() Version() string + ProtocolVersion() int + NetworkId() int } // Frontend should be implemented by users of XEth. Its methods are