2019-06-16 16:02:50 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/ethereum/go-ethereum/rpc"
|
|
|
|
)
|
|
|
|
|
2019-06-27 18:21:51 +00:00
|
|
|
type StatusGoClient struct {
|
2019-06-16 16:02:50 +00:00
|
|
|
rpcClient *rpc.Client
|
|
|
|
}
|
|
|
|
|
2019-06-27 18:21:51 +00:00
|
|
|
func newClient(url string) (*StatusGoClient, error) {
|
2019-06-16 16:02:50 +00:00
|
|
|
rpcClient, err := rpc.Dial(url)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2019-06-27 18:21:51 +00:00
|
|
|
return &StatusGoClient{rpcClient}, nil
|
2019-06-16 16:02:50 +00:00
|
|
|
}
|
|
|
|
|
2019-06-27 18:21:51 +00:00
|
|
|
func (c *StatusGoClient) getPeers() ([]Peer, error) {
|
2019-06-20 21:01:34 +00:00
|
|
|
peers := make([]Peer, 0)
|
|
|
|
err := c.rpcClient.Call(&peers, "admin_peers")
|
2019-06-16 16:02:50 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2019-06-20 21:01:34 +00:00
|
|
|
return peers, nil
|
2019-06-16 16:02:50 +00:00
|
|
|
}
|
2019-06-27 13:14:28 +00:00
|
|
|
|
2019-06-27 18:21:51 +00:00
|
|
|
func (c *StatusGoClient) removePeer(enode string) (bool, error) {
|
2019-06-27 13:14:28 +00:00
|
|
|
var rval bool
|
|
|
|
err := c.rpcClient.Call(&rval, "admin_removePeer", enode)
|
|
|
|
if err != nil {
|
|
|
|
return false, err
|
|
|
|
}
|
|
|
|
return rval, nil
|
|
|
|
}
|