Skip to main content

dpp/data_contract/methods/validate_update/
mod.rs

1use crate::block::block_info::BlockInfo;
2use crate::prelude::DataContract;
3use platform_version::version::PlatformVersion;
4
5mod common;
6mod v0;
7mod v1;
8use crate::validation::SimpleConsensusValidationResult;
9use crate::ProtocolError;
10pub use v0::*;
11
12impl DataContractUpdateValidationMethodsV0 for DataContract {
13    fn validate_update(
14        &self,
15        data_contract: &DataContract,
16        block_info: &BlockInfo,
17        platform_version: &PlatformVersion,
18    ) -> Result<SimpleConsensusValidationResult, ProtocolError> {
19        match platform_version
20            .dpp
21            .contract_versions
22            .methods
23            .validate_update
24        {
25            0 => self.validate_update_v0(data_contract, block_info, platform_version),
26            1 => self.validate_update_v1(data_contract, block_info, platform_version),
27            version => Err(ProtocolError::UnknownVersionMismatch {
28                method: "DataContract::validate_update".to_string(),
29                known_versions: vec![0, 1],
30                received: version,
31            }),
32        }
33    }
34}