Skip to main content

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;
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}