From 72a9e3609320ba5b24e1166d3226e21733ace2e5 Mon Sep 17 00:00:00 2001 From: ferrell-code Date: Wed, 7 Jul 2021 00:52:05 -0400 Subject: [PATCH 1/8] migration --- runtime/parachains/src/dmp.rs | 61 ++++++++++++------- runtime/parachains/src/hrmp.rs | 6 +- runtime/parachains/src/inclusion.rs | 4 +- runtime/parachains/src/initializer.rs | 6 +- runtime/parachains/src/runtime_api_impl/v1.rs | 2 +- 5 files changed, 48 insertions(+), 31 deletions(-) diff --git a/runtime/parachains/src/dmp.rs b/runtime/parachains/src/dmp.rs index 023996762dbe..23eb31141e37 100644 --- a/runtime/parachains/src/dmp.rs +++ b/runtime/parachains/src/dmp.rs @@ -18,12 +18,15 @@ use crate::{ configuration::{self, HostConfiguration}, initializer, }; -use frame_support::{decl_module, decl_storage, StorageMap, weights::Weight, traits::Get}; +use frame_support::pallet_prelude::*; use sp_std::{fmt, prelude::*}; use sp_runtime::traits::{BlakeTwo256, Hash as HashT, SaturatedConversion}; use primitives::v1::{Id as ParaId, DownwardMessage, InboundDownwardMessage, Hash}; use xcm::v0::Error as XcmError; + +pub use pallet::*; + /// An error sending a downward message. #[cfg_attr(test, derive(Debug))] pub enum QueueDownwardMessageError { @@ -71,30 +74,45 @@ impl fmt::Debug for ProcessedDownwardMessagesAcceptanceErr { } } -pub trait Config: frame_system::Config + configuration::Config {} - -decl_storage! { - trait Store for Module as Dmp { - /// The downward messages addressed for a certain para. - DownwardMessageQueues: map hasher(twox_64_concat) ParaId => Vec>; - /// A mapping that stores the downward message queue MQC head for each para. - /// - /// Each link in this chain has a form: - /// `(prev_head, B, H(M))`, where - /// - `prev_head`: is the previous head hash or zero if none. - /// - `B`: is the relay-chain block number in which a message was appended. - /// - `H(M)`: is the hash of the message being appended. - DownwardMessageQueueHeads: map hasher(twox_64_concat) ParaId => Hash; - } -} +#[frame_support::pallet] +pub mod pallet { + use super::*; + + #[pallet::pallet] + #[pallet::generate_store(pub(super) trait Store)] + pub struct Pallet(_); -decl_module! { - /// The DMP module. - pub struct Module for enum Call where origin: ::Origin { } + #[pallet::config] + pub trait Config: frame_system::Config + configuration::Config {} + + /// The downward messages addressed for a certain para. + #[pallet::storage] + pub type DownwardMessageQueues = StorageMap< + _, + Twox64Concat, + ParaId, + Vec>, + ValueQuery + >; + + /// A mapping that stores the downward message queue MQC head for each para. + /// + /// Each link in this chain has a form: + /// `(prev_head, B, H(M))`, where + /// - `prev_head`: is the previous head hash or zero if none. + /// - `B`: is the relay-chain block number in which a message was appended. + /// - `H(M)`: is the hash of the message being appended. + #[pallet::storage] + pub type DownwardMessageQueueHeads = StorageMap<_, Twox64Concat, ParaId, Hash, ValueQuery>; + + #[pallet::call] + impl Pallet {} } + + /// Routines and getters related to downward message passing. -impl Module { +impl Pallet { /// Block initialization logic, called by initializer. pub(crate) fn initializer_initialize(_now: T::BlockNumber) -> Weight { 0 @@ -226,7 +244,6 @@ mod tests { use super::*; use hex_literal::hex; use primitives::v1::BlockNumber; - use frame_support::traits::{OnFinalize, OnInitialize}; use parity_scale_codec::Encode; use crate::mock::{Configuration, new_test_ext, System, Dmp, MockGenesisConfig, Paras}; diff --git a/runtime/parachains/src/hrmp.rs b/runtime/parachains/src/hrmp.rs index e1d7d3d57c08..5a58a3463325 100644 --- a/runtime/parachains/src/hrmp.rs +++ b/runtime/parachains/src/hrmp.rs @@ -1051,7 +1051,7 @@ impl Module { .encode() }; if let Err(dmp::QueueDownwardMessageError::ExceedsMaxMessageSize) = - >::queue_downward_message(&config, recipient, notification_bytes) + >::queue_downward_message(&config, recipient, notification_bytes) { // this should never happen unless the max downward message size is configured to an // jokingly small number. @@ -1114,7 +1114,7 @@ impl Module { .encode() }; if let Err(dmp::QueueDownwardMessageError::ExceedsMaxMessageSize) = - >::queue_downward_message(&config, sender, notification_bytes) + >::queue_downward_message(&config, sender, notification_bytes) { // this should never happen unless the max downward message size is configured to an // jokingly small number. @@ -1164,7 +1164,7 @@ impl Module { channel_id.sender }; if let Err(dmp::QueueDownwardMessageError::ExceedsMaxMessageSize) = - >::queue_downward_message(&config, opposite_party, notification_bytes) + >::queue_downward_message(&config, opposite_party, notification_bytes) { // this should never happen unless the max downward message size is configured to an // jokingly small number. diff --git a/runtime/parachains/src/inclusion.rs b/runtime/parachains/src/inclusion.rs index eb58f315a0fa..b372f6a4c675 100644 --- a/runtime/parachains/src/inclusion.rs +++ b/runtime/parachains/src/inclusion.rs @@ -687,7 +687,7 @@ impl Module { } // enact the messaging facet of the candidate. - weight += >::prune_dmq( + weight += >::prune_dmq( receipt.descriptor.para_id, commitments.processed_downward_messages, ); @@ -886,7 +886,7 @@ impl CandidateCheckContext { } // check if the candidate passes the messaging acceptance criteria - >::check_processed_downward_messages( + >::check_processed_downward_messages( para_id, processed_downward_messages, )?; diff --git a/runtime/parachains/src/initializer.rs b/runtime/parachains/src/initializer.rs index 5bbc56c21455..aec824bb88fa 100644 --- a/runtime/parachains/src/initializer.rs +++ b/runtime/parachains/src/initializer.rs @@ -137,7 +137,7 @@ pub mod pallet { scheduler::Module::::initializer_initialize(now) + inclusion::Module::::initializer_initialize(now) + session_info::Module::::initializer_initialize(now) + - dmp::Module::::initializer_initialize(now) + + dmp::Pallet::::initializer_initialize(now) + ump::Module::::initializer_initialize(now) + hrmp::Module::::initializer_initialize(now); @@ -150,7 +150,7 @@ pub mod pallet { // reverse initialization order. hrmp::Module::::initializer_finalize(); ump::Module::::initializer_finalize(); - dmp::Module::::initializer_finalize(); + dmp::Pallet::::initializer_finalize(); session_info::Module::::initializer_finalize(); inclusion::Module::::initializer_finalize(); scheduler::Module::::initializer_finalize(); @@ -234,7 +234,7 @@ impl Pallet { scheduler::Module::::initializer_on_new_session(¬ification); inclusion::Module::::initializer_on_new_session(¬ification); session_info::Module::::initializer_on_new_session(¬ification); - dmp::Module::::initializer_on_new_session(¬ification, &outgoing_paras); + dmp::Pallet::::initializer_on_new_session(¬ification, &outgoing_paras); ump::Module::::initializer_on_new_session(¬ification, &outgoing_paras); hrmp::Module::::initializer_on_new_session(¬ification, &outgoing_paras); } diff --git a/runtime/parachains/src/runtime_api_impl/v1.rs b/runtime/parachains/src/runtime_api_impl/v1.rs index d51e980c933a..3998a1035d4d 100644 --- a/runtime/parachains/src/runtime_api_impl/v1.rs +++ b/runtime/parachains/src/runtime_api_impl/v1.rs @@ -313,7 +313,7 @@ pub fn session_info(index: SessionIndex) -> Option( recipient: ParaId, ) -> Vec> { - >::dmq_contents(recipient) + >::dmq_contents(recipient) } /// Implementation for the `inbound_hrmp_channels_contents` function of the runtime API. From 48f5c7cba7c97696e9a2f813072d010afced0517 Mon Sep 17 00:00:00 2001 From: ferrell-code Date: Wed, 7 Jul 2021 02:24:23 -0400 Subject: [PATCH 2/8] fix warning --- runtime/common/src/xcm_sender.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/common/src/xcm_sender.rs b/runtime/common/src/xcm_sender.rs index 0b817a237fb9..d56998aa26ae 100644 --- a/runtime/common/src/xcm_sender.rs +++ b/runtime/common/src/xcm_sender.rs @@ -30,7 +30,7 @@ impl SendXcm for ChildParachainRouter MultiLocation::X1(Junction::Parachain(id)) => { // Downward message passing. let config = >::config(); - >::queue_downward_message( + >::queue_downward_message( &config, id.into(), VersionedXcm::from(msg).encode(), From ae1fd52be6ac88c08dcaa220783e8b414719b7ca Mon Sep 17 00:00:00 2001 From: ferrell-code Date: Wed, 7 Jul 2021 04:10:29 -0400 Subject: [PATCH 3/8] change runtimes --- runtime/kusama/src/lib.rs | 2 +- runtime/test-runtime/src/lib.rs | 1 + runtime/westend/src/lib.rs | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index 5b0b2eecd9e1..dc8e1b31b11a 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -1488,7 +1488,7 @@ construct_runtime! { ParasScheduler: parachains_scheduler::{Pallet, Call, Storage} = 55, Paras: parachains_paras::{Pallet, Call, Storage, Event, Config} = 56, Initializer: parachains_initializer::{Pallet, Call, Storage} = 57, - ParasDmp: parachains_dmp::{Pallet, Call, Storage} = 58, + Dmp: parachains_dmp::{Pallet, Call, Storage} = 58, ParasUmp: parachains_ump::{Pallet, Call, Storage, Event} = 59, ParasHrmp: parachains_hrmp::{Pallet, Call, Storage, Event} = 60, ParasSessionInfo: parachains_session_info::{Pallet, Call, Storage} = 61, diff --git a/runtime/test-runtime/src/lib.rs b/runtime/test-runtime/src/lib.rs index a1d9a76cffc5..7c2dd6b31f09 100644 --- a/runtime/test-runtime/src/lib.rs +++ b/runtime/test-runtime/src/lib.rs @@ -537,6 +537,7 @@ construct_runtime! { SessionInfo: parachains_session_info::{Pallet, Call, Storage}, Hrmp: parachains_hrmp::{Pallet, Call, Storage, Event}, Ump: parachains_ump::{Pallet, Call, Storage, Event}, + Dmp: parachains_dmp::{Pallet, Call, Storage}, Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event}, } diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index 654d5d50e343..e43b72c23333 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -1079,7 +1079,7 @@ construct_runtime! { ParasScheduler: parachains_scheduler::{Pallet, Call, Storage} = 46, Paras: parachains_paras::{Pallet, Call, Storage, Event, Config} = 47, Initializer: parachains_initializer::{Pallet, Call, Storage} = 48, - ParasDmp: parachains_dmp::{Pallet, Call, Storage} = 49, + Dmp: parachains_dmp::{Pallet, Call, Storage} = 49, ParasUmp: parachains_ump::{Pallet, Call, Storage, Event} = 50, ParasHrmp: parachains_hrmp::{Pallet, Call, Storage, Event} = 51, ParasSessionInfo: parachains_session_info::{Pallet, Call, Storage} = 52, From e5de924116fa190df2f04863de6fddc798f48193 Mon Sep 17 00:00:00 2001 From: ferrell-code Date: Wed, 7 Jul 2021 04:23:24 -0400 Subject: [PATCH 4/8] extra line --- runtime/parachains/src/dmp.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/runtime/parachains/src/dmp.rs b/runtime/parachains/src/dmp.rs index 23eb31141e37..372e72053015 100644 --- a/runtime/parachains/src/dmp.rs +++ b/runtime/parachains/src/dmp.rs @@ -24,7 +24,6 @@ use sp_runtime::traits::{BlakeTwo256, Hash as HashT, SaturatedConversion}; use primitives::v1::{Id as ParaId, DownwardMessage, InboundDownwardMessage, Hash}; use xcm::v0::Error as XcmError; - pub use pallet::*; /// An error sending a downward message. From 288422a3895ea1f59dae091144a75acd6007c762 Mon Sep 17 00:00:00 2001 From: ferrell-code Date: Wed, 7 Jul 2021 04:31:48 -0400 Subject: [PATCH 5/8] another double space lol --- runtime/parachains/src/dmp.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/runtime/parachains/src/dmp.rs b/runtime/parachains/src/dmp.rs index 372e72053015..6b97c5ea53a3 100644 --- a/runtime/parachains/src/dmp.rs +++ b/runtime/parachains/src/dmp.rs @@ -108,8 +108,6 @@ pub mod pallet { impl Pallet {} } - - /// Routines and getters related to downward message passing. impl Pallet { /// Block initialization logic, called by initializer. From 88c70272a5afec8dca686e7209f37dddeedba0bf Mon Sep 17 00:00:00 2001 From: ferrell-code Date: Tue, 20 Jul 2021 20:54:43 -0400 Subject: [PATCH 6/8] add dmp in test runtime --- runtime/test-runtime/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/runtime/test-runtime/src/lib.rs b/runtime/test-runtime/src/lib.rs index 5570dbbac74a..752a0cf936a2 100644 --- a/runtime/test-runtime/src/lib.rs +++ b/runtime/test-runtime/src/lib.rs @@ -545,6 +545,7 @@ construct_runtime! { SessionInfo: parachains_session_info::{Pallet, Call, Storage}, Hrmp: parachains_hrmp::{Pallet, Call, Storage, Event}, Ump: parachains_ump::{Pallet, Call, Storage, Event}, + Dmp: dmp::{Pallet, Call, Storage}, ParasDisputes: parachains_disputes::{Pallet, Storage, Event}, Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event}, From 7c01f0de6dd4a017baa806d69b6cdec538a12523 Mon Sep 17 00:00:00 2001 From: ferrell-code Date: Tue, 20 Jul 2021 20:59:09 -0400 Subject: [PATCH 7/8] test runtime --- runtime/test-runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/test-runtime/src/lib.rs b/runtime/test-runtime/src/lib.rs index 752a0cf936a2..cf9927fb43e4 100644 --- a/runtime/test-runtime/src/lib.rs +++ b/runtime/test-runtime/src/lib.rs @@ -545,7 +545,7 @@ construct_runtime! { SessionInfo: parachains_session_info::{Pallet, Call, Storage}, Hrmp: parachains_hrmp::{Pallet, Call, Storage, Event}, Ump: parachains_ump::{Pallet, Call, Storage, Event}, - Dmp: dmp::{Pallet, Call, Storage}, + Dmp: parachains_dmp::{Pallet, Call, Storage}, ParasDisputes: parachains_disputes::{Pallet, Storage, Event}, Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event}, From cdec66872d84be6e59eddc656c03acb239ed9b96 Mon Sep 17 00:00:00 2001 From: Keith Yeung Date: Wed, 21 Jul 2021 16:46:46 -0700 Subject: [PATCH 8/8] Adjust visibility on storage items --- runtime/parachains/src/dmp.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/runtime/parachains/src/dmp.rs b/runtime/parachains/src/dmp.rs index 6b97c5ea53a3..6d48cb3c85ca 100644 --- a/runtime/parachains/src/dmp.rs +++ b/runtime/parachains/src/dmp.rs @@ -86,7 +86,7 @@ pub mod pallet { /// The downward messages addressed for a certain para. #[pallet::storage] - pub type DownwardMessageQueues = StorageMap< + pub(crate) type DownwardMessageQueues = StorageMap< _, Twox64Concat, ParaId, @@ -102,7 +102,13 @@ pub mod pallet { /// - `B`: is the relay-chain block number in which a message was appended. /// - `H(M)`: is the hash of the message being appended. #[pallet::storage] - pub type DownwardMessageQueueHeads = StorageMap<_, Twox64Concat, ParaId, Hash, ValueQuery>; + pub(crate) type DownwardMessageQueueHeads = StorageMap< + _, + Twox64Concat, + ParaId, + Hash, + ValueQuery, + >; #[pallet::call] impl Pallet {}