adapt xeth pkg to new backend. FIXME JSPeer peer info
This commit is contained in:
parent
76070b4674
commit
148de1c875
|
@ -3,7 +3,6 @@ package xeth
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"sync/atomic"
|
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/core"
|
"github.com/ethereum/go-ethereum/core"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
|
@ -63,12 +62,8 @@ func (self *JSXEth) PeerCount() int {
|
||||||
|
|
||||||
func (self *JSXEth) Peers() []JSPeer {
|
func (self *JSXEth) Peers() []JSPeer {
|
||||||
var peers []JSPeer
|
var peers []JSPeer
|
||||||
for peer := self.obj.Peers().Front(); peer != nil; peer = peer.Next() {
|
for _, peer := range self.obj.Peers() {
|
||||||
p := peer.Value.(core.Peer)
|
peers = append(peers, *NewJSPeer(peer))
|
||||||
// we only want connected peers
|
|
||||||
if atomic.LoadInt32(p.Connected()) != 0 {
|
|
||||||
peers = append(peers, *NewJSPeer(p))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return peers
|
return peers
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
package xeth
|
package xeth
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/core"
|
"github.com/ethereum/go-ethereum/core"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/ethereum/go-ethereum/crypto"
|
||||||
"github.com/ethereum/go-ethereum/ethutil"
|
"github.com/ethereum/go-ethereum/ethutil"
|
||||||
|
"github.com/ethereum/go-ethereum/p2p"
|
||||||
"github.com/ethereum/go-ethereum/state"
|
"github.com/ethereum/go-ethereum/state"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -155,38 +154,36 @@ func NewPReciept(contractCreation bool, creationAddress, hash, address []byte) *
|
||||||
// Peer interface exposed to QML
|
// Peer interface exposed to QML
|
||||||
|
|
||||||
type JSPeer struct {
|
type JSPeer struct {
|
||||||
ref *core.Peer
|
ref *p2p.Peer
|
||||||
Inbound bool `json:"isInbound"`
|
// Inbound bool `json:"isInbound"`
|
||||||
LastSend int64 `json:"lastSend"`
|
// LastSend int64 `json:"lastSend"`
|
||||||
LastPong int64 `json:"lastPong"`
|
// LastPong int64 `json:"lastPong"`
|
||||||
Ip string `json:"ip"`
|
// Ip string `json:"ip"`
|
||||||
Port int `json:"port"`
|
// Port int `json:"port"`
|
||||||
Version string `json:"version"`
|
// Version string `json:"version"`
|
||||||
LastResponse string `json:"lastResponse"`
|
// LastResponse string `json:"lastResponse"`
|
||||||
Latency string `json:"latency"`
|
// Latency string `json:"latency"`
|
||||||
Caps string `json:"caps"`
|
// Caps string `json:"caps"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewJSPeer(peer core.Peer) *JSPeer {
|
func NewJSPeer(peer *p2p.Peer) *JSPeer {
|
||||||
if peer == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var ip []string
|
// var ip []string
|
||||||
for _, i := range peer.Host() {
|
// for _, i := range peer.Host() {
|
||||||
ip = append(ip, strconv.Itoa(int(i)))
|
// ip = append(ip, strconv.Itoa(int(i)))
|
||||||
}
|
// }
|
||||||
ipAddress := strings.Join(ip, ".")
|
// ipAddress := strings.Join(ip, ".")
|
||||||
|
|
||||||
var caps []string
|
// var caps []string
|
||||||
capsIt := peer.Caps().NewIterator()
|
// capsIt := peer.Caps().NewIterator()
|
||||||
for capsIt.Next() {
|
// for capsIt.Next() {
|
||||||
cap := capsIt.Value().Get(0).Str()
|
// cap := capsIt.Value().Get(0).Str()
|
||||||
ver := capsIt.Value().Get(1).Uint()
|
// ver := capsIt.Value().Get(1).Uint()
|
||||||
caps = append(caps, fmt.Sprintf("%s/%d", cap, ver))
|
// caps = append(caps, fmt.Sprintf("%s/%d", cap, ver))
|
||||||
}
|
// }
|
||||||
|
|
||||||
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}
|
||||||
|
// 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, ", ") + "]"}
|
||||||
}
|
}
|
||||||
|
|
||||||
type JSReceipt struct {
|
type JSReceipt struct {
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
package xeth
|
package xeth
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"container/list"
|
"github.com/ethereum/go-ethereum/p2p"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/state"
|
"github.com/ethereum/go-ethereum/state"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -55,7 +54,7 @@ func (self *World) IsListening() bool {
|
||||||
return self.pipe.obj.IsListening()
|
return self.pipe.obj.IsListening()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *World) Peers() *list.List {
|
func (self *World) Peers() []*p2p.Peer {
|
||||||
return self.pipe.obj.Peers()
|
return self.pipe.obj.Peers()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue