aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaylor Gerring <taylor.gerring@gmail.com>2015-03-04 21:54:10 +0800
committerTaylor Gerring <taylor.gerring@gmail.com>2015-03-04 21:54:10 +0800
commitc92e48ce3f9de2196a713b24d5c27d6c664826d9 (patch)
tree811cc5ab68778c4d26550a80e950a0aad361b06a
parente7b33e9ae796cd0ba4c840ee3fead85132ebdccd (diff)
downloaddexon-c92e48ce3f9de2196a713b24d5c27d6c664826d9.tar.gz
dexon-c92e48ce3f9de2196a713b24d5c27d6c664826d9.tar.zst
dexon-c92e48ce3f9de2196a713b24d5c27d6c664826d9.zip
Add client_version RPC message
-rw-r--r--eth/backend.go5
-rw-r--r--rpc/api.go2
-rw-r--r--xeth/xeth.go5
3 files changed, 11 insertions, 1 deletions
diff --git a/eth/backend.go b/eth/backend.go
index f67f9c78b..27d3f3b3f 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -132,7 +132,8 @@ type Ethereum struct {
logger ethlogger.LogSystem
- Mining bool
+ Mining bool
+ version string
}
func New(config *Config) (*Ethereum, error) {
@@ -175,6 +176,7 @@ func New(config *Config) (*Ethereum, error) {
blacklist: p2p.NewBlacklist(),
eventMux: &event.TypeMux{},
logger: logger,
+ version: config.Name,
}
eth.chainManager = core.NewChainManager(db, eth.EventMux())
@@ -231,6 +233,7 @@ 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) Coinbase() []byte { return nil } // TODO
+func (s *Ethereum) ClientVersion() string { return s.version }
// Start the ethereum
func (s *Ethereum) Start() error {
diff --git a/rpc/api.go b/rpc/api.go
index 28ec04916..f023709ca 100644
--- a/rpc/api.go
+++ b/rpc/api.go
@@ -668,6 +668,8 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
return err
}
return p.WhisperMessages(args, reply)
+ case "client_version":
+ *reply = p.eth.GetClientVersion()
default:
return NewErrorWithMessage(errNotImplemented, req.Method)
}
diff --git a/xeth/xeth.go b/xeth/xeth.go
index d4c188fec..8dd905b86 100644
--- a/xeth/xeth.go
+++ b/xeth/xeth.go
@@ -36,6 +36,7 @@ type Backend interface {
EventMux() *event.TypeMux
Whisper() *whisper.Whisper
Miner() *miner.Miner
+ ClientVersion() string
}
type XEth struct {
@@ -164,6 +165,10 @@ func (self *XEth) IsContract(address string) bool {
return len(self.State().SafeGet(address).Code()) > 0
}
+func (self *XEth) GetClientVersion() string {
+ return self.eth.ClientVersion()
+}
+
func (self *XEth) SecretToAddress(key string) string {
pair, err := crypto.NewKeyPairFromSec(fromHex(key))
if err != nil {