aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-02-04 18:44:34 +0800
committerPéter Szilágyi <peterke@gmail.com>2016-02-04 22:55:50 +0800
commit6b939fbeaa7db139e06223926d6b4355ae0e71ca (patch)
treefdc6b49506651b6a1255f1bcd1dab609ba69a4b6
parent3274db19c7563e31f79418b63f6c10233cbaa32a (diff)
downloaddexon-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.go3
-rw-r--r--rpc/utils.go16
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")
}