From dfb8d41a35d85516c041f2944f0652d1d92c5d23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Soko=C5=82owski?= Date: Sun, 16 Jun 2019 12:02:50 -0400 Subject: [PATCH] move rpc code to client.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jakub SokoĊ‚owski --- client.go | 26 ++++++++++++++++++++++++++ main.go | 18 +++++++++--------- 2 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 client.go diff --git a/client.go b/client.go new file mode 100644 index 0000000..e818058 --- /dev/null +++ b/client.go @@ -0,0 +1,26 @@ +package main + +import ( + "github.com/ethereum/go-ethereum/rpc" +) + +type client struct { + rpcClient *rpc.Client +} + +func newClient(url string) (*client, error) { + rpcClient, err := rpc.Dial(url) + if err != nil { + return nil, err + } + return &client{rpcClient}, nil +} + +func (c *client) getPeers() (interface{}, error) { + var rval interface{} + err := c.rpcClient.Call(&rval, "admin_peers") + if err != nil { + return nil, err + } + return rval, nil +} diff --git a/main.go b/main.go index c648794..097774b 100644 --- a/main.go +++ b/main.go @@ -3,27 +3,27 @@ package main import ( "encoding/json" "fmt" - "github.com/ethereum/go-ethereum/rpc" "log" ) type rcpResp map[string]interface{} -const serverAddr = "127.0.0.1" -const serverPort = 8545 +const host = "127.0.0.1" +const port = 8545 func main() { - addr := fmt.Sprintf("http://%s:%d", serverAddr, serverPort) - c, err := rpc.DialHTTP(addr) + url := fmt.Sprintf("http://%s:%d", host, port) + fmt.Println("Type :%t", url) + c, err := newClient(url) if err != nil { log.Fatal("Failed to connec to RPC:", err) } - fmt.Println("Connected: ", addr) - var rval interface{} - err = c.Call(&rval, "admin_peers") + fmt.Println("Connected: ", url) + + peers, err := c.getPeers() if err != nil { log.Fatal("Failed to make RPC call:", err) } - pretty, err := json.MarshalIndent(rval, "", " ") + pretty, err := json.MarshalIndent(peers, "", " ") fmt.Println("Response: ", string(pretty)) }