diff --git a/pallets/xcmp-queue/src/lib.rs b/pallets/xcmp-queue/src/lib.rs index 34c30e98184..1cb83a98ea6 100644 --- a/pallets/xcmp-queue/src/lib.rs +++ b/pallets/xcmp-queue/src/lib.rs @@ -34,7 +34,7 @@ mod tests; use codec::{Decode, Encode}; use cumulus_primitives_core::{ relay_chain::BlockNumber as RelayBlockNumber, ChannelStatus, GetChannelInfo, MessageSendError, - ParaId, XcmpMessageHandler, XcmpMessageSource, + ParaId, XcmpMessageHandler, XcmpMessageSource, XcmpMessageFormat, }; use frame_support::weights::Weight; use rand_chacha::{ @@ -208,18 +208,6 @@ pub enum ChannelSignal { Resume, } -/// The aggregate XCMP message format. -#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, RuntimeDebug)] -pub enum XcmpMessageFormat { - /// Encoded `VersionedXcm` messages, all concatenated. - ConcatenatedVersionedXcm, - /// Encoded `Vec` messages, all concatenated. - ConcatenatedEncodedBlob, - /// One or more channel control signals; these should be interpreted immediately upon receipt - /// from the relay-chain. - Signals, -} - impl Pallet { /// Place a message `fragment` on the outgoing XCMP queue for `recipient`. /// diff --git a/primitives/core/src/lib.rs b/primitives/core/src/lib.rs index 5d49b892862..a59cd7012b2 100644 --- a/primitives/core/src/lib.rs +++ b/primitives/core/src/lib.rs @@ -19,12 +19,14 @@ #![cfg_attr(not(feature = "std"), no_std)] use codec::{Decode, Encode}; -use frame_support::weights::Weight; use sp_runtime::{traits::Block as BlockT, RuntimeDebug}; use sp_std::prelude::*; pub use polkadot_core_primitives::InboundDownwardMessage; -pub use polkadot_parachain::primitives::{Id as ParaId, UpwardMessage, ValidationParams}; +pub use polkadot_parachain::primitives::{ + DmpMessageHandler, Id as ParaId, UpwardMessage, ValidationParams, XcmpMessageFormat, + XcmpMessageHandler, +}; pub use polkadot_primitives::v1::{ AbridgedHostConfiguration, AbridgedHrmpChannel, PersistedValidationData, }; @@ -34,7 +36,6 @@ pub mod relay_chain { pub use polkadot_core_primitives::*; pub use polkadot_primitives::{v1, v1::well_known_keys}; } -use relay_chain::BlockNumber as RelayBlockNumber; /// An inbound HRMP message. pub type InboundHrmpMessage = polkadot_primitives::v1::InboundHrmpMessage; @@ -88,47 +89,6 @@ pub trait GetChannelInfo { fn get_channel_max(id: ParaId) -> Option; } -/// Something that should be called when a downward message is received. -pub trait DmpMessageHandler { - /// Handle some incoming DMP messages (note these are individual XCM messages). - /// - /// Also, process messages up to some `max_weight`. - fn handle_dmp_messages( - iter: impl Iterator)>, - max_weight: Weight, - ) -> Weight; -} -impl DmpMessageHandler for () { - fn handle_dmp_messages( - iter: impl Iterator)>, - _max_weight: Weight, - ) -> Weight { - iter.for_each(drop); - 0 - } -} - -/// Something that should be called for each batch of messages received over XCMP. -pub trait XcmpMessageHandler { - /// Handle some incoming XCMP messages (note these are the big one-per-block aggregate - /// messages). - /// - /// Also, process messages up to some `max_weight`. - fn handle_xcmp_messages<'a, I: Iterator>( - iter: I, - max_weight: Weight, - ) -> Weight; -} -impl XcmpMessageHandler for () { - fn handle_xcmp_messages<'a, I: Iterator>( - iter: I, - _max_weight: Weight, - ) -> Weight { - for _ in iter {} - 0 - } -} - /// Something that should be called when sending an upward message. pub trait UpwardMessageSender { /// Send the given UMP message; return the expected number of blocks before the message will