Trait BlokliSubscriptionClient
pub trait BlokliSubscriptionClient {
// Required methods
fn subscribe_channels(
&self,
selector: ChannelSelector,
) -> Result<impl Stream<Item = Result<Channel, BlokliClientError>> + Send, BlokliClientError>;
fn subscribe_accounts(
&self,
selector: AccountSelector,
) -> Result<impl Stream<Item = Result<Account, BlokliClientError>> + Send, BlokliClientError>;
fn subscribe_graph(
&self,
) -> Result<impl Stream<Item = Result<OpenedChannelsGraphEntry, BlokliClientError>> + Send, BlokliClientError>;
fn subscribe_ticket_params(
&self,
) -> Result<impl Stream<Item = Result<TicketParameters, BlokliClientError>> + Send, BlokliClientError>;
fn subscribe_health(
&self,
) -> Result<impl Stream<Item = Result<ReadinessState, BlokliClientError>> + Send, BlokliClientError>;
fn subscribe_safe_deployments(
&self,
) -> Result<impl Stream<Item = Result<Safe, BlokliClientError>> + Send, BlokliClientError>;
fn subscribe_track_transaction(
&self,
tx_id: String,
) -> Result<impl Stream<Item = Result<Transaction, BlokliClientError>> + Send, BlokliClientError>;
fn subscribe_ticket_redeemed(
&self,
selector: TicketSelector,
) -> Result<impl Stream<Item = Result<RedeemTicketDetails, BlokliClientError>> + Send, BlokliClientError>;
}Expand description
Trait defining subscriptions to Blokli API.
Required Methods§
fn subscribe_channels(
&self,
selector: ChannelSelector,
) -> Result<impl Stream<Item = Result<Channel, BlokliClientError>> + Send, BlokliClientError>
fn subscribe_channels( &self, selector: ChannelSelector, ) -> Result<impl Stream<Item = Result<Channel, BlokliClientError>> + Send, BlokliClientError>
Subscribes to channel updates matching the given selector.
If no selector is given, subscribes to all channel updates.
fn subscribe_accounts(
&self,
selector: AccountSelector,
) -> Result<impl Stream<Item = Result<Account, BlokliClientError>> + Send, BlokliClientError>
fn subscribe_accounts( &self, selector: AccountSelector, ) -> Result<impl Stream<Item = Result<Account, BlokliClientError>> + Send, BlokliClientError>
Subscribes to account updates optionally matching the given selector.
If no selector is given, subscribes to all account updates.
fn subscribe_graph(
&self,
) -> Result<impl Stream<Item = Result<OpenedChannelsGraphEntry, BlokliClientError>> + Send, BlokliClientError>
fn subscribe_graph( &self, ) -> Result<impl Stream<Item = Result<OpenedChannelsGraphEntry, BlokliClientError>> + Send, BlokliClientError>
Subscribes to updates of the entire channel graph.
The initial stream emits one entry per currently open channel. Later updates
include all channel state transitions, including CLOSED entries. Consumers
should merge entries by channel.concrete_channel_id and use closed entries
as removal signals for an open-channel graph.
fn subscribe_ticket_params(
&self,
) -> Result<impl Stream<Item = Result<TicketParameters, BlokliClientError>> + Send, BlokliClientError>
fn subscribe_ticket_params( &self, ) -> Result<impl Stream<Item = Result<TicketParameters, BlokliClientError>> + Send, BlokliClientError>
Subscribes to updates of the ticket parameters.
fn subscribe_health(
&self,
) -> Result<impl Stream<Item = Result<ReadinessState, BlokliClientError>> + Send, BlokliClientError>
fn subscribe_health( &self, ) -> Result<impl Stream<Item = Result<ReadinessState, BlokliClientError>> + Send, BlokliClientError>
Subscribes to health updates for the Blokli instance.
fn subscribe_safe_deployments(
&self,
) -> Result<impl Stream<Item = Result<Safe, BlokliClientError>> + Send, BlokliClientError>
fn subscribe_safe_deployments( &self, ) -> Result<impl Stream<Item = Result<Safe, BlokliClientError>> + Send, BlokliClientError>
Subscribes to on-chain Safe deployments.
fn subscribe_track_transaction(
&self,
tx_id: String,
) -> Result<impl Stream<Item = Result<Transaction, BlokliClientError>> + Send, BlokliClientError>
fn subscribe_track_transaction( &self, tx_id: String, ) -> Result<impl Stream<Item = Result<Transaction, BlokliClientError>> + Send, BlokliClientError>
Subscribes to status updates of a tracked transaction.
fn subscribe_ticket_redeemed(
&self,
selector: TicketSelector,
) -> Result<impl Stream<Item = Result<RedeemTicketDetails, BlokliClientError>> + Send, BlokliClientError>
fn subscribe_ticket_redeemed( &self, selector: TicketSelector, ) -> Result<impl Stream<Item = Result<RedeemTicketDetails, BlokliClientError>> + Send, BlokliClientError>
Subscribes to on-chain ticket redemption events matching the given [TicketSelector].
Returns an infinite stream of Result<types::RedeemTicketDetails>. Each item represents
one redemption event that passed the selector filter. The stream terminates when the
underlying SSE connection closes; errors (network, parse) are yielded as Err items.
Use [TicketSelector::Any] to receive every redemption, or narrow by channel, issuer, or
recipient address.
§Examples
use futures::StreamExt;
use blokli_client::api::v1::{BlokliSubscriptionClient, TicketSelector};
let mut stream = client
.subscribe_ticket_redeemed(TicketSelector::Any)
.expect("failed to subscribe");
while let Some(result) = stream.next().await {
match result {
Ok(event) => println!("redeemed ticket {} in epoch {}", event.index, event.epoch),
Err(e) => eprintln!("stream error: {e}"),
}
}Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.