impl<BlockNumber: std::fmt::Debug, PoolError: std::fmt::Debug> From<BuyCollatorProofCreationError>
// Convert drift in terms of container chain slots for parity between client side calculation and
// Formula is: (Slot_drift_in_orchestrator_slot * orchestrator_slot_duration) / container_slot_duration
let relay_parent_header = maybe_relay_parent_header.expect("relay_parent_header must exists as we checked for None variant above; qed");
tracing::error!(target: crate::LOG_TARGET, ?err, "Failed to gather information from relay-client");
tracing::warn!(target: crate::LOG_TARGET, para_id = ?params.para_id, "We are parachain and we do not have core allocated, nothing to do");
tracing::trace!(target: crate::LOG_TARGET, para_id = ?params.para_id, ?core_index, "We are parachain and we core allocated, let's collate the block");
(Some(_slot_frequency), None) => { // We are parathread and core is not allocated. Let's try to buy core
tracing::trace!(target: crate::LOG_TARGET, para_id = ?params.para_id, "We are parathread and we do not have core allocated, let's try to buy the core");
try_to_buy_core::<_, _, <<OBlock as BlockT>::Header as HeaderT>::Number, _, CIDP, _, _>(params.para_id, aux_data, inherent_providers, ¶ms.keystore, orchestrator_client.clone(), orchestrator_tx_pool.clone(), parent_header, params.orchestrator_slot_duration, container_chain_slot_duration).await
tracing::trace!(target: crate::LOG_TARGET, ?block_hash, "Sent unsigned extrinsic to buy the core");
break; // No point in continuing as we need to wait for few relay blocks in order for our core to be available.
(Some(_slot_frequency), Some(core_index)) => { // We are parathread and we do have core, let's continue
tracing::trace!(target: crate::LOG_TARGET, ?core_index, "We are parathread and we do have core allocated, let's collate the block");
tracing::error!(target: crate::LOG_TARGET, ?parent_hash, "Could not fetch validation code hash");
/// Reads allowed ancestry length parameter from the relay chain storage at the given relay parent.