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