dpp/data_contract/config/methods/validate_update/
mod.rs1use crate::data_contract::config::DataContractConfig;
2use crate::validation::SimpleConsensusValidationResult;
3use crate::ProtocolError;
4use platform_value::Identifier;
5use platform_version::version::PlatformVersion;
6
7mod v0;
8mod v1;
9mod v2;
10
11impl DataContractConfig {
12 pub fn validate_update(
13 &self,
14 new_config: &DataContractConfig,
15 contract_id: Identifier,
16 platform_version: &PlatformVersion,
17 ) -> Result<SimpleConsensusValidationResult, ProtocolError> {
18 match platform_version
19 .dpp
20 .validation
21 .data_contract
22 .validate_config_update
23 {
24 0 => Ok(self.validate_update_v0(new_config, contract_id)),
25 1 => Ok(self.validate_update_v1(new_config, contract_id, platform_version)),
26 2 => Ok(self.validate_update_v2(new_config, contract_id, platform_version)),
27 version => Err(ProtocolError::UnknownVersionMismatch {
28 method: "validate_update".to_string(),
29 known_versions: vec![0, 1, 2],
30 received: version,
31 }),
32 }
33 }
34}