Skip to content
Snippets Groups Projects
Commit 8234165b authored by Dhiraj Sah's avatar Dhiraj Sah Committed by Christian Langenbacher
Browse files

transfer function Preservation is changed to Expendable (#7243)

# Description

Fixes #7039

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](https://github.com/paritytech/polkadot-sdk/blob/f3ab3854

/polkadot/xcm/xcm-builder/src/fungible_adapter.rs#L217)
and [fungibles](https://github.com/paritytech/polkadot-sdk/issues/url)
adapter.

This pull request includes changes to the `fungible_adapter.rs` and
`fungibles_adapter.rs` files in the `polkadot/xcm/xcm-builder`
directory. The main change involves modifying the transfer method to use
the `Expendable` strategy instead of the `Preserve` strategy.

Changes to transfer strategy:

*
[`polkadot/xcm/xcm-builder/src/fungible_adapter.rs`](diffhunk://#diff-6ebd77385441f2c8b023c480e818a01c4b43ae892c73ca30144cd64ee960bd66L67-R67):
Changed the transfer method to use `Expendable` instead of `Preserve`.
*
[`polkadot/xcm/xcm-builder/src/fungibles_adapter.rs`](diffhunk://#diff-82221429de4c4c88be3d2976ece6475ef4fa56a32abc70290911bd47191f8e17L61-R61):
Changed the transfer method to use `Expendable` instead of `Preserve`.

---------

Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
parent 73702451
No related merge requests found
......@@ -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())
}
......
......@@ -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())
}
......
# 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
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment