dpp/data_contract/methods/validate_document/
mod.rs

1use crate::prelude::DataContract;
2use platform_value::Value;
3use platform_version::version::PlatformVersion;
4
5mod v0;
6use crate::document::Document;
7use crate::validation::SimpleConsensusValidationResult;
8use crate::ProtocolError;
9pub use v0::*;
10
11impl DataContractDocumentValidationMethodsV0 for DataContract {
12    fn validate_document(
13        &self,
14        name: &str,
15        document: &Document,
16        platform_version: &PlatformVersion,
17    ) -> Result<SimpleConsensusValidationResult, ProtocolError> {
18        match platform_version
19            .dpp
20            .contract_versions
21            .methods
22            .validate_document
23        {
24            0 => self.validate_document_v0(name, document, platform_version),
25            version => Err(ProtocolError::UnknownVersionMismatch {
26                method: "DataContract::validate_document".to_string(),
27                known_versions: vec![0],
28                received: version,
29            }),
30        }
31    }
32
33    fn validate_document_properties(
34        &self,
35        name: &str,
36        properties: Value,
37        platform_version: &PlatformVersion,
38    ) -> Result<SimpleConsensusValidationResult, ProtocolError> {
39        match platform_version
40            .dpp
41            .contract_versions
42            .methods
43            .validate_document
44        {
45            0 => self.validate_document_properties_v0(name, properties, platform_version),
46            version => Err(ProtocolError::UnknownVersionMismatch {
47                method: "DataContract::validate_document_properties".to_string(),
48                known_versions: vec![0],
49                received: version,
50            }),
51        }
52    }
53}