Skip to main content

ave_core/helpers/network/
mod.rs

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