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    governance::witnesses_register::CurrentWitnessSubject,
10    subject::SignedLedger,
11    validation::{request::ValidationReq, response::ValidationRes},
12};
13
14pub mod error;
15pub mod intermediary;
16pub mod service;
17
18#[derive(Debug, Serialize, Deserialize, Clone)]
19pub enum ActorMessage {
20    ValidationReq {
21        req: Signed<ValidationReq>,
22    },
23    ValidationRes {
24        res: Signed<ValidationRes>,
25    },
26    EvaluationReq {
27        req: Box<Signed<EvaluationReq>>,
28    },
29    EvaluationRes {
30        res: Signed<EvaluationRes>,
31    },
32    ApprovalReq {
33        req: Signed<ApprovalReq>,
34    },
35    ApprovalRes {
36        res: Box<Signed<ApprovalRes>>,
37    },
38    DistributionLastEventReq {
39        ledger: Box<SignedLedger>,
40    },
41    DistributionLastEventRes,
42    DistributionLedgerReq {
43        actual_sn: Option<u64>,
44        subject_id: DigestIdentifier,
45    },
46    DistributionLedgerRes {
47        ledger: Vec<SignedLedger>,
48        is_all: bool,
49    },
50    DistributionGetLastSn {
51        subject_id: DigestIdentifier,
52        receiver_actor: String,
53    },
54    AuthLastSn {
55        sn: u64,
56    },
57    GovernanceVersionReq {
58        subject_id: DigestIdentifier,
59        receiver_actor: String,
60    },
61    GovernanceVersionRes {
62        version: u64,
63    },
64    TrackerSyncReq {
65        subject_id: DigestIdentifier,
66        request_nonce: u64,
67        governance_version: u64,
68        after_subject_id: Option<DigestIdentifier>,
69        limit: usize,
70        receiver_actor: String,
71    },
72    TrackerSyncRes {
73        request_nonce: u64,
74        governance_version: u64,
75        items: Vec<CurrentWitnessSubject>,
76        next_cursor: Option<DigestIdentifier>,
77    },
78}
79
80#[derive(Debug, Serialize, Deserialize, Clone)]
81pub struct NetworkMessage {
82    pub info: ComunicateInfo,
83    pub message: ActorMessage,
84}
85
86impl Message for NetworkMessage {}