Commit d4ed66c8 authored by Taylor Gerring's avatar Taylor Gerring

Add web3_clientVersion

parent 094f921e
...@@ -131,6 +131,7 @@ type Ethereum struct { ...@@ -131,6 +131,7 @@ type Ethereum struct {
Mining bool Mining bool
DataDir string DataDir string
version string
} }
func New(config *Config) (*Ethereum, error) { func New(config *Config) (*Ethereum, error) {
...@@ -165,6 +166,7 @@ func New(config *Config) (*Ethereum, error) { ...@@ -165,6 +166,7 @@ func New(config *Config) (*Ethereum, error) {
logger: servlogger, logger: servlogger,
accountManager: config.AccountManager, accountManager: config.AccountManager,
DataDir: config.DataDir, DataDir: config.DataDir,
version: config.Name, // TODO should separate from Name
} }
eth.chainManager = core.NewChainManager(blockDb, stateDb, eth.EventMux()) eth.chainManager = core.NewChainManager(blockDb, stateDb, eth.EventMux())
...@@ -236,6 +238,7 @@ func (s *Ethereum) IsListening() bool { return true } // Alwa ...@@ -236,6 +238,7 @@ func (s *Ethereum) IsListening() bool { return true } // Alwa
func (s *Ethereum) PeerCount() int { return s.net.PeerCount() } func (s *Ethereum) PeerCount() int { return s.net.PeerCount() }
func (s *Ethereum) Peers() []*p2p.Peer { return s.net.Peers() } func (s *Ethereum) Peers() []*p2p.Peer { return s.net.Peers() }
func (s *Ethereum) MaxPeers() int { return s.net.MaxPeers } func (s *Ethereum) MaxPeers() int { return s.net.MaxPeers }
func (s *Ethereum) Version() string { return s.version }
// Start the ethereum // Start the ethereum
func (s *Ethereum) Start() error { func (s *Ethereum) Start() error {
......
...@@ -477,6 +477,10 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error ...@@ -477,6 +477,10 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
return err return err
} }
*reply = toHex(crypto.Sha3(fromHex(args.Data))) *reply = toHex(crypto.Sha3(fromHex(args.Data)))
case "web3_clientVersion":
*reply = p.xeth().Backend().Version()
case "net_version":
return NewNotImplementedError(req.Method)
case "net_listening": case "net_listening":
*reply = p.xeth().IsListening() *reply = p.xeth().IsListening()
case "net_peerCount": case "net_peerCount":
...@@ -675,9 +679,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error ...@@ -675,9 +679,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
*reply = uncle *reply = uncle
case "eth_getCompilers": case "eth_getCompilers":
return p.GetCompilers(reply) return p.GetCompilers(reply)
case "eth_compileSolidity": case "eth_compileSolidity", "eth_compileLLL", "eth_compileSerpent":
case "eth_compileLLL":
case "eth_compileSerpent":
return NewNotImplementedError(req.Method) return NewNotImplementedError(req.Method)
case "eth_newFilter": case "eth_newFilter":
args := new(FilterOptions) args := new(FilterOptions)
...@@ -715,8 +717,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error ...@@ -715,8 +717,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
return err return err
} }
return p.AllLogs(args, reply) return p.AllLogs(args, reply)
case "eth_getWork": case "eth_getWork", "eth_submitWork":
case "eth_submitWork":
return NewNotImplementedError(req.Method) return NewNotImplementedError(req.Method)
case "db_put": case "db_put":
args := new(DbArgs) args := new(DbArgs)
...@@ -744,8 +745,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error ...@@ -744,8 +745,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
return err return err
} }
return p.HasWhisperIdentity(args.Identity, reply) return p.HasWhisperIdentity(args.Identity, reply)
case "shh_newGroup": case "shh_newGroup", "shh_addToGroup":
case "shh_addToGroup":
return NewNotImplementedError(req.Method) return NewNotImplementedError(req.Method)
case "shh_newFilter": case "shh_newFilter":
args := new(WhisperFilterArgs) args := new(WhisperFilterArgs)
......
...@@ -39,6 +39,7 @@ type Backend interface { ...@@ -39,6 +39,7 @@ type Backend interface {
IsMining() bool IsMining() bool
StartMining() error StartMining() error
StopMining() StopMining()
Version() string
} }
// Frontend should be implemented by users of XEth. Its methods are // Frontend should be implemented by users of XEth. Its methods are
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment