Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
dda9308
pallet-xcm: deprecate unlimited_* weight extrinsics
acatangiu Mar 13, 2024
1db1cae
pallet-xcm: remove extrinsics guessed weight and rely on runtime benc…
acatangiu Mar 13, 2024
f5e1dfb
pallet-xcm: add new extrinsic for asset transfers using explicit reserve
acatangiu Mar 13, 2024
547eeee
add more trace logging to XCM transport
acatangiu Mar 13, 2024
c7ee1af
minor style fix
acatangiu Mar 13, 2024
ed77fde
integration-tests: add scenario for parachain sending asset over brid…
acatangiu Mar 13, 2024
a7a44c9
make penpal UniversalLocation configurable
acatangiu Mar 14, 2024
ffa6250
penpal: charge XCM delivery fees for accurate real-world testing
acatangiu Mar 22, 2024
4afba95
integration-tests: fix tests for penpal charging delivery fees
acatangiu Mar 22, 2024
210cdd2
Merge branch 'master' of github.com:paritytech/polkadot-sdk into tran…
acatangiu Mar 23, 2024
c918bea
fix test
acatangiu Mar 23, 2024
3db344b
add prdoc
acatangiu Mar 25, 2024
10d2c40
fix clippy
acatangiu Mar 25, 2024
5b48155
Merge branch 'master' of github.com:paritytech/polkadot-sdk into tran…
acatangiu Mar 27, 2024
dbe453d
add test for westend->rococo direction
acatangiu Mar 27, 2024
42e4041
nit
acatangiu Mar 27, 2024
e794df3
Merge branch 'master' of github.com:paritytech/polkadot-sdk into tran…
acatangiu Apr 1, 2024
81dc911
pallet-xcm: specify explicit transfer type
acatangiu Apr 3, 2024
e1dbf7a
add more tests
acatangiu Apr 3, 2024
ef83eab
fix prdoc
acatangiu Apr 4, 2024
a2b8708
Merge branch 'master' of github.com:paritytech/polkadot-sdk into tran…
acatangiu Apr 4, 2024
4250692
refactor tests
acatangiu Apr 4, 2024
888d403
even more tests
acatangiu Apr 4, 2024
1c86e6e
another test
acatangiu Apr 4, 2024
b82d0b9
add teleport test as well
acatangiu Apr 4, 2024
f4e88da
rename xt and update docs
acatangiu Apr 4, 2024
4f2381c
fix weights
acatangiu Apr 4, 2024
36af01f
add tests to westend
acatangiu Apr 4, 2024
bd9233a
Merge branch 'master' of github.com:paritytech/polkadot-sdk into tran…
acatangiu Apr 4, 2024
9c7bd39
remove leftover comment
acatangiu Apr 4, 2024
adf5128
Apply suggestions from code review
acatangiu Apr 11, 2024
1347f0b
fix logs
acatangiu Apr 11, 2024
e3acff2
fix api
acatangiu Apr 11, 2024
4a44194
Merge branch 'master' into transfer-using-explicit-reserve
acatangiu Apr 11, 2024
0d407eb
Update polkadot/xcm/pallet-xcm/src/lib.rs
acatangiu Apr 12, 2024
22093d0
".git/.scripts/commands/fmt/fmt.sh"
Apr 12, 2024
a673792
Merge branch 'master' into transfer-using-explicit-reserve
acatangiu Apr 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
integration-tests: fix tests for penpal charging delivery fees
  • Loading branch information
