Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrTimeout = errors.New("RPC timeout", errors.WithVendor(errVendor), errors.WithCode(-1)) ErrClose = errors.New("RPC endpoint closed", errors.WithVendor(errVendor), errors.WithCode(-2)) ErrTransport = errors.New("expect transport", errors.WithVendor(errVendor), errors.WithCode(-3)) ErrDispatcher = errors.New("expect dispatcher", errors.WithVendor(errVendor), errors.WithCode(-4)) ErrServer = errors.New("Server type error", errors.WithVendor(errVendor), errors.WithCode(-5)) )
errors
Functions ¶
This section is empty.
Types ¶
type BatchResponses ¶
type BatchResponses []RPCResponse
BatchResponse a list of jsonrpc response objects as a result of a batch request
if you are interested in the response of a specific request use: GetResponseOf(request)
type Client ¶
type Client interface {
Call(ctx context.Context, method string, args ...interface{}) Reply
Notification(ctx context.Context, method string, args ...interface{}) error
}
Client jsonrpc Client interface
type ClientTransport ¶
type ClientTransport interface {
Send(ctx context.Context, buff []byte) error
Recv() <-chan []byte
}
ClientTransport client underlying transport protocol
type ClientTransportCloser ¶
type ClientTransportCloser interface {
ClientTransport
Close() error
}
type RPCError ¶
type RPCError struct {
Code RPCErrorCode `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data,omitempty"`
}
RPCError represents a jsonrpc error object if an rpc error occurred.
type RPCErrorCode ¶
type RPCErrorCode int
RPCErrorCode represents jsonrpc error code
const ( RPCParseError RPCErrorCode = -32700 RPCInvalidRequest RPCErrorCode = -32600 RPCMethodNotFound RPCErrorCode = -32601 RPCInvalidParams RPCErrorCode = -32602 RPCInternalError RPCErrorCode = -32603 RPCServerError RPCErrorCode = -32000 )
type RPCNotification ¶
type RPCNotification struct {
JSONRPC string `json:"jsonrpc"`
Method string `json:"method"`
Params interface{} `json:"params,omitempty"`
}
RPCNotification represents a jsonrpc notification object. A notification object omits the id field since there will be no server response.
type RPCRequest ¶
type RPCRequest struct {
JSONRPC string `json:"jsonrpc"`
Method string `json:"method"`
Params interface{} `json:"params,omitempty"`
ID *uint `json:"id,omitempty"`
}
RPCRequest represents a jsonrpc request object.
type RPCResponse ¶
type RPCResponse struct {
JSONRPC string `json:"jsonrpc"`
Result interface{} `json:"result,omitempty"`
Error *RPCError `json:"error,omitempty"`
ID uint `json:"id"`
}
RPCResponse represents a jsonrpc response object. If no rpc specific error occurred Error field is nil.