// Copyright 2019-2021 Parity Technologies (UK) Ltd. // This file is part of Substrate. // Substrate is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Substrate is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . //! A module that enables a runtime to work as parachain. #[cfg(not(feature = "std"))] #[doc(hidden)] pub mod implementation; #[cfg(test)] mod tests; #[cfg(not(feature = "std"))] #[doc(hidden)] pub use bytes; #[cfg(not(feature = "std"))] #[doc(hidden)] pub use codec::decode_from_bytes; #[cfg(not(feature = "std"))] #[doc(hidden)] pub use polkadot_parachain; #[cfg(not(feature = "std"))] #[doc(hidden)] pub use sp_runtime::traits::GetRuntimeBlockType; #[cfg(not(feature = "std"))] #[doc(hidden)] pub use sp_std; /// Basically the same as [`ValidationParams`](polkadot_parachain::primitives::ValidationParams), /// but a little bit optimized for our use case here. /// /// `block_data` and `head_data` are represented as [`bytes::Bytes`] to make them reuse /// the memory of the input parameter of the exported `validate_blocks` function. /// /// The layout of this type must match exactly the layout of /// [`ValidationParams`](polkadot_parachain::primitives::ValidationParams) to have the same /// SCALE encoding. #[derive(codec::Decode)] #[cfg_attr(feature = "std", derive(codec::Encode))] #[doc(hidden)] pub struct MemoryOptimizedValidationParams { pub parent_head: bytes::Bytes, pub block_data: bytes::Bytes, pub relay_parent_number: cumulus_primitives_core::relay_chain::BlockNumber, pub relay_parent_storage_root: cumulus_primitives_core::relay_chain::Hash, }