dpp/data_contract/methods/validate_document/
mod.rs1use 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}