diff --git a/bchain/coins/blockchain.go b/bchain/coins/blockchain.go index 39f01e6e..c90332ae 100644 --- a/bchain/coins/blockchain.go +++ b/bchain/coins/blockchain.go @@ -85,6 +85,10 @@ func (c *blockChainWithMetrics) GetNetworkName() string { return c.b.GetNetworkName() } +func (c *blockChainWithMetrics) GetSubversion() string { + return c.b.GetSubversion() +} + func (c *blockChainWithMetrics) GetBestBlockHash() (v string, err error) { defer func(s time.Time) { c.observeRPCLatency("GetBestBlockHash", s, err) }(time.Now()) return c.b.GetBestBlockHash() diff --git a/bchain/coins/btc/bitcoinrpc.go b/bchain/coins/btc/bitcoinrpc.go index af6a3617..cb894517 100644 --- a/bchain/coins/btc/bitcoinrpc.go +++ b/bchain/coins/btc/bitcoinrpc.go @@ -29,6 +29,7 @@ type BitcoinRPC struct { Mempool *bchain.UTXOMempool ParseBlocks bool mq *bchain.MQ + Subversion string } type configuration struct { @@ -38,6 +39,7 @@ type configuration struct { RPCTimeout int `json:"rpcTimeout"` Parse bool `json:"parse"` ZeroMQBinding string `json:"zeroMQBinding"` + Subversion string `json:"subversion"` } // NewBitcoinRPC returns new BitcoinRPC instance. @@ -60,6 +62,7 @@ func NewBitcoinRPC(config json.RawMessage, pushHandler func(bchain.NotificationT user: c.RPCUser, password: c.RPCPass, ParseBlocks: c.Parse, + Subversion: c.Subversion, } mq, err := bchain.NewMQ(c.ZeroMQBinding, pushHandler) @@ -119,6 +122,10 @@ func (b *BitcoinRPC) GetNetworkName() string { return b.Network } +func (b *BitcoinRPC) GetSubversion() string { + return b.Subversion +} + // getblockhash type cmdGetBlockHash struct { diff --git a/bchain/coins/eth/ethrpc.go b/bchain/coins/eth/ethrpc.go index 01137fb9..26c844bc 100644 --- a/bchain/coins/eth/ethrpc.go +++ b/bchain/coins/eth/ethrpc.go @@ -240,6 +240,10 @@ func (b *EthereumRPC) GetNetworkName() string { return b.Network } +func (b *EthereumRPC) GetSubversion() string { + return "" +} + func (b *EthereumRPC) getBestHeader() (*ethtypes.Header, error) { b.bestHeaderMu.Lock() defer b.bestHeaderMu.Unlock() diff --git a/bchain/types.go b/bchain/types.go index ddc49f4b..a2f4d283 100644 --- a/bchain/types.go +++ b/bchain/types.go @@ -123,6 +123,7 @@ type BlockChain interface { // chain info IsTestnet() bool GetNetworkName() string + GetSubversion() string // requests GetBestBlockHash() (string, error) GetBestBlockHeight() (uint32, error) diff --git a/configs/bch-testnet.json b/configs/bch-testnet.json index 606eb66a..d95bc22d 100644 --- a/configs/bch-testnet.json +++ b/configs/bch-testnet.json @@ -4,5 +4,6 @@ "rpcPass": "rpc", "rpcTimeout": 25, "parse": true, - "zeroMQBinding": "tcp://127.0.0.1:18434" + "zeroMQBinding": "tcp://127.0.0.1:18434", + "subversion": "/Bitcoin ABC:0.17.0(EB8.0; bitcore-sl)/" } diff --git a/configs/bch.json b/configs/bch.json index e124c7af..4a4a60db 100644 --- a/configs/bch.json +++ b/configs/bch.json @@ -4,5 +4,6 @@ "rpcPass": "rpc", "rpcTimeout": 25, "parse": true, - "zeroMQBinding": "tcp://127.0.0.1:8434" + "zeroMQBinding": "tcp://127.0.0.1:8434", + "subversion": "/Bitcoin ABC:0.17.0(EB8.0; bitcore-sl)/" } diff --git a/server/socketio.go b/server/socketio.go index f7cb7007..f9f6e9d4 100644 --- a/server/socketio.go +++ b/server/socketio.go @@ -599,6 +599,7 @@ func (s *SocketIoServer) getInfo() (res resultGetInfo, err error) { res.Result.Blocks = int(height) res.Result.Testnet = s.chain.IsTestnet() res.Result.Network = s.chain.GetNetworkName() + res.Result.Subversion = s.chain.GetSubversion() return }