contract

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RegisteredListenerSourceListener   = "listener"
	RegisteredListenerSourceSubscriber = "subscriber"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Event

type Event interface {
	Name() string

	Payload() any

	Timestamp() time.Time

	StopPropagation()

	IsPropagationStopped() bool
}

type EventDispatcher

type EventDispatcher interface {
	AddListener(eventName string, listener EventListener, priority int) ListenerRegistration

	RemoveListener(registration ListenerRegistration) bool

	AddSubscriber(subscriber EventSubscriber)

	RemoveSubscriber(subscriber EventSubscriber) int

	Dispatch(runtimeInstance runtimecontract.Runtime, event Event) (Event, error)

	DispatchName(runtimeInstance runtimecontract.Runtime, eventName string, payload any) (Event, error)
}

type EventDispatcherInspector

type EventDispatcherInspector interface {
	RegisteredEvents() []RegisteredEvent
}

type EventListener

type EventListener func(runtimeInstance runtimecontract.Runtime, event Event) error

type EventSubscriber

type EventSubscriber interface {
	SubscribedEvents() map[string][]SubscribedEvent
}

type ListenerRegistration

type ListenerRegistration struct {
	EventName  string
	ListenerId uint64
}

type RegisteredEvent

type RegisteredEvent struct {
	EventName string               `json:"eventName"`
	Listeners []RegisteredListener `json:"listeners"`
}

type RegisteredListener

type RegisteredListener struct {
	Priority     int    `json:"priority"`
	Source       string `json:"source"`
	Owner        string `json:"owner"`
	ListenerId   string `json:"listenerId"`
	ListenerName string `json:"listenerName"`
}

type SubscribedEvent

type SubscribedEvent interface {
	Listener() EventListener

	Priority() int
}

Jump to

Keyboard shortcuts

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