Skip to main content

calimero_node_primitives/
messages.rs

1use actix::Message;
2use calimero_primitives::context::ContextId;
3use calimero_primitives::identity::PublicKey;
4use tokio::sync::oneshot;
5
6pub mod get_blob_bytes;
7
8use get_blob_bytes::GetBlobBytesRequest;
9
10/// Request to register a pending specialized node invite in the node's state.
11#[derive(Clone, Debug)]
12pub struct RegisterPendingSpecializedNodeInvite {
13    /// The nonce from the specialized node invite broadcast
14    pub nonce: [u8; 32],
15    /// The context to invite specialized nodes to
16    pub context_id: ContextId,
17    /// The identity performing the invitation
18    pub inviter_id: PublicKey,
19}
20
21/// Request to remove a pending specialized node invite from the node's state.
22/// Used to clean up if broadcast fails after registration.
23#[derive(Clone, Debug)]
24pub struct RemovePendingSpecializedNodeInvite {
25    /// The nonce to remove
26    pub nonce: [u8; 32],
27}
28
29#[derive(Debug, Message)]
30#[rtype("()")]
31pub enum NodeMessage {
32    GetBlobBytes {
33        request: GetBlobBytesRequest,
34        outcome: oneshot::Sender<<GetBlobBytesRequest as Message>::Result>,
35    },
36    RegisterPendingSpecializedNodeInvite {
37        request: RegisterPendingSpecializedNodeInvite,
38    },
39    RemovePendingSpecializedNodeInvite {
40        request: RemovePendingSpecializedNodeInvite,
41    },
42}