diff --git a/polkadot/xcm/xcm-builder/src/fungible_adapter.rs b/polkadot/xcm/xcm-builder/src/fungible_adapter.rs index 25a705a39eb73..2da772deb0ed7 100644 --- a/polkadot/xcm/xcm-builder/src/fungible_adapter.rs +++ b/polkadot/xcm/xcm-builder/src/fungible_adapter.rs @@ -20,11 +20,7 @@ use super::MintLocation; use core::{marker::PhantomData, result}; use frame_support::traits::{ tokens::{ - fungible, - Fortitude::Polite, - Precision::Exact, - Preservation::{Expendable, Preserve}, - Provenance::Minted, + fungible, Fortitude::Polite, Precision::Exact, Preservation::Expendable, Provenance::Minted, }, Get, }; @@ -64,7 +60,7 @@ impl< .ok_or(MatchError::AccountIdConversionFailed)?; let dest = AccountIdConverter::convert_location(to) .ok_or(MatchError::AccountIdConversionFailed)?; - Fungible::transfer(&source, &dest, amount, Preserve) + Fungible::transfer(&source, &dest, amount, Expendable) .map_err(|error| XcmError::FailedToTransactAsset(error.into()))?; Ok(what.clone().into()) } diff --git a/polkadot/xcm/xcm-builder/src/fungibles_adapter.rs b/polkadot/xcm/xcm-builder/src/fungibles_adapter.rs index a259afc6e6825..59b4ccb13d0c5 100644 --- a/polkadot/xcm/xcm-builder/src/fungibles_adapter.rs +++ b/polkadot/xcm/xcm-builder/src/fungibles_adapter.rs @@ -19,10 +19,7 @@ use core::{marker::PhantomData, result}; use frame_support::traits::{ tokens::{ - fungibles, - Fortitude::Polite, - Precision::Exact, - Preservation::{Expendable, Preserve}, + fungibles, Fortitude::Polite, Precision::Exact, Preservation::Expendable, Provenance::Minted, }, Contains, Get, @@ -58,7 +55,7 @@ impl< .ok_or(MatchError::AccountIdConversionFailed)?; let dest = AccountIdConverter::convert_location(to) .ok_or(MatchError::AccountIdConversionFailed)?; - Assets::transfer(asset_id, &source, &dest, amount, Preserve) + Assets::transfer(asset_id, &source, &dest, amount, Expendable) .map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; Ok(what.clone().into()) } diff --git a/prdoc/pr_7243.prdoc b/prdoc/pr_7243.prdoc new file mode 100644 index 0000000000000..c04017c29ce43 --- /dev/null +++ b/prdoc/pr_7243.prdoc @@ -0,0 +1,13 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: 'transfer function Preservation is changed to Expendable in fungible and fungibles adapter' + +doc: + - audience: Runtime Dev + description: | + The Preservation of transfer method of fungible and fungibles adapters is changed from Preserve to Expendable. So the behavior of the TransferAsset will be consistent with the WithdrawAsset function, as in fungible and fungibles adapter. + +crates: +- name: staging-xcm-builder + bump: patch \ No newline at end of file