Documentation
¶
Index ¶
Constants ¶
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.