git.delta.rocks / unique-network / refs/commits / 58b781a796e9

difftreelog

feat allow explicit unpaid execution from parent

Daniel Shiposha2023-09-28parent: #8d26c73.patch.diff
in: master

3 files changed

modifiedruntime/opal/src/xcm_barrier.rsdiffbeforeafterboth
--- a/runtime/opal/src/xcm_barrier.rs
+++ b/runtime/opal/src/xcm_barrier.rs
@@ -14,7 +14,18 @@
 // You should have received a copy of the GNU General Public License
 // along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
 
-use frame_support::traits::Everything;
-use xcm_builder::{AllowTopLevelPaidExecutionFrom, TakeWeightCredit};
+use frame_support::{match_types, traits::Everything};
+use xcm::latest::{Junctions::*, MultiLocation};
+use xcm_builder::{AllowTopLevelPaidExecutionFrom, TakeWeightCredit, AllowExplicitUnpaidExecutionFrom};
 
-pub type Barrier = (TakeWeightCredit, AllowTopLevelPaidExecutionFrom<Everything>);
+match_types! {
+	pub type ParentOnly: impl Contains<MultiLocation> = {
+		MultiLocation { parents: 1, interior: Here }
+	};
+}
+
+pub type Barrier = (
+	TakeWeightCredit,
+	AllowExplicitUnpaidExecutionFrom<ParentOnly>,
+	AllowTopLevelPaidExecutionFrom<Everything>,
+);
modifiedruntime/quartz/src/xcm_barrier.rsdiffbeforeafterboth
--- a/runtime/quartz/src/xcm_barrier.rs
+++ b/runtime/quartz/src/xcm_barrier.rs
@@ -18,12 +18,16 @@
 use xcm::latest::{Junctions::*, MultiLocation};
 use xcm_builder::{
 	AllowKnownQueryResponses, AllowSubscriptionsFrom, TakeWeightCredit,
-	AllowTopLevelPaidExecutionFrom,
+	AllowTopLevelPaidExecutionFrom, AllowExplicitUnpaidExecutionFrom,
 };
 
 use crate::PolkadotXcm;
 
 match_types! {
+	pub type ParentOnly: impl Contains<MultiLocation> = {
+		MultiLocation { parents: 1, interior: Here }
+	};
+
 	pub type ParentOrSiblings: impl Contains<MultiLocation> = {
 		MultiLocation { parents: 1, interior: Here } |
 		MultiLocation { parents: 1, interior: X1(_) }
@@ -32,6 +36,7 @@
 
 pub type Barrier = (
 	TakeWeightCredit,
+	AllowExplicitUnpaidExecutionFrom<ParentOnly>,
 	AllowTopLevelPaidExecutionFrom<Everything>,
 	// Expected responses are OK.
 	AllowKnownQueryResponses<PolkadotXcm>,
modifiedruntime/unique/src/xcm_barrier.rsdiffbeforeafterboth
before · runtime/unique/src/xcm_barrier.rs
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617use frame_support::{match_types, traits::Everything};18use xcm::latest::{Junctions::*, MultiLocation};19use xcm_builder::{20	AllowKnownQueryResponses, AllowSubscriptionsFrom, TakeWeightCredit,21	AllowTopLevelPaidExecutionFrom,22};2324use crate::PolkadotXcm;2526match_types! {27	pub type ParentOrSiblings: impl Contains<MultiLocation> = {28		MultiLocation { parents: 1, interior: Here } |29		MultiLocation { parents: 1, interior: X1(_) }30	};31}3233pub type Barrier = (34	TakeWeightCredit,35	AllowTopLevelPaidExecutionFrom<Everything>,36	// Expected responses are OK.37	AllowKnownQueryResponses<PolkadotXcm>,38	// Subscriptions for version tracking are OK.39	AllowSubscriptionsFrom<ParentOrSiblings>,40);
after · runtime/unique/src/xcm_barrier.rs
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617use frame_support::{match_types, traits::Everything};18use xcm::latest::{Junctions::*, MultiLocation};19use xcm_builder::{20	AllowKnownQueryResponses, AllowSubscriptionsFrom, TakeWeightCredit,21	AllowTopLevelPaidExecutionFrom, AllowExplicitUnpaidExecutionFrom,22};2324use crate::PolkadotXcm;2526match_types! {27	pub type ParentOnly: impl Contains<MultiLocation> = {28		MultiLocation { parents: 1, interior: Here }29	};3031	pub type ParentOrSiblings: impl Contains<MultiLocation> = {32		MultiLocation { parents: 1, interior: Here } |33		MultiLocation { parents: 1, interior: X1(_) }34	};35}3637pub type Barrier = (38	TakeWeightCredit,39	AllowExplicitUnpaidExecutionFrom<ParentOnly>,40	AllowTopLevelPaidExecutionFrom<Everything>,41	// Expected responses are OK.42	AllowKnownQueryResponses<PolkadotXcm>,43	// Subscriptions for version tracking are OK.44	AllowSubscriptionsFrom<ParentOrSiblings>,45);