From 5e86294e4ef9a2fc4979d6dd62b843cf43567e26 Mon Sep 17 00:00:00 2001
From: Shaun Wang <spxwang@gmail.com>
Date: Thu, 5 Aug 2021 18:43:51 +1200
Subject: [PATCH] Polkadot companion (XCM-simulator) (#560)

* Use definitions from polkadot.

* Remove unused imports.

* Rerun CI.
---
 cumulus/pallets/xcmp-queue/src/lib.rs | 14 +-------
 cumulus/primitives/core/src/lib.rs    | 48 +++------------------------
 2 files changed, 5 insertions(+), 57 deletions(-)

diff --git a/cumulus/pallets/xcmp-queue/src/lib.rs b/cumulus/pallets/xcmp-queue/src/lib.rs
index 34c30e98184..1cb83a98ea6 100644
--- a/cumulus/pallets/xcmp-queue/src/lib.rs
+++ b/cumulus/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<u8>` messages, all concatenated.
-	ConcatenatedEncodedBlob,
-	/// One or more channel control signals; these should be interpreted immediately upon receipt
-	/// from the relay-chain.
-	Signals,
-}
-
 impl<T: Config> Pallet<T> {
 	/// Place a message `fragment` on the outgoing XCMP queue for `recipient`.
 	///
diff --git a/cumulus/primitives/core/src/lib.rs b/cumulus/primitives/core/src/lib.rs
index 5d49b892862..a59cd7012b2 100644
--- a/cumulus/primitives/core/src/lib.rs
+++ b/cumulus/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<relay_chain::BlockNumber>;
@@ -88,47 +89,6 @@ pub trait GetChannelInfo {
 	fn get_channel_max(id: ParaId) -> Option<usize>;
 }
 
-/// 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<Item = (RelayBlockNumber, Vec<u8>)>,
-		max_weight: Weight,
-	) -> Weight;
-}
-impl DmpMessageHandler for () {
-	fn handle_dmp_messages(
-		iter: impl Iterator<Item = (RelayBlockNumber, Vec<u8>)>,
-		_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<Item = (ParaId, RelayBlockNumber, &'a [u8])>>(
-		iter: I,
-		max_weight: Weight,
-	) -> Weight;
-}
-impl XcmpMessageHandler for () {
-	fn handle_xcmp_messages<'a, I: Iterator<Item = (ParaId, RelayBlockNumber, &'a [u8])>>(
-		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
-- 
GitLab