diff options
author | Péter Szilágyi <peterke@gmail.com> | 2016-02-04 18:44:34 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2016-02-04 22:55:50 +0800 |
commit | 6b939fbeaa7db139e06223926d6b4355ae0e71ca (patch) | |
tree | fdc6b49506651b6a1255f1bcd1dab609ba69a4b6 | |
parent | 3274db19c7563e31f79418b63f6c10233cbaa32a (diff) | |
download | dexon-6b939fbeaa7db139e06223926d6b4355ae0e71ca.tar.gz dexon-6b939fbeaa7db139e06223926d6b4355ae0e71ca.tar.zst dexon-6b939fbeaa7db139e06223926d6b4355ae0e71ca.zip |
rpc: add jsonrpc version to module request, use json types
-rw-r--r-- | eth/api.go | 3 | ||||
-rw-r--r-- | rpc/utils.go | 16 |
2 files changed, 8 insertions, 11 deletions
diff --git a/eth/api.go b/eth/api.go index 0fa855f15..617643e10 100644 --- a/eth/api.go +++ b/eth/api.go @@ -27,8 +27,6 @@ import ( "sync" "time" - "gopkg.in/fatih/set.v0" - "github.com/ethereum/ethash" "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/common" @@ -46,6 +44,7 @@ import ( "github.com/ethereum/go-ethereum/p2p" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/rpc" + "gopkg.in/fatih/set.v0" ) const ( diff --git a/rpc/utils.go b/rpc/utils.go index 25321c543..39acf8196 100644 --- a/rpc/utils.go +++ b/rpc/utils.go @@ -218,29 +218,27 @@ func newSubscriptionId() (string, error) { // SupportedModules returns the collection of API's that the RPC server offers // on which the given client connects. func SupportedModules(client Client) (map[string]string, error) { - req := map[string]interface{}{ - "id": 1, - "method": "rpc_modules", + req := JSONRequest{ + Id: new(int64), + Version: "2.0", + Method: "rpc_modules", } - if err := client.Send(req); err != nil { return nil, err } - var response map[string]interface{} + var response JSONSuccessResponse if err := client.Recv(&response); err != nil { return nil, err } - - if payload, ok := response["result"]; ok { + if response.Result != nil { mods := make(map[string]string) - if modules, ok := payload.(map[string]interface{}); ok { + if modules, ok := response.Result.(map[string]interface{}); ok { for m, v := range modules { mods[m] = fmt.Sprintf("%s", v) } return mods, nil } } - return nil, fmt.Errorf("unable to retrieve modules") } |