Documentation ¶
Index ¶
Constants ¶
const ( // DefaultMaxEventTypes is the default maximum number of event types that can be specified in a filter DefaultMaxEventTypes = 1000 // DefaultMaxAddresses is the default maximum number of addresses that can be specified in a filter DefaultMaxAddresses = 1000 // DefaultMaxContracts is the default maximum number of contracts that can be specified in a filter DefaultMaxContracts = 1000 )
const ( // DefaultSendBufferSize is the default buffer size for the subscription's send channel. // The size is chosen to balance memory overhead from each subscription with performance when // streaming existing data. DefaultSendBufferSize = 10 // DefaultMaxGlobalStreams defines the default max number of streams that can be open at the same time. DefaultMaxGlobalStreams = 1000 // DefaultCacheSize defines the default max number of objects for the execution data cache. DefaultCacheSize = 100 // DefaultSendTimeout is the default timeout for sending a message to the client. After the timeout // expires, the connection is closed. DefaultSendTimeout = 30 * time.Second // DefaultResponseLimit is default max responses per second allowed on a stream. After exceeding // the limit, the stream is paused until more capacity is available. DefaultResponseLimit = float64(0) // DefaultHeartbeatInterval specifies the block interval at which heartbeat messages should be sent. DefaultHeartbeatInterval = 1 // DefaultRegisterIDsRequestLimit defines the default limit of register IDs for a single request to the get register endpoint DefaultRegisterIDsRequestLimit = 100 )
Variables ¶
var DefaultEventFilterConfig = EventFilterConfig{ MaxEventTypes: DefaultMaxEventTypes, MaxAddresses: DefaultMaxAddresses, MaxContracts: DefaultMaxContracts, }
DefaultEventFilterConfig is the default configuration for EventFilters
Functions ¶
This section is empty.
Types ¶
type API ¶
type API interface { // GetExecutionDataByBlockID retrieves execution data for a specific block by its block ID. GetExecutionDataByBlockID(ctx context.Context, blockID flow.Identifier) (*execution_data.BlockExecutionData, error) // SubscribeExecutionData subscribes to execution data starting from a specific block ID and block height. SubscribeExecutionData(ctx context.Context, startBlockID flow.Identifier, startBlockHeight uint64) Subscription // SubscribeEvents subscribes to events starting from a specific block ID and block height, with an optional event filter. SubscribeEvents(ctx context.Context, startBlockID flow.Identifier, startHeight uint64, filter EventFilter) Subscription // GetRegisterValues returns register values for a set of register IDs at the provided block height. GetRegisterValues(registerIDs flow.RegisterIDs, height uint64) ([]flow.RegisterValue, error) }
API represents an interface that defines methods for interacting with a blockchain's execution data and events.
type EventFilter ¶ added in v0.30.2
type EventFilter struct { EventTypes map[flow.EventType]struct{} Addresses map[string]struct{} Contracts map[string]struct{} // contains filtered or unexported fields }
EventFilter represents a filter applied to events for a given subscription
func NewEventFilter ¶ added in v0.30.2
func NewEventFilter( config EventFilterConfig, chain flow.Chain, eventTypes []string, addresses []string, contracts []string, ) (EventFilter, error)
func (*EventFilter) Filter ¶ added in v0.30.2
func (f *EventFilter) Filter(events flow.EventsList) flow.EventsList
Filter applies the all filters on the provided list of events, and returns a list of events that match
type EventFilterConfig ¶ added in v0.30.2
EventFilterConfig is used to configure the limits for EventFilters
type ParsedEvent ¶ added in v0.30.2
type ParsedEvent struct { Type ParsedEventType EventType flow.EventType Address string Contract string ContractName string Name string }
func ParseEvent ¶ added in v0.30.2
func ParseEvent(eventType flow.EventType) (*ParsedEvent, error)
ParseEvent parses an event type into its parts. There are 2 valid EventType formats: - flow.[EventName] - A.[Address].[Contract].[EventName] Any other format results in an error.
type ParsedEventType ¶ added in v0.30.2
type ParsedEventType int
const ( ProtocolEventType ParsedEventType = iota + 1 AccountEventType )
type Streamable ¶ added in v0.30.2
type Streamable interface { ID() string Close() Fail(error) Send(context.Context, interface{}, time.Duration) error Next(context.Context) (interface{}, error) }
Streamable represents a subscription that can be streamed.
type Subscription ¶ added in v0.30.2
type Subscription interface { // ID returns the unique identifier for this subscription used for logging ID() string // Channel returns the channel from which subscription data can be read Channel() <-chan interface{} // Err returns the error that caused the subscription to fail Err() error }
Subscription represents a streaming request, and handles the communication between the grpc handler and the backend implementation.