From 83a72e96688b9b84e67c83c57053b6f0fd64c7a1 Mon Sep 17 00:00:00 2001 From: Chengcheng Zhang <943420582@qq.com> Date: Thu, 18 Jul 2019 19:21:11 +0800 Subject: [PATCH] update GetNodeInfo (#317) * update GetNodeInfo * update * update * update --- api/nodeinfo.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/api/nodeinfo.go b/api/nodeinfo.go index 591f7af5..ac085ffa 100644 --- a/api/nodeinfo.go +++ b/api/nodeinfo.go @@ -4,7 +4,12 @@ import ( "context" "net" + log "github.com/sirupsen/logrus" + + "github.com/vapor/common" cfg "github.com/vapor/config" + "github.com/vapor/consensus" + "github.com/vapor/crypto" "github.com/vapor/errors" "github.com/vapor/netsync/peers" "github.com/vapor/p2p" @@ -23,6 +28,7 @@ type NetInfo struct { Syncing bool `json:"syncing"` Mining bool `json:"mining"` NodeXPub string `json:"node_xpub"` + FedAddress string `json:"federation_address"` PeerCount int `json:"peer_count"` CurrentBlock uint64 `json:"current_block"` HighestBlock uint64 `json:"highest_block"` @@ -33,11 +39,20 @@ type NetInfo struct { // GetNodeInfo return net information func (a *API) GetNodeInfo() *NetInfo { nodeXPub := cfg.CommonConfig.PrivateKey().XPub() + + signScript := cfg.FederationPMultiSigScript(cfg.CommonConfig) + scriptHash := crypto.Sha256(signScript) + address, err := common.NewAddressWitnessScriptHash(scriptHash, consensus.BytomMainNetParams(&consensus.ActiveNetParams)) + if err != nil { + log.WithFields(log.Fields{"module": logModule, "err": err}).Fatal("Failed to get federation address.") + } + info := &NetInfo{ Listening: a.sync.IsListening(), Syncing: !a.sync.IsCaughtUp(), Mining: a.blockProposer.IsProposing(), NodeXPub: nodeXPub.String(), + FedAddress: address.EncodeAddress(), PeerCount: a.sync.PeerCount(), CurrentBlock: a.chain.BestBlockHeight(), NetWorkID: a.sync.GetNetwork(), -- 2.11.0