Skip to content

Commit

Permalink
Backport patch for xcm fungible benchmarks required by new FungibleAd…
Browse files Browse the repository at this point in the history
…apter (#3417)

We replaced deprecated `CurrencyAdapter`
[here](#3287) and we also
did the same for fellows
[here](polkadot-fellows/runtimes@2d6d3ac),
but this change requires this patch for xcm benchmarks.

Expected patch for  `pallet-xcm-benchmarks` as `8.0.1`

Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com>
  • Loading branch information
bkontur and franciscoaguirre authored Feb 21, 2024
1 parent eff548e commit a2da02b
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
12 changes: 8 additions & 4 deletions polkadot/xcm/pallet-xcm-benchmarks/src/fungible/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,16 @@ benchmarks_instance_pallet! {
transfer_asset {
let (sender_account, sender_location) = account_and_location::<T>(1);
let asset = T::get_asset();
let assets: Assets = vec![ asset.clone() ].into();
let assets: Assets = vec![asset.clone()].into();
// this xcm doesn't use holding

let dest_location = T::valid_destination()?;
let dest_account = T::AccountIdConverter::convert_location(&dest_location).unwrap();

<AssetTransactorOf<T>>::deposit_asset(&asset, &sender_location, None).unwrap();
// We deposit the asset twice so we have enough for ED after transferring
<AssetTransactorOf<T>>::deposit_asset(&asset, &sender_location, None).unwrap();
let sender_account_balance_before = T::TransactAsset::balance(&sender_account);
assert!(T::TransactAsset::balance(&dest_account).is_zero());

let mut executor = new_executor::<T>(sender_location);
Expand All @@ -79,7 +82,7 @@ benchmarks_instance_pallet! {
}: {
executor.bench_process(xcm)?;
} verify {
assert!(T::TransactAsset::balance(&sender_account).is_zero());
assert!(T::TransactAsset::balance(&sender_account) < sender_account_balance_before);
assert!(!T::TransactAsset::balance(&dest_account).is_zero());
}

Expand All @@ -93,11 +96,12 @@ benchmarks_instance_pallet! {
&dest_location,
FeeReason::TransferReserveAsset
);
let sender_account_balance_before = T::TransactAsset::balance(&sender_account);

let asset = T::get_asset();
<AssetTransactorOf<T>>::deposit_asset(&asset, &sender_location, None).unwrap();
assert!(T::TransactAsset::balance(&sender_account) > sender_account_balance_before);
// We deposit the asset twice so we have enough for ED after transferring
<AssetTransactorOf<T>>::deposit_asset(&asset, &sender_location, None).unwrap();
let sender_account_balance_before = T::TransactAsset::balance(&sender_account);
let assets: Assets = vec![asset].into();
assert!(T::TransactAsset::balance(&dest_account).is_zero());

Expand Down
6 changes: 2 additions & 4 deletions polkadot/xcm/pallet-xcm-benchmarks/src/fungible/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,7 @@ impl xcm_executor::traits::MatchesFungible<u64> for MatchAnyFungible {
}

// Use balances as the asset transactor.
#[allow(deprecated)]
pub type AssetTransactor = xcm_builder::CurrencyAdapter<
pub type AssetTransactor = xcm_builder::FungibleAdapter<
Balances,
MatchAnyFungible,
AccountIdConverter,
Expand Down Expand Up @@ -192,8 +191,7 @@ impl xcm_balances_benchmark::Config for Test {
type TrustedReserve = TrustedReserve;

fn get_asset() -> Asset {
let amount =
<Balances as frame_support::traits::fungible::Inspect<u64>>::minimum_balance() as u128;
let amount = 1_000_000_000_000;
Asset { id: AssetId(Here.into()), fun: Fungible(amount) }
}
}
Expand Down

0 comments on commit a2da02b

Please sign in to comment.