Skip to content

Commit

Permalink
Stop weighing XCM execution on pallet-xcm's send extrinsic (paritytec…
Browse files Browse the repository at this point in the history
…h#7201)

* Stop weighing XCM execution on pallet-xcm's send extrinsic

* Add missing instruction to transfer extrinsics' weight in pallet-xcm
  • Loading branch information
franciscoaguirre authored and crystalin committed May 23, 2023
1 parent 9b1fc27 commit 839a388
Showing 1 changed file with 5 additions and 10 deletions.
15 changes: 5 additions & 10 deletions xcm/pallet-xcm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -758,16 +758,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>,
Expand Down Expand Up @@ -809,6 +800,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,
Expand Down Expand Up @@ -854,6 +846,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))
Expand Down Expand Up @@ -1027,6 +1020,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))
Expand Down Expand Up @@ -1078,6 +1072,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))
Expand Down

0 comments on commit 839a388

Please sign in to comment.