acatangiu committed Mar 22, 2024
commit 4afba9534a07df374c5493c73061ae413770f018
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ macro_rules! test_parachain_is_trusted_teleporter {
let para_receiver_balance_after =
<$receiver_para as $crate::macros::Chain>::account_data_of(receiver.clone()).free;
let delivery_fees = <$sender_para>::execute_with(|| {
$crate::macros::asset_test_utils::xcm_helpers::transfer_assets_delivery_fees::<
$crate::macros::asset_test_utils::xcm_helpers::teleport_assets_delivery_fees::<
<$sender_xcm_config as xcm_executor::Config>::XcmSender,
>($assets.clone(), fee_asset_item, weight_limit.clone(), beneficiary, para_destination)
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,13 @@ mod imports {

// Runtimes
pub use asset_hub_rococo_runtime::xcm_config::{
TokenLocation as RelayLocation, UniversalLocation as AssetHubRococoUniversalLocation,
XcmConfig as AssetHubRococoXcmConfig,
TokenLocation as RelayLocation, XcmConfig as AssetHubRococoXcmConfig,
};
pub use penpal_runtime::xcm_config::{
LocalReservableFromAssetHub as PenpalLocalReservableFromAssetHub,
LocalTeleportableToAssetHub as PenpalLocalTeleportableToAssetHub,
UniversalLocation as PenpalUniversalLocation, XcmConfig as PenpalRococoXcmConfig,
};
pub use rococo_runtime::xcm_config::{
UniversalLocation as RococoUniversalLocation, XcmConfig as RococoXcmConfig,
};
pub use rococo_runtime::xcm_config::XcmConfig as RococoXcmConfig;

pub const ASSET_ID: u32 = 3;
pub const ASSET_MIN_BALANCE: u128 = 1000;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,6 @@ fn reserve_transfer_native_asset_from_relay_to_para() {
let destination = Rococo::child_location_of(PenpalA::para_id());
let sender = RococoSender::get();
let amount_to_send: Balance = ROCOCO_ED * 1000;
let assets: Assets = (Here, amount_to_send).into();

// Init values fot Parachain
let relay_native_asset_location =
Expand Down Expand Up @@ -552,24 +551,15 @@ fn reserve_transfer_native_asset_from_relay_to_para() {
test.set_dispatchable::<Rococo>(relay_to_para_reserve_transfer_assets);
test.assert();

// Calculate delivery fees
let delivery_fees = Rococo::execute_with(|| {
let reanchored_assets =
assets.reanchored(&destination, &RococoUniversalLocation::get()).unwrap();
xcm_helpers::transfer_assets_delivery_fees::<
<RococoXcmConfig as xcm_executor::Config>::XcmSender,
>(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest)
});

// Query final balances
let sender_balance_after = test.sender.balance;
let receiver_assets_after = PenpalA::execute_with(|| {
type ForeignAssets = <PenpalA as PenpalAPallet>::ForeignAssets;
<ForeignAssets as Inspect<_>>::balance(relay_native_asset_location.into(), &receiver)
});

// Sender's balance is reduced
assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after);
// Sender's balance is reduced by amount sent plus delivery fees
assert!(sender_balance_after < sender_balance_before - amount_to_send);
// Receiver's asset balance is increased
assert!(receiver_assets_after > receiver_assets_before);
// Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`;
Expand All @@ -595,7 +585,7 @@ fn reserve_transfer_native_asset_from_para_to_relay() {
<PenpalA as Chain>::RuntimeOrigin::signed(asset_owner),
relay_native_asset_location,
sender.clone(),
amount_to_send,
amount_to_send * 2,
);

// Init values for Relay
Expand Down Expand Up @@ -634,24 +624,15 @@ fn reserve_transfer_native_asset_from_para_to_relay() {
test.set_dispatchable::<PenpalA>(para_to_relay_reserve_transfer_assets);
test.assert();

// Calculate delivery fees
let delivery_fees = PenpalA::execute_with(|| {
let reanchored_assets =
assets.reanchored(&destination, &PenpalUniversalLocation::get()).unwrap();
xcm_helpers::transfer_assets_delivery_fees::<
<PenpalRococoXcmConfig as xcm_executor::Config>::XcmSender,
>(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest)
});

// Query final balances
let sender_assets_after = PenpalA::execute_with(|| {
type ForeignAssets = <PenpalA as PenpalAPallet>::ForeignAssets;
<ForeignAssets as Inspect<_>>::balance(relay_native_asset_location.into(), &sender)
});
let receiver_balance_after = test.receiver.balance;

// Sender's balance is reduced
assert_eq!(sender_assets_before - amount_to_send - delivery_fees, sender_assets_after);
// Sender's balance is reduced by amount sent plus delivery fees
assert!(sender_assets_after < sender_assets_before - amount_to_send);
// Receiver's asset balance is increased
assert!(receiver_balance_after > receiver_balance_before);
// Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`;
Expand Down Expand Up @@ -705,25 +686,15 @@ fn reserve_transfer_native_asset_from_system_para_to_para() {
test.set_dispatchable::<AssetHubRococo>(system_para_to_para_reserve_transfer_assets);
test.assert();

// Calculate delivery fees
let delivery_fees = AssetHubRococo::execute_with(|| {
let reanchored_assets = assets
.reanchored(&destination, &AssetHubRococoUniversalLocation::get())
.unwrap();
xcm_helpers::transfer_assets_delivery_fees::<
<AssetHubRococoXcmConfig as xcm_executor::Config>::XcmSender,
>(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest)
});

// Query final balances
let sender_balance_after = test.sender.balance;
let receiver_assets_after = PenpalA::execute_with(|| {
type ForeignAssets = <PenpalA as PenpalAPallet>::ForeignAssets;
<ForeignAssets as Inspect<_>>::balance(system_para_native_asset_location, &receiver)
});

// Sender's balance is reduced
assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after);
// Sender's balance is reduced by amount sent plus delivery fees
assert!(sender_balance_after < sender_balance_before - amount_to_send);
// Receiver's assets is increased
assert!(receiver_assets_after > receiver_assets_before);
// Receiver's assets increased by `amount_to_send - delivery_fees - bought_execution`;
Expand All @@ -738,7 +709,7 @@ fn reserve_transfer_native_asset_from_para_to_system_para() {
// Init values for Parachain
let destination = PenpalA::sibling_location_of(AssetHubRococo::para_id());
let sender = PenpalASender::get();
let amount_to_send: Balance = ASSET_HUB_ROCOCO_ED * 1000;
let amount_to_send: Balance = ASSET_HUB_ROCOCO_ED * 10000;
let assets: Assets = (Parent, amount_to_send).into();
let system_para_native_asset_location =
v3::Location::try_from(RelayLocation::get()).expect("conversion works");
Expand All @@ -749,7 +720,7 @@ fn reserve_transfer_native_asset_from_para_to_system_para() {
<PenpalA as Chain>::RuntimeOrigin::signed(asset_owner),
system_para_native_asset_location,
sender.clone(),
amount_to_send,
amount_to_send * 2,
);

// Init values for System Parachain
Expand Down Expand Up @@ -788,24 +759,15 @@ fn reserve_transfer_native_asset_from_para_to_system_para() {
test.set_dispatchable::<PenpalA>(para_to_system_para_reserve_transfer_assets);
test.assert();

// Calculate delivery fees
let delivery_fees = PenpalA::execute_with(|| {
let reanchored_assets =
assets.reanchored(&destination, &PenpalUniversalLocation::get()).unwrap();
xcm_helpers::transfer_assets_delivery_fees::<
<PenpalRococoXcmConfig as xcm_executor::Config>::XcmSender,
>(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest)
});

// Query final balances
let sender_assets_after = PenpalA::execute_with(|| {
type ForeignAssets = <PenpalA as PenpalAPallet>::ForeignAssets;
<ForeignAssets as Inspect<_>>::balance(system_para_native_asset_location, &sender)
});
let receiver_balance_after = test.receiver.balance;

// Sender's balance is reduced
assert_eq!(sender_assets_before - amount_to_send - delivery_fees, sender_assets_after);
// Sender's balance is reduced by amount sent plus delivery fees
assert!(sender_assets_after < sender_assets_before - amount_to_send);
// Receiver's balance is increased
assert!(receiver_balance_after > receiver_balance_before);
// Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`;
Expand Down Expand Up @@ -1084,7 +1046,7 @@ fn reserve_transfer_native_asset_from_para_to_para_trough_relay() {
<PenpalA as Chain>::RuntimeOrigin::signed(asset_owner),
relay_native_asset_location,
sender.clone(),
amount_to_send,
amount_to_send * 2,
);

// fund the Parachain Origin's SA on Relay Chain with the native tokens held in reserve
Expand Down Expand Up @@ -1118,13 +1080,6 @@ fn reserve_transfer_native_asset_from_para_to_para_trough_relay() {
test.set_dispatchable::<PenpalA>(para_to_para_through_relay_limited_reserve_transfer_assets);
test.assert();

// Calculate delivery fees
let delivery_fees = PenpalA::execute_with(|| {
xcm_helpers::transfer_assets_delivery_fees::<
<PenpalRococoXcmConfig as xcm_executor::Config>::XcmSender,
>(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest)
});

// Query final balances
let sender_assets_after = PenpalA::execute_with(|| {
type ForeignAssets = <PenpalA as PenpalAPallet>::ForeignAssets;
Expand All @@ -1135,8 +1090,8 @@ fn reserve_transfer_native_asset_from_para_to_para_trough_relay() {
<ForeignAssets as Inspect<_>>::balance(relay_native_asset_location, &receiver)
});

// Sender's balance is reduced
assert_eq!(sender_assets_before - amount_to_send - delivery_fees, sender_assets_after);
// Sender's balance is reduced by amount sent plus delivery fees
assert!(sender_assets_after < sender_assets_before - amount_to_send);
// Receiver's balance is increased
assert!(receiver_assets_after > receiver_assets_before);
}
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ fn limited_teleport_native_assets_from_relay_to_system_para_works() {
test.assert();

let delivery_fees = Rococo::execute_with(|| {
xcm_helpers::transfer_assets_delivery_fees::<
xcm_helpers::teleport_assets_delivery_fees::<
<RococoXcmConfig as xcm_executor::Config>::XcmSender,
>(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest)
});
Expand Down Expand Up @@ -349,7 +349,7 @@ fn limited_teleport_native_assets_back_from_system_para_to_relay_works() {
let receiver_balance_after = test.receiver.balance;

let delivery_fees = AssetHubRococo::execute_with(|| {
xcm_helpers::transfer_assets_delivery_fees::<
xcm_helpers::teleport_assets_delivery_fees::<
<AssetHubRococoXcmConfig as xcm_executor::Config>::XcmSender,
>(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest)
});
Expand Down Expand Up @@ -390,7 +390,7 @@ fn limited_teleport_native_assets_from_system_para_to_relay_fails() {
let receiver_balance_after = test.receiver.balance;

let delivery_fees = AssetHubRococo::execute_with(|| {
xcm_helpers::transfer_assets_delivery_fees::<
xcm_helpers::teleport_assets_delivery_fees::<
<AssetHubRococoXcmConfig as xcm_executor::Config>::XcmSender,
>(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest)
});
Expand Down Expand Up @@ -450,7 +450,7 @@ fn bidirectional_teleport_foreign_assets_between_para_and_asset_hub() {
<PenpalA as Chain>::RuntimeOrigin::signed(asset_owner.clone()),
system_para_native_asset_location,
sender.clone(),
fee_amount_to_send,
fee_amount_to_send * 2,
);
// No need to create the asset (only mint) as it exists in genesis.
PenpalA::mint_asset(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,17 +67,14 @@ mod imports {

// Runtimes
pub use asset_hub_westend_runtime::xcm_config::{
UniversalLocation as AssetHubWestendUniversalLocation, WestendLocation as RelayLocation,
XcmConfig as AssetHubWestendXcmConfig,
WestendLocation as RelayLocation, XcmConfig as AssetHubWestendXcmConfig,
};
pub use penpal_runtime::xcm_config::{
LocalReservableFromAssetHub as PenpalLocalReservableFromAssetHub,
LocalTeleportableToAssetHub as PenpalLocalTeleportableToAssetHub,
UniversalLocation as PenpalUniversalLocation, XcmConfig as PenpalWestendXcmConfig,
};
pub use westend_runtime::xcm_config::{
UniversalLocation as WestendUniversalLocation, XcmConfig as WestendXcmConfig,
XcmConfig as PenpalWestendXcmConfig,
};
pub use westend_runtime::xcm_config::XcmConfig as WestendXcmConfig;

pub const ASSET_ID: u32 = 3;
pub const ASSET_MIN_BALANCE: u128 = 1000;
Expand Down
Loading