dpp/
dash_platform_protocol.rs

1use crate::identity::IdentityFacade;
2use crate::state_transition::state_transition_factory::StateTransitionFactory;
3
4pub struct DashPlatformProtocol {
5    /// Version of protocol
6    pub protocol_version: u32,
7    /// Public facing facades to interact with the library
8    pub identities: IdentityFacade,
9    pub state_transition: StateTransitionFactory,
10}
11
12/// DashPlatformProtocol is the main interface of the library used to perform validation
13/// and creating of different data structures
14impl DashPlatformProtocol {
15    pub fn new(protocol_version: u32) -> Self {
16        Self {
17            protocol_version,
18            identities: IdentityFacade::new(protocol_version),
19            state_transition: StateTransitionFactory {},
20        }
21    }
22
23    pub fn identities(&self) -> &IdentityFacade {
24        &self.identities
25    }
26    pub fn state_transition(&self) -> &StateTransitionFactory {
27        &self.state_transition
28    }
29}