package slobs import "encoding/json" type RPCRequest struct { Method string `json:"method"` Params interface{} `json:"params,omitempty"` ID int `json:"id"` JSONRPC string `json:"jsonrpc"` } // RPCResponse represents a JSON-RPC response object. // // Result: holds the result of the rpc call if no error occurred, nil otherwise. can be nil even on success. // // Error: holds an RPCError object if an error occurred. must be nil on success. // // ID: may always be 0 for single requests. is unique for each request in a batch call (see CallBatch()) // // JSONRPC: must always be set to "2.0" for JSON-RPC version 2.0 // // See: http://www.jsonrpc.org/specification#response_object type RPCResponse struct { JSONRPC string `json:"jsonrpc"` Result *json.RawMessage `json:"result,omitempty"` Error *RPCError `json:"error,omitempty"` ID *int `json:"id"` } func (r *RPCResponse) DecodeTo(v interface{}) error { return json.Unmarshal(*r.Result, &v) } // RPCError represents a JSON-RPC error object if an RPC error occurred. // // Code: holds the error code // // Message: holds a short error message // // Data: holds additional error data, may be nil // // See: http://www.jsonrpc.org/specification#error_object type RPCError struct { Code int `json:"code"` Message string `json:"message"` Data interface{} `json:"data,omitempty"` }