Documentation
¶
Index ¶
- Constants
- func ToHttpErrorCode(errorCode ErrorCode) int
- func ToJsonRPCErrorCode(errorCode ErrorCode) int
- type Codec
- type ErrorCode
- type JsonRPCCodec
- func (*JsonRPCCodec) DecodeRequest(msgBytes []byte) (*Message, error)
- func (*JsonRPCCodec) DecodeResponse(msgBytes []byte) (*Message, error)
- func (*JsonRPCCodec) EncodeNewErrorResponse(id string, code int, message string, data []byte) ([]byte, error)
- func (*JsonRPCCodec) EncodeRequest(msg *Message) ([]byte, error)
- func (*JsonRPCCodec) EncodeResponse(msg *Message) ([]byte, error)
- type JsonRPCError
- type JsonRPCRequest
- type JsonRPCResponse
- type Message
- type MessageBody
Constants ¶
View Source
const ( MessageSignatureLen = 65 MessageSignatureHexEncodedLen = 2 + 2*MessageSignatureLen MessageIdMaxLen = 128 MessageMethodMaxLen = 64 MessageDonIdMaxLen = 64 MessageReceiverLen = 2 + 2*20 NullChar = "\x00" )
Variables ¶
This section is empty.
Functions ¶
func ToHttpErrorCode ¶
func ToJsonRPCErrorCode ¶
Types ¶
type Codec ¶
type Codec interface {
DecodeRequest(msgBytes []byte) (*Message, error)
EncodeRequest(msg *Message) ([]byte, error)
DecodeResponse(msgBytes []byte) (*Message, error)
EncodeResponse(msg *Message) ([]byte, error)
EncodeNewErrorResponse(id string, code int, message string, data []byte) ([]byte, error)
}
Codec implements (de)serialization of Message objects.
type JsonRPCCodec ¶
type JsonRPCCodec struct {
}
func (*JsonRPCCodec) DecodeRequest ¶
func (*JsonRPCCodec) DecodeRequest(msgBytes []byte) (*Message, error)
func (*JsonRPCCodec) DecodeResponse ¶
func (*JsonRPCCodec) DecodeResponse(msgBytes []byte) (*Message, error)
func (*JsonRPCCodec) EncodeNewErrorResponse ¶
func (*JsonRPCCodec) EncodeRequest ¶
func (*JsonRPCCodec) EncodeRequest(msg *Message) ([]byte, error)
func (*JsonRPCCodec) EncodeResponse ¶
func (*JsonRPCCodec) EncodeResponse(msg *Message) ([]byte, error)
type JsonRPCError ¶
type JsonRPCError struct {
Code int `json:"code"`
Message string `json:"message"`
Data json.RawMessage `json:"data,omitempty"`
}
JSON-RPC error can only be sent to users. It is not used for messages between Gateways and Nodes.
type JsonRPCRequest ¶
type JsonRPCRequest struct {
Version string `json:"jsonrpc"`
Id string `json:"id"`
Method string `json:"method"`
Params *Message `json:"params,omitempty"`
}
Wrapping/unwrapping Message objects into JSON RPC ones folllowing https://www.jsonrpc.org/specification
type JsonRPCResponse ¶
type JsonRPCResponse struct {
Version string `json:"jsonrpc"`
Id string `json:"id"`
Result *Message `json:"result,omitempty"`
Error *JsonRPCError `json:"error,omitempty"`
}
type Message ¶
type Message struct {
Signature string `json:"signature"`
Body MessageBody `json:"body"`
}
* Top-level Message structure containing: * - universal fields identifying the request, the sender and the target DON/service * - product-specific payload * * Signature, Receiver and Sender are hex-encoded with a "0x" prefix.
func (*Message) ExtractSigner ¶ added in v2.4.0
type MessageBody ¶
type MessageBody struct {
MessageId string `json:"message_id"`
Method string `json:"method"`
DonId string `json:"don_id"`
Receiver string `json:"receiver"`
// Service-specific payload, decoded inside the Handler.
Payload json.RawMessage `json:"payload,omitempty"`
// Fields only used locally for convenience. Not serialized.
Sender string `json:"-"`
}
Click to show internal directories.
Click to hide internal directories.