stream

package
v0.43.1-rc.1.access-me... Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2025 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const TransactionExpiryForUnknownStatus = flow.DefaultTransactionExpiry

TransactionExpiryForUnknownStatus defines the number of blocks after which a transaction with an unknown status is considered expired.

Variables

This section is empty.

Functions

This section is empty.

Types

type TransactionMetadata

type TransactionMetadata struct {
	// contains filtered or unexported fields
}

TransactionMetadata manages the state of a transaction subscription.

This struct contains metadata for tracking a transaction's progress, including references to relevant blocks, collections, and transaction results.

func NewTransactionMetadata

func NewTransactionMetadata(
	blocks storage.Blocks,
	collections storage.Collections,
	transactions storage.Transactions,
	txID flow.Identifier,
	txReferenceBlockID flow.Identifier,
	eventEncodingVersion entities.EventEncodingVersion,
	txProvider *txprovider.FailoverTransactionProvider,
	txStatusDeriver *txstatus.TxStatusDeriver,
) *TransactionMetadata

NewTransactionMetadata initializes a new metadata object for a transaction subscription.

This function constructs a transaction metadata object used for tracking the transaction's progress and maintaining its state throughout execution.

Parameters:

  • ctx: Context for managing the lifecycle of the operation.
  • backendTransactions: A reference to the txStreamBackend transaction manager.
  • txID: The unique identifier of the transaction.
  • txReferenceBlockID: The ID of the transaction’s reference block.
  • eventEncodingVersion: The required version of event encoding.

Returns:

  • *TransactionMetadata: The initialized transaction metadata object.

func (*TransactionMetadata) Refresh

func (t *TransactionMetadata) Refresh(ctx context.Context) error

Refresh updates the transaction subscription metadata to reflect the latest state.

Parameters:

  • ctx: Context for managing the operation lifecycle.

Expected errors during normal operation:

  • [ErrBlockNotReady] if the block at the given height is not found.
  • codes.Internal if impossible to get transaction result due to event payload conversion failed

All other errors are considered as state corruption (fatal) or internal errors in the refreshing transaction result or when refreshing transaction status.

type TransactionStream

type TransactionStream struct {
	// contains filtered or unexported fields
}

TransactionStream manages transaction subscriptions for monitoring transaction statuses. It provides functionalities to send transactions, subscribe to transaction status updates, and handle subscription lifecycles.

func NewTransactionStreamBackend

func NewTransactionStreamBackend(
	log zerolog.Logger,
	state protocol.State,
	subscriptionHandler *subscription.SubscriptionHandler,
	blockTracker tracker.BlockTracker,
	sendTransaction sendTransaction,
	blocks storage.Blocks,
	collections storage.Collections,
	transactions storage.Transactions,
	txProvider *txprovider.FailoverTransactionProvider,
	txStatusDeriver *txstatus.TxStatusDeriver,
) *TransactionStream

func (*TransactionStream) SendAndSubscribeTransactionStatuses

func (t *TransactionStream) SendAndSubscribeTransactionStatuses(
	ctx context.Context,
	tx *flow.TransactionBody,
	requiredEventEncodingVersion entities.EventEncodingVersion,
) subscription.Subscription

SendAndSubscribeTransactionStatuses sends a transaction and subscribes to its status updates.

The subscription begins monitoring from the reference block specified in the transaction itself and streams updates until the transaction reaches a final state (flow.TransactionStatusSealed or flow.TransactionStatusExpired). Upon reaching a final state, the subscription automatically terminates.

Parameters:

  • ctx: The context to manage the transaction sending and subscription lifecycle, including cancellation.
  • tx: The transaction body to be sent and monitored.
  • requiredEventEncodingVersion: The version of event encoding required for the subscription.

If the transaction cannot be sent, the subscription will fail and return a failed subscription.

func (*TransactionStream) SubscribeTransactionStatuses

func (t *TransactionStream) SubscribeTransactionStatuses(
	ctx context.Context,
	txID flow.Identifier,
	requiredEventEncodingVersion entities.EventEncodingVersion,
) subscription.Subscription

SubscribeTransactionStatuses subscribes to status updates for a given transaction ID.

The subscription starts monitoring from the last sealed block. Updates are streamed until the transaction reaches a final state (flow.TransactionStatusSealed or flow.TransactionStatusExpired). The subscription terminates automatically once the final state is reached.

Parameters:

  • ctx: The context to manage the subscription's lifecycle, including cancellation.
  • txID: The unique identifier of the transaction to monitor.
  • requiredEventEncodingVersion: The version of event encoding required for the subscription.

Jump to

Keyboard shortcuts

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