Skip to main content

ave_core/helpers/network/
mod.rs

1use ave_actors::Message;
2use ave_common::identity::{DigestIdentifier, Signed};
3use network::ComunicateInfo;
4use serde::{Deserialize, Serialize};
5
6use crate::{
7    approval::{request::ApprovalReq, response::ApprovalRes},
8    evaluation::{request::EvaluationReq, response::EvaluationRes},
9    subject::SignedLedger,
10    validation::{request::ValidationReq, response::ValidationRes},
11};
12
13pub mod error;
14pub mod intermediary;
15pub mod service;
16
17#[derive(Debug, Serialize, Deserialize, Clone)]
18pub enum ActorMessage {
19    ValidationReq {
20        req: Signed<ValidationReq>,
21    },
22    ValidationRes {
23        res: Signed<ValidationRes>,
24    },
25    EvaluationReq {
26        req: Box<Signed<EvaluationReq>>,
27    },
28    EvaluationRes {
29        res: Signed<EvaluationRes>,
30    },
31    ApprovalReq {
32        req: Signed<ApprovalReq>,
33    },
34    ApprovalRes {
35        res: Box<Signed<ApprovalRes>>,
36    },
37    DistributionLastEventReq {
38        ledger: Box<SignedLedger>,
39    },
40    DistributionLastEventRes,
41    DistributionLedgerReq {
42        actual_sn: Option<u64>,
43        subject_id: DigestIdentifier,
44    },
45    DistributionLedgerRes {
46        ledger: Vec<SignedLedger>,
47        is_all: bool,
48    },
49    DistributionGetLastSn {
50        subject_id: DigestIdentifier,
51        receiver_actor: String,
52    },
53    AuthLastSn {
54        sn: u64,
55    },
56}
57
58#[derive(Debug, Serialize, Deserialize, Clone)]
59pub struct NetworkMessage {
60    pub info: ComunicateInfo,
61    pub message: ActorMessage,
62}
63
64impl Message for NetworkMessage {}