From 8219cb1ccd538f8995c3ed097c1e22e9d909099f Mon Sep 17 00:00:00 2001 From: Francisco Aguirre <franciscoaguirreperez@gmail.com> Date: Tue, 9 May 2023 16:18:29 -0300 Subject: [PATCH] Stop weighing XCM execution on pallet-xcm's send extrinsic (#7201) * Stop weighing XCM execution on pallet-xcm's send extrinsic * Add missing instruction to transfer extrinsics' weight in pallet-xcm --- polkadot/xcm/pallet-xcm/src/lib.rs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/polkadot/xcm/pallet-xcm/src/lib.rs b/polkadot/xcm/pallet-xcm/src/lib.rs index 03c3fa0ba2f..16766b7ab90 100644 --- a/polkadot/xcm/pallet-xcm/src/lib.rs +++ b/polkadot/xcm/pallet-xcm/src/lib.rs @@ -779,16 +779,7 @@ pub mod pallet { #[pallet::call] impl<T: Config> Pallet<T> { #[pallet::call_index(0)] - #[pallet::weight({ - let maybe_msg: Result<Xcm<()>, ()> = (*message.clone()).try_into(); - match maybe_msg { - Ok(msg) => { - T::Weigher::weight(&mut msg.into()) - .map_or(Weight::MAX, |w| T::WeightInfo::send().saturating_add(w)) - } - _ => Weight::MAX, - } - })] + #[pallet::weight(T::WeightInfo::send())] pub fn send( origin: OriginFor<T>, dest: Box<VersionedMultiLocation>, @@ -830,6 +821,7 @@ pub mod pallet { let count = assets.len() as u32; let mut message = Xcm(vec![ WithdrawAsset(assets), + SetFeesMode { jit_withdraw: true }, InitiateTeleport { assets: Wild(AllCounted(count)), dest, @@ -875,6 +867,7 @@ pub mod pallet { (Ok(assets), Ok(dest)) => { use sp_std::vec; let mut message = Xcm(vec![ + SetFeesMode { jit_withdraw: true }, TransferReserveAsset { assets, dest, xcm: Xcm(vec![]) } ]); T::Weigher::weight(&mut message).map_or(Weight::MAX, |w| T::WeightInfo::reserve_transfer_assets().saturating_add(w)) @@ -1048,6 +1041,7 @@ pub mod pallet { (Ok(assets), Ok(dest)) => { use sp_std::vec; let mut message = Xcm(vec![ + SetFeesMode { jit_withdraw: true }, TransferReserveAsset { assets, dest, xcm: Xcm(vec![]) } ]); T::Weigher::weight(&mut message).map_or(Weight::MAX, |w| T::WeightInfo::reserve_transfer_assets().saturating_add(w)) @@ -1099,6 +1093,7 @@ pub mod pallet { use sp_std::vec; let mut message = Xcm(vec![ WithdrawAsset(assets), + SetFeesMode { jit_withdraw: true }, InitiateTeleport { assets: Wild(All), dest, xcm: Xcm(vec![]) }, ]); T::Weigher::weight(&mut message).map_or(Weight::MAX, |w| T::WeightInfo::teleport_assets().saturating_add(w)) -- GitLab