type ParachainBlockImport = TParachainBlockImport<Block, Arc<ParachainClient>, ParachainBackend>;
thread_local!(static TIMESTAMP: std::cell::RefCell<u64> = const { std::cell::RefCell::new(0) });
/// Check the parachain assignment using the orchestrator chain client, and send a `CcSpawnMsg` to
/// Checks the assignment for the next block, so if there is a session change on block 15, this will
// If the container chain args have no --wasmtime-precompiled flag, use the same as the orchestrator
// Save callback for later, used when collator rotates from container chain back to orchestrator chain
ccp_authorities_noting_inherent::ContainerChainAuthoritiesInherentData::get_latest_orchestrator_head_info(
let relay_slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration(
// This will allow any signed origin to deregister chains 2000 and 2001, and register 2002.
let (registrar_paras_key_2002, para_info_2002) = mocked_relay_keys::get_mocked_registrar_paras(2002.into());
additional_keys.extend([(para_head_key, para_head_data), (relay_slot_key, Slot::from(relay_slot).encode()), (registrar_paras_key_2002, para_info_2002)]);
/// Orchestrator Parachain Block import. We cannot use the one in cumulus as it overrides the best
/// a [`RelayChainInProcessInterface`] to access relay chain data necessary for parachain operation.
/// the builder gets access to this concrete instance and instantiates a [`RelayChainInProcessInterface`] with it.
/// Provides an implementation of the [`RelayChainInterface`] using a local in-process relay chain node.