diff options
Diffstat (limited to 'xeth')
-rw-r--r-- | xeth/js_types.go | 41 |
1 files changed, 15 insertions, 26 deletions
diff --git a/xeth/js_types.go b/xeth/js_types.go index 4bb1f4e7d..dbddcb7a3 100644 --- a/xeth/js_types.go +++ b/xeth/js_types.go @@ -1,6 +1,7 @@ package xeth import ( + "fmt" "strings" "github.com/ethereum/go-ethereum/core" @@ -154,36 +155,24 @@ func NewPReciept(contractCreation bool, creationAddress, hash, address []byte) * // Peer interface exposed to QML type JSPeer struct { - ref *p2p.Peer - // Inbound bool `json:"isInbound"` - // LastSend int64 `json:"lastSend"` - // LastPong int64 `json:"lastPong"` - // Ip string `json:"ip"` - // Port int `json:"port"` - // Version string `json:"version"` - // LastResponse string `json:"lastResponse"` - // Latency string `json:"latency"` - // Caps string `json:"caps"` + ref *p2p.Peer + Ip string `json:"ip"` + Version string `json:"version"` + Caps string `json:"caps"` } func NewJSPeer(peer *p2p.Peer) *JSPeer { + var caps []string + for _, cap := range peer.Caps() { + caps = append(caps, fmt.Sprintf("%s/%d", cap.Name, cap.Version)) + } - // var ip []string - // for _, i := range peer.Host() { - // ip = append(ip, strconv.Itoa(int(i))) - // } - // ipAddress := strings.Join(ip, ".") - - // var caps []string - // capsIt := peer.Caps().NewIterator() - // for capsIt.Next() { - // cap := capsIt.Value().Get(0).Str() - // ver := capsIt.Value().Get(1).Uint() - // caps = append(caps, fmt.Sprintf("%s/%d", cap, ver)) - // } - - return &JSPeer{ref: peer} - // return &JSPeer{ref: &peer, Inbound: peer.Inbound(), LastSend: peer.LastSend().Unix(), LastPong: peer.LastPong(), Version: peer.Version(), Ip: ipAddress, Port: int(peer.Port()), Latency: peer.PingTime(), Caps: "[" + strings.Join(caps, ", ") + "]"} + return &JSPeer{ + ref: peer, + Ip: peer.RemoteAddr().String(), + Version: peer.Identity().String(), + Caps: fmt.Sprintf("%v", caps), + } } type JSReceipt struct { |