ave_core/helpers/network/
mod.rs1use 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 {}