pub enum BaseLayerEvent {
NewEpoch(u64),
SdlUpdate(SdlUpdate),
VaultEmigrated(Address),
VaultImmigrated(Address),
}Expand description
Event emitted by the base layer to notify clients of state changes
Base layer events are used to communicate important state changes to clients (e.g. domains). They are streamed from the base layer via RPC and allow clients to react to changes in the network.
§Example
use delta_base_sdk::{events::BaseLayerEvent, rpc::BaseRpcClient};
async fn handle_events() -> Result<(), Box<dyn std::error::Error>> {
let client = BaseRpcClient::new("http://localhost:50051").await?;
let shard_id = 1;
// Subscribe to events for a specific shard
let mut event_stream = client.stream_base_layer_events(shard_id).await?;
// Process events as they arrive
while let Some(event_result) = event_stream.next().await {
match event_result {
Ok(event) => match event {
BaseLayerEvent::NewEpoch(epoch) => {
println!("New epoch started: {}", epoch);
},
BaseLayerEvent::SdlUpdate(update) => {
println!("SDL update received: {:?}", update.id);
},
BaseLayerEvent::VaultEmigrated(address) => {
println!("Vault emigrated: {address}");
},
BaseLayerEvent::VaultImmigrated(address) => {
println!("Vault immigrated: {address}");
},
},
Err(e) => eprintln!("Error receiving event: {e}"),
}
}
Ok(())
}Variants§
NewEpoch(u64)
A new epoch has started in the network
This event is emitted when the network transitions to a new epoch.
SdlUpdate(SdlUpdate)
Update on a StateDiffList status
Notification about a SDL’s status change, including acceptance or rejection. This event can also be received when another domain submits an SDL crediting our shard.
VaultEmigrated(Address)
A vault has migrated away from the subscribed domain
This event indicates that the vault with the specified Address is now emigrated and registered with another domain.
VaultImmigrated(Address)
A vault has migrated into the subscribed domain
This event indicates that the vault with the specified Address is now immigrated and registered with this domain.
Trait Implementations§
Source§impl Clone for BaseLayerEvent
impl Clone for BaseLayerEvent
Source§fn clone(&self) -> BaseLayerEvent
fn clone(&self) -> BaseLayerEvent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BaseLayerEvent
impl Debug for BaseLayerEvent
Source§impl TryFrom<BaseLayerEvent> for BaseLayerEvent
impl TryFrom<BaseLayerEvent> for BaseLayerEvent
impl Copy for BaseLayerEvent
Auto Trait Implementations§
impl Freeze for BaseLayerEvent
impl RefUnwindSafe for BaseLayerEvent
impl Send for BaseLayerEvent
impl Sync for BaseLayerEvent
impl Unpin for BaseLayerEvent
impl UnwindSafe for BaseLayerEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request