diff --git a/domains/client/block-builder/src/lib.rs b/domains/client/block-builder/src/lib.rs index 8cf188b8c5..2e8ec20781 100644 --- a/domains/client/block-builder/src/lib.rs +++ b/domains/client/block-builder/src/lib.rs @@ -176,7 +176,20 @@ where api.record_proof(); } - api.initialize_block(parent_hash, &header)?; + let core_version = api + .api_version::>(parent_hash)? + .ok_or_else(|| Error::VersionInvalid("Core".to_string()))?; + + if core_version >= 5 { + if api.initialize_block(parent_hash, &header).is_err() { + // TODO: Hack for Subspace fork caused by + // https://github.com/subspace/polkadot-sdk/commit/447bbc765020674614e9ac982163f7e11e5b03ea + // Replace with error propagation before next network + } + } else { + #[allow(deprecated)] + api.initialize_block_before_version_5(parent_hash, &header)?; + } if let Some(inherent_data) = maybe_inherent_data { let inherent_extrinsics = Self::create_inherents(parent_hash, &api, inherent_data)?;