From 80ed32dad524955b63e2c3fea7c14defcd24d79c Mon Sep 17 00:00:00 2001 From: NingBo Wang <2536935847@qq.com> Date: Fri, 13 Jan 2023 04:51:30 +0800 Subject: [PATCH] feat:Make the XcmTransfer trait support transfer_multiasset_with_fee (#870) --- traits/src/xcm_transfer.rs | 9 +++++++++ xtokens/src/lib.rs | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/traits/src/xcm_transfer.rs b/traits/src/xcm_transfer.rs index cd671f5e6..c4dacb116 100644 --- a/traits/src/xcm_transfer.rs +++ b/traits/src/xcm_transfer.rs @@ -19,4 +19,13 @@ pub trait XcmTransfer { dest: MultiLocation, dest_weight_limit: WeightLimit, ) -> DispatchResult; + + /// Transfer `MultiAssetWithFee` + fn transfer_multiasset_with_fee( + who: AccountId, + asset: MultiAsset, + fee: MultiAsset, + dest: MultiLocation, + dest_weight_limit: WeightLimit, + ) -> DispatchResult; } diff --git a/xtokens/src/lib.rs b/xtokens/src/lib.rs index 25cb2a35c..0cf6ab4bf 100644 --- a/xtokens/src/lib.rs +++ b/xtokens/src/lib.rs @@ -953,6 +953,17 @@ pub mod module { ) -> DispatchResult { Self::do_transfer_multiasset(who, asset, dest, dest_weight_limit) } + + #[require_transactional] + fn transfer_multiasset_with_fee( + who: T::AccountId, + asset: MultiAsset, + fee: MultiAsset, + dest: MultiLocation, + dest_weight_limit: WeightLimit, + ) -> DispatchResult { + Self::do_transfer_multiasset_with_fee(who, asset, fee, dest, dest_weight_limit) + } } }