use nakamoto_common::bitcoin::network::message::NetworkMessage;
use crate::fsm::{self, Height, LocalTime, PeerId};
#[derive(Debug, Clone)]
pub enum Event {
Initializing,
Ready {
height: Height,
filter_height: Height,
time: LocalTime,
},
Received(PeerId, NetworkMessage),
Address(fsm::AddressEvent),
Chain(fsm::ChainEvent),
Peer(fsm::PeerEvent),
Filter(fsm::FilterEvent),
Inventory(fsm::InventoryEvent),
Ping(fsm::PingEvent),
}
impl From<fsm::ChainEvent> for Event {
fn from(e: fsm::ChainEvent) -> Self {
Self::Chain(e)
}
}
impl From<fsm::PeerEvent> for Event {
fn from(e: fsm::PeerEvent) -> Self {
Self::Peer(e)
}
}
impl From<fsm::FilterEvent> for Event {
fn from(e: fsm::FilterEvent) -> Self {
Self::Filter(e)
}
}
impl From<fsm::AddressEvent> for Event {
fn from(e: fsm::AddressEvent) -> Self {
Self::Address(e)
}
}
impl From<fsm::InventoryEvent> for Event {
fn from(e: fsm::InventoryEvent) -> Self {
Self::Inventory(e)
}
}
impl From<fsm::PingEvent> for Event {
fn from(e: fsm::PingEvent) -> Self {
Self::Ping(e)
}
}