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