@@ -772,7 +772,13 @@ namespace cryptonote
772772 blobdata bd;
773773 if (!get_bytecoin_block_hashing_blob (b, bd))
774774 return false ;
775- crypto::cn_slow_hash (bd.data (), bd.size (), res);
775+ if (b.major_version == BLOCK_MAJOR_VERSION_3) {
776+ crypto::cn_slow_hash (bd.data (), bd.size (), res);
777+ }
778+ else if (b.major_version == BLOCK_MAJOR_VERSION_4) {
779+ // TODO: Integrate the Cryptonight v7 variant. (OPTIONAL)
780+ // This is not required for the node-cryptonote-utils package.
781+ }
776782 return true ;
777783 }
778784 // ---------------------------------------------------------------
@@ -860,7 +866,7 @@ namespace cryptonote
860866 // ---------------------------------------------------------------
861867 bool check_proof_of_work_v2 (const block& bl, difficulty_type current_diffic, crypto::hash& proof_of_work)
862868 {
863- if (BLOCK_MAJOR_VERSION_2 != bl.major_version || BLOCK_MAJOR_VERSION_3 != bl.major_version )
869+ if (BLOCK_MAJOR_VERSION_2 != bl.major_version || BLOCK_MAJOR_VERSION_3 != bl.major_version || BLOCK_MAJOR_VERSION_4 != bl. major_version )
864870 return false ;
865871
866872 if (!get_bytecoin_block_longhash (bl, proof_of_work))
@@ -901,6 +907,7 @@ namespace cryptonote
901907 case BLOCK_MAJOR_VERSION_1: return check_proof_of_work_v1 (bl, current_diffic, proof_of_work);
902908 case BLOCK_MAJOR_VERSION_2: return check_proof_of_work_v2 (bl, current_diffic, proof_of_work);
903909 case BLOCK_MAJOR_VERSION_3: return check_proof_of_work_v2 (bl, current_diffic, proof_of_work);
910+ case BLOCK_MAJOR_VERSION_4: return check_proof_of_work_v2 (bl, current_diffic, proof_of_work);
904911 }
905912
906913 CHECK_AND_ASSERT_MES (false , false , " unknown block major version: " << bl.major_version << " ." << bl.minor_version );
0 commit comments