git.delta.rocks / unique-network / refs/commits / fa01f9a87ad6

difftreelog

source

runtime/opal/src/xcm_barrier.rs1.6 KiBsourcehistory
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::traits::Everything;18use xcm::{19	latest::{Xcm, Weight},20	v1::MultiLocation,21};22use xcm_builder::{AllowTopLevelPaidExecutionFrom, TakeWeightCredit};23use xcm_executor::traits::ShouldExecute;2425use crate::runtime_common::config::xcm::{DenyThenTry, DenyTransact};2627/// Execution barrier that just takes `max_weight` from `weight_credit`.28///29/// Useful to allow XCM execution by local chain users via extrinsics.30/// E.g. `pallet_xcm::reserve_asset_transfer` to transfer a reserve asset31/// out of the local chain to another one.32pub struct AllowAllDebug;33impl ShouldExecute for AllowAllDebug {34	fn should_execute<Call>(35		_origin: &MultiLocation,36		_message: &mut Xcm<Call>,37		_max_weight: Weight,38		_weight_credit: &mut Weight,39	) -> Result<(), ()> {40		Ok(())41	}42}4344pub type Barrier = DenyThenTry<45	DenyTransact,46	(47		TakeWeightCredit,48		AllowTopLevelPaidExecutionFrom<Everything>,49		AllowAllDebug,50	),51>;