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

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

              func (RPCError) Error

              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

              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

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

                func NewRPCSuccessResponse

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

                func RPCInternalError

                func RPCInternalError(id jsonrpcid, err error) RPCResponse

                func RPCInvalidParamsError

                func RPCInvalidParamsError(id jsonrpcid, err error) RPCResponse

                func RPCInvalidRequestError

                func RPCInvalidRequestError(id jsonrpcid, err error) RPCResponse

                func RPCMethodNotFoundError

                func RPCMethodNotFoundError(id jsonrpcid) RPCResponse

                func RPCParseError

                func RPCParseError(id jsonrpcid, err error) RPCResponse

                func RPCServerError

                func RPCServerError(id jsonrpcid, err error) RPCResponse

                func (RPCResponse) String

                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.

                    Source Files