From 0ad42d9e746c008bcaa8ee0b7a165164d9d2124c Mon Sep 17 00:00:00 2001
From: librelois <c@elo.tf>
Date: Wed, 29 Jan 2020 16:04:14 +0100
Subject: [PATCH] [fix] bc: allow block v12

---
 .../blockchain/blockchain/src/dubp/check/local.rs     | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/modules/blockchain/blockchain/src/dubp/check/local.rs b/lib/modules/blockchain/blockchain/src/dubp/check/local.rs
index daabddb3..233e62f4 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));
-- 
GitLab