difftreelog
Merge pull request #786 from UniqueNetwork/fix/allow-statemint
in: master
2 files changed
runtime/quartz/src/xcm_barrier.rsdiffbeforeafterboth--- a/runtime/quartz/src/xcm_barrier.rs
+++ b/runtime/quartz/src/xcm_barrier.rs
@@ -52,6 +52,11 @@
parents: 1,
interior: Here,
},
+ // Statemint/Statemint location
+ MultiLocation {
+ parents: 1,
+ interior: X1(Parachain(1000)),
+ },
// Karura/Acala location
MultiLocation {
parents: 1,
runtime/unique/src/xcm_barrier.rsdiffbeforeafterboth1// 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::{18 match_types, parameter_types,19 traits::{Get, Everything},20};21use sp_std::{vec, vec::Vec};22use xcm::v1::{Junction::*, Junctions::*, MultiLocation};23use xcm_builder::{24 AllowKnownQueryResponses, AllowSubscriptionsFrom, TakeWeightCredit,25 AllowTopLevelPaidExecutionFrom,26};2728use crate::{29 Runtime, ParachainInfo, PolkadotXcm,30 runtime_common::{31 config::xcm::{DenyThenTry, DenyTransact, DenyExchangeWithUnknownLocation},32 xcm::OverridableAllowedLocations,33 },34};3536match_types! {37 pub type ParentOrSiblings: impl Contains<MultiLocation> = {38 MultiLocation { parents: 1, interior: Here } |39 MultiLocation { parents: 1, interior: X1(_) }40 };41}4243parameter_types! {44 pub UniqueDefaultAllowedLocations: Vec<MultiLocation> = vec![45 // Self location46 MultiLocation {47 parents: 0,48 interior: Here,49 },50 // Parent location51 MultiLocation {52 parents: 1,53 interior: Here,54 },55 // Karura/Acala location56 MultiLocation {57 parents: 1,58 interior: X1(Parachain(2000)),59 },60 // Moonbeam location61 MultiLocation {62 parents: 1,63 interior: X1(Parachain(2004)),64 },65 // Self parachain address66 MultiLocation {67 parents: 1,68 interior: X1(Parachain(ParachainInfo::get().into())),69 },70 ];71}7273pub type Barrier = DenyThenTry<74 (75 DenyTransact,76 DenyExchangeWithUnknownLocation<77 OverridableAllowedLocations<Runtime, UniqueDefaultAllowedLocations>,78 >,79 ),80 (81 TakeWeightCredit,82 AllowTopLevelPaidExecutionFrom<Everything>,83 // Expected responses are OK.84 AllowKnownQueryResponses<PolkadotXcm>,85 // Subscriptions for version tracking are OK.86 AllowSubscriptionsFrom<ParentOrSiblings>,87 ),88>;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::{18 match_types, parameter_types,19 traits::{Get, Everything},20};21use sp_std::{vec, vec::Vec};22use xcm::v1::{Junction::*, Junctions::*, MultiLocation};23use xcm_builder::{24 AllowKnownQueryResponses, AllowSubscriptionsFrom, TakeWeightCredit,25 AllowTopLevelPaidExecutionFrom,26};2728use crate::{29 Runtime, ParachainInfo, PolkadotXcm,30 runtime_common::{31 config::xcm::{DenyThenTry, DenyTransact, DenyExchangeWithUnknownLocation},32 xcm::OverridableAllowedLocations,33 },34};3536match_types! {37 pub type ParentOrSiblings: impl Contains<MultiLocation> = {38 MultiLocation { parents: 1, interior: Here } |39 MultiLocation { parents: 1, interior: X1(_) }40 };41}4243parameter_types! {44 pub UniqueDefaultAllowedLocations: Vec<MultiLocation> = vec![45 // Self location46 MultiLocation {47 parents: 0,48 interior: Here,49 },50 // Parent location51 MultiLocation {52 parents: 1,53 interior: Here,54 },55 // Statemint/Statemint location56 MultiLocation {57 parents: 1,58 interior: X1(Parachain(1000)),59 },60 // Karura/Acala location61 MultiLocation {62 parents: 1,63 interior: X1(Parachain(2000)),64 },65 // Moonbeam location66 MultiLocation {67 parents: 1,68 interior: X1(Parachain(2004)),69 },70 // Self parachain address71 MultiLocation {72 parents: 1,73 interior: X1(Parachain(ParachainInfo::get().into())),74 },75 ];76}7778pub type Barrier = DenyThenTry<79 (80 DenyTransact,81 DenyExchangeWithUnknownLocation<82 OverridableAllowedLocations<Runtime, UniqueDefaultAllowedLocations>,83 >,84 ),85 (86 TakeWeightCredit,87 AllowTopLevelPaidExecutionFrom<Everything>,88 // Expected responses are OK.89 AllowKnownQueryResponses<PolkadotXcm>,90 // Subscriptions for version tracking are OK.91 AllowSubscriptionsFrom<ParentOrSiblings>,92 ),93>;