dpp/data_contract/config/methods/validate_update/
mod.rs

1use 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;
9
10impl DataContractConfig {
11    pub fn validate_update(
12        &self,
13        new_config: &DataContractConfig,
14        contract_id: Identifier,
15        platform_version: &PlatformVersion,
16    ) -> Result<SimpleConsensusValidationResult, ProtocolError> {
17        match platform_version
18            .dpp
19            .validation
20            .data_contract
21            .validate_config_update
22        {
23            0 => Ok(self.validate_update_v0(new_config, contract_id)),
24            1 => Ok(self.validate_update_v1(new_config, contract_id, platform_version)),
25            version => Err(ProtocolError::UnknownVersionMismatch {
26                method: "validate_update".to_string(),
27                known_versions: vec![0, 1],
28                received: version,
29            }),
30        }
31    }
32}