good morning!!!!

Skip to content
Snippets Groups Projects
Commit f0e94b4d authored by Bas van Kervel's avatar Bas van Kervel
Browse files

display rpc error in console

parent cf668262
Branches
Tags
No related merge requests found
......@@ -156,15 +156,15 @@ func (self *JsonCodec) ReadResponse() (interface{}, error) {
}
bytesInBuffer += n
var failure shared.ErrorResponse
if err = json.Unmarshal(buf[:bytesInBuffer], &failure); err == nil && failure.Error != nil {
return failure, fmt.Errorf(failure.Error.Message)
}
var success shared.SuccessResponse
if err = json.Unmarshal(buf[:bytesInBuffer], &success); err == nil {
return success, nil
}
var failure shared.ErrorResponse
if err = json.Unmarshal(buf[:bytesInBuffer], &failure); err == nil && failure.Error != nil {
return failure, nil
}
}
self.c.Close()
......
......@@ -3,6 +3,8 @@ package rpc
import (
"encoding/json"
"fmt"
"github.com/ethereum/go-ethereum/jsre"
"github.com/ethereum/go-ethereum/rpc/comms"
"github.com/ethereum/go-ethereum/rpc/shared"
......@@ -20,14 +22,13 @@ func NewJeth(ethApi shared.EthereumApi, re *jsre.JSRE, client comms.EthereumClie
}
func (self *Jeth) err(call otto.FunctionCall, code int, msg string, id interface{}) (response otto.Value) {
rpcerr := &shared.ErrorObject{code, msg}
call.Otto.Set("ret_jsonrpc", shared.JsonRpcVersion)
call.Otto.Set("ret_id", id)
call.Otto.Set("ret_error", rpcerr)
response, _ = call.Otto.Run(`
ret_response = { jsonrpc: ret_jsonrpc, id: ret_id, error: ret_error };
`)
return
errObj := fmt.Sprintf("{\"message\": \"%s\", \"code\": %d}", msg, code)
retResponse := fmt.Sprintf("ret_response = JSON.parse('{\"jsonrpc\": \"%s\", \"id\": %v, \"error\": %s}');", shared.JsonRpcVersion, id, errObj)
call.Otto.Run("ret_error = " + errObj)
res, _ := call.Otto.Run(retResponse)
return res
}
func (self *Jeth) Send(call otto.FunctionCall) (response otto.Value) {
......@@ -56,6 +57,7 @@ func (self *Jeth) Send(call otto.FunctionCall) (response otto.Value) {
return self.err(call, -32603, err.Error(), req.Id)
}
respif, err = self.client.Recv()
if err != nil {
return self.err(call, -32603, err.Error(), req.Id)
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment