spotlib

package module
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2024 License: MIT Imports: 24 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client added in v0.0.3

type Client struct {
	Events *emitter.Hub
	// contains filtered or unexported fields
}

Client holds information about a client, including its connections to the spot servers

func New added in v0.0.3

func New(params ...any) (*Client, error)

New starts a new Client and establishes connection to the Spot system. If any key is passed, the first key will be used as the main signing key.

func (*Client) Close added in v0.1.1

func (c *Client) Close() error

func (*Client) ConnectionCount added in v0.0.4

func (c *Client) ConnectionCount() (uint32, uint32)

ConnectionCount returns the number of spot server connections, and the number of said connections which are online (ie. past the handshake step).

func (*Client) GetIDCard added in v0.0.6

func (c *Client) GetIDCard(ctx context.Context, h []byte) (*cryptutil.IDCard, error)

GetIDCard returns the ID card for the given hash

func (*Client) GetIDCardBin added in v0.0.6

func (c *Client) GetIDCardBin(ctx context.Context, h []byte) ([]byte, error)

GetIDCardBin returns the binary ID card for the given hash

func (*Client) GetIDCardForRecipient added in v0.0.6

func (c *Client) GetIDCardForRecipient(ctx context.Context, rcv string) (*cryptutil.IDCard, error)

GetIDCardForRecipient returns the ID Card of a given recipient, if any

func (*Client) IDCard added in v0.0.6

func (c *Client) IDCard() *cryptutil.IDCard

IDCard returns our own IDCard

func (*Client) Query added in v0.0.3

func (c *Client) Query(ctx context.Context, target string, body []byte) ([]byte, error)

Query sends a non-encrypted request & waits for the response

func (*Client) QueryTimeout added in v0.0.6

func (c *Client) QueryTimeout(timeout time.Duration, target string, body []byte) ([]byte, error)

QueryTimeout calls Query with the specified timeout

func (*Client) SendTo added in v0.0.6

func (c *Client) SendTo(ctx context.Context, target string, payload []byte) error

SendTo encrypts and sends a payload to the given target

func (*Client) SetHandler added in v0.0.6

func (c *Client) SetHandler(endpoint string, handler MessageHandler)

func (*Client) TargetId added in v0.0.4

func (c *Client) TargetId() string

TargetId returns the local client ID that can be used to transmit messages

type InstantMessage added in v0.0.3

type InstantMessage struct {
	ID        uuid.UUID
	Flags     uint64
	Recipient string
	Sender    string
	Body      []byte
	Encrypted bool
	SignedBy  [][]byte // contains the public keys that signed the message when decoding
}

func DecodeInstantMessage added in v0.0.3

func DecodeInstantMessage(buf []byte, res *cryptutil.OpenResult, err error) (*InstantMessage, error)

DecodeInstantMessage will return a InstantMessage for a given bottle, after checking the source and various details

func (*InstantMessage) Bottle added in v0.0.3

func (im *InstantMessage) Bottle() *cryptutil.Bottle

func (*InstantMessage) Bytes added in v0.0.3

func (im *InstantMessage) Bytes() []byte

func (*InstantMessage) MarshalBinary added in v0.0.3

func (im *InstantMessage) MarshalBinary() ([]byte, error)

func (*InstantMessage) ReadFrom added in v0.0.3

func (im *InstantMessage) ReadFrom(r io.Reader) (int64, error)

func (*InstantMessage) UnmarshalBinary added in v0.0.3

func (im *InstantMessage) UnmarshalBinary(r []byte) error

type MessageHandler added in v0.0.6

type MessageHandler func(msg *spotproto.Message) ([]byte, error)

Jump to

Keyboard shortcuts

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