diff --git a/lib/modules/blockchain/blockchain/src/dubp/check/local.rs b/lib/modules/blockchain/blockchain/src/dubp/check/local.rs index daabddb3521be7bf62234075df8e6923593d815a..233e62f42e40b0202850df8f2e42b2cd1b228e03 100644 --- a/lib/modules/blockchain/blockchain/src/dubp/check/local.rs +++ b/lib/modules/blockchain/blockchain/src/dubp/check/local.rs @@ -30,12 +30,15 @@ use dubp_common_doc::traits::Document; use dubp_common_doc::BlockNumber; use dubp_currency_params::CurrencyParameters; +const COUNT_ALLOWED_BLOCK_VERSIONS: usize = 3; +static ALLOWED_BLOCK_VERSIONS: [usize; COUNT_ALLOWED_BLOCK_VERSIONS] = [10, 11, 12]; + #[derive(Debug, PartialEq)] /// Local verification of a block error pub enum LocalVerifyBlockError { /// Wrong block version Version { - expected_version: Vec<usize>, + expected_version: [usize; COUNT_ALLOWED_BLOCK_VERSIONS], actual_version: u32, }, /// Genesis block specific rules @@ -105,9 +108,9 @@ pub fn verify_local_validity_block_v10( block: &BlockDocumentV10, ) -> Result<(), LocalVerifyBlockError> { // Version - if !(block.version == 10 || block.version == 11) { + if !ALLOWED_BLOCK_VERSIONS.contains(&(block.version as usize)) { return Err(LocalVerifyBlockError::Version { - expected_version: vec![10, 11], + expected_version: ALLOWED_BLOCK_VERSIONS, actual_version: block.version, }); } @@ -181,7 +184,7 @@ mod tests { block.version = 14; let expected = Err(LocalVerifyBlockError::Version { - expected_version: vec![10, 11], + expected_version: ALLOWED_BLOCK_VERSIONS, actual_version: 14, }); let actual = verify_local_validity_block(&BlockDocument::V10(block), Some(currency_params));