1use std::hash::Hash;
2
3use crate::exports::transport::HoprTransportProcess;
4
5#[atomic_enum::atomic_enum]
10#[derive(PartialEq, Eq, strum::Display, strum::EnumIter)]
11pub enum HoprState {
12 #[strum(to_string = "Node is not yet initialized")]
14 Uninitialized = 0,
15
16 #[strum(to_string = "Waiting for initial wallet funding")]
18 WaitingForFunds = 1,
19
20 #[strum(to_string = "Verifying wallet balance")]
22 CheckingBalance = 2,
23
24 #[strum(to_string = "Validating network configuration")]
26 ValidatingNetworkConfig = 3,
27
28 #[strum(to_string = "Subscribing to network announcements")]
30 SubscribingToAnnouncements = 4,
31
32 #[strum(to_string = "Registering Safe contract")]
34 RegisteringSafe = 5,
35
36 #[strum(to_string = "Announcing node on chain")]
38 AnnouncingNode = 6,
39
40 #[strum(to_string = "Waiting for on-chain key binding confirmation")]
42 AwaitingKeyBinding = 7,
43
44 #[strum(to_string = "Initializing internal services")]
46 InitializingServices = 8,
47
48 #[strum(to_string = "Node is running")]
50 Running = 9,
51
52 #[strum(to_string = "Node has been terminated")]
54 Terminated = 10,
55}
56
57#[derive(Debug, Clone, PartialEq, Eq, Hash, strum::Display, strum::EnumCount)]
59pub enum HoprLibProcess {
60 #[strum(to_string = "transport: {0}")]
61 Transport(HoprTransportProcess),
62 #[cfg(feature = "session-server")]
63 #[strum(to_string = "session server providing the exit node session stream functionality")]
64 SessionServer,
65 #[strum(to_string = "ticket redemption queue driver")]
66 TicketRedemptions,
67 #[strum(to_string = "subscription for on-chain account announcements")]
68 AccountAnnouncements,
69 #[strum(to_string = "subscription for on-chain channel updates")]
70 ChannelEvents,
71 #[strum(to_string = "on received ticket event (winning or rejected)")]
72 TicketEvents,
73}