rpctypes

package
v0.26.0-polygon Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SocketType

func SocketType(listenAddr string) string

Determine if its a unix or tcp socket. If tcp, must specify the port; `0.0.0.0` will return incorrectly as "unix" since there's no port TODO: deprecate

Types

type Context

type Context struct {
	// json-rpc request
	JSONReq *RPCRequest
	// websocket connection
	WSConn WSRPCConnection
	// http request
	HTTPReq *http.Request
}

Context is the first parameter for all functions. It carries a json-rpc request, http request and websocket connection.

- JSONReq is non-nil when JSONRPC is called over websocket or HTTP. - WSConn is non-nil when we're connected via a websocket. - HTTPReq is non-nil when URI or JSONRPC is called over HTTP.

func (*Context) Context

func (ctx *Context) Context() context.Context

Context returns the request's context. The returned context is always non-nil; it defaults to the background context. HTTP:

The context is canceled when the client's connection closes, the request
is canceled (with HTTP/2), or when the ServeHTTP method returns.

WS:

The context is canceled when the client's connections closes.

func (*Context) RemoteAddr

func (ctx *Context) RemoteAddr() string

RemoteAddr returns the remote address (usually a string "IP:port"). If neither HTTPReq nor WSConn is set, an empty string is returned. HTTP:

http.Request#RemoteAddr

WS:

result of GetRemoteAddr

type JSONRPCIntID

type JSONRPCIntID int

JSONRPCIntID a wrapper for JSON-RPC integer IDs

type JSONRPCStringID

type JSONRPCStringID string

JSONRPCStringID a wrapper for JSON-RPC string IDs

type RPCError added in v0.15.0

type RPCError struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	Data    string `json:"data,omitempty"`
}

func (RPCError) Error added in v0.15.0

func (err RPCError) Error() string

type RPCRequest

type RPCRequest struct {
	JSONRPC string          `json:"jsonrpc"`
	ID      jsonrpcid       `json:"id"`
	Method  string          `json:"method"`
	Params  json.RawMessage `json:"params"` // must be map[string]interface{} or []interface{}
}

func ArrayToRequest

func ArrayToRequest(cdc *amino.Codec, id jsonrpcid, method string, params []interface{}) (RPCRequest, error)

func MapToRequest

func MapToRequest(cdc *amino.Codec, id jsonrpcid, method string, params map[string]interface{}) (RPCRequest, error)

func NewRPCRequest

func NewRPCRequest(id jsonrpcid, method string, params json.RawMessage) RPCRequest

func (RPCRequest) String added in v0.10.5

func (req RPCRequest) String() string

func (*RPCRequest) UnmarshalJSON

func (request *RPCRequest) UnmarshalJSON(data []byte) error

UnmarshalJSON custom JSON unmarshalling due to jsonrpcid being string or int

type RPCResponse

type RPCResponse struct {
	JSONRPC string          `json:"jsonrpc"`
	ID      jsonrpcid       `json:"id"`
	Result  json.RawMessage `json:"result,omitempty"`
	Error   *RPCError       `json:"error,omitempty"`
}

func NewRPCErrorResponse added in v0.15.0

func NewRPCErrorResponse(id jsonrpcid, code int, msg string, data string) RPCResponse

func NewRPCSuccessResponse added in v0.15.0

func NewRPCSuccessResponse(cdc *amino.Codec, id jsonrpcid, res interface{}) RPCResponse

func RPCInternalError added in v0.15.0

func RPCInternalError(id jsonrpcid, err error) RPCResponse

func RPCInvalidParamsError added in v0.15.0

func RPCInvalidParamsError(id jsonrpcid, err error) RPCResponse

func RPCInvalidRequestError added in v0.15.0

func RPCInvalidRequestError(id jsonrpcid, err error) RPCResponse

func RPCMethodNotFoundError added in v0.15.0

func RPCMethodNotFoundError(id jsonrpcid) RPCResponse

func RPCParseError added in v0.15.0

func RPCParseError(id jsonrpcid, err error) RPCResponse

func RPCServerError added in v0.15.0

func RPCServerError(id jsonrpcid, err error) RPCResponse

func (RPCResponse) String added in v0.10.5

func (resp RPCResponse) String() string

func (*RPCResponse) UnmarshalJSON

func (response *RPCResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON custom JSON unmarshalling due to jsonrpcid being string or int

type WSRPCConnection

type WSRPCConnection interface {
	// GetRemoteAddr returns a remote address of the connection.
	GetRemoteAddr() string
	// WriteRPCResponse writes the resp onto connection (BLOCKING).
	WriteRPCResponse(resp RPCResponse)
	// TryWriteRPCResponse tries to write the resp onto connection (NON-BLOCKING).
	TryWriteRPCResponse(resp RPCResponse) bool
	// Codec returns an Amino codec used.
	Codec() *amino.Codec
	// Context returns the connection's context.
	Context() context.Context
}

WSRPCConnection represents a websocket connection.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL