mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 12:51:02 +00:00
Asset conversion nits (#2860)
* [asset-conv] Unused Balances type
* [asset-conv] native asset change
* Dedicated `AssetBalance` type for `pallet_assets` instances
* Improved local vs foreign asset handling + test for not allowing pool_assets in pool
* Removed `into_multiasset_id`
* Fix
* Refactor
* Fixed create_pool for benchmark with LocalAndForeignAssets (finally found it)
* ".git/.scripts/commands/fmt/fmt.sh"
* Revert
* fmt
* Migrates pools with `MultiLocation { parents: 0, interior: Here }` to `MultiLocation { parents: 1, interior: Here }`
* Allow `set_storage` for `AllowMultiAssetPools` / `LiquidityWithdrawalFee`
* Benchmarks work
* Removed comment + more defensive migration
* `T::Currency::transfer` -> `Balances::transfer_all` in migration
* Change pool_id in migration
* Update parachains/runtimes/assets/asset-hub-westend/src/lib.rs
* Bump substrate (manually)
* Bump polkadot
* Fixes from polkadot + clippy
* Fix for xcm-emulator tests (thank you Nacho)
---------
Co-authored-by: command-bot <>
Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>
This commit is contained in:
@@ -7,6 +7,7 @@ description = "Asset Hub Westend runtime integration tests with xcm-emulator"
|
||||
|
||||
[dependencies]
|
||||
codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false }
|
||||
assert_matches = "1.5.0"
|
||||
|
||||
# Substrate
|
||||
sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ fn reserve_transfer_native_asset_from_relay_to_assets() {
|
||||
Westend,
|
||||
vec![
|
||||
RuntimeEvent::XcmPallet(pallet_xcm::Event::Attempted { outcome: Outcome::Complete(weight) }) => {
|
||||
weight: weight_within_threshold((REF_TIME_THRESHOLD, PROOF_SIZE_THRESHOLD), Weight::from_parts(731_495_000, 0), *weight),
|
||||
weight: weight_within_threshold((REF_TIME_THRESHOLD, PROOF_SIZE_THRESHOLD), Weight::from_parts(629_384_000, 6196), *weight),
|
||||
},
|
||||
]
|
||||
);
|
||||
|
||||
+40
-2
@@ -1,12 +1,13 @@
|
||||
use crate::*;
|
||||
use frame_support::{instances::Instance2, BoundedVec};
|
||||
use sp_runtime::{DispatchError, ModuleError};
|
||||
use xcm_emulator::Parachain;
|
||||
|
||||
#[test]
|
||||
fn swap_locally_on_chain_using_local_assets() {
|
||||
const ASSET_ID: u32 = 1;
|
||||
|
||||
let asset_native = Box::new(MultiLocation { parents: 0, interior: Here });
|
||||
let asset_native = Box::new(asset_hub_westend_runtime::xcm_config::WestendLocation::get());
|
||||
let asset_one = Box::new(MultiLocation {
|
||||
parents: 0,
|
||||
interior: X2(PalletInstance(50), GeneralIndex(ASSET_ID.into())),
|
||||
@@ -99,7 +100,7 @@ fn swap_locally_on_chain_using_foreign_assets() {
|
||||
use frame_support::weights::WeightToFee;
|
||||
|
||||
const ASSET_ID: u32 = 1;
|
||||
let asset_native = Box::new(MultiLocation { parents: 0, interior: Here });
|
||||
let asset_native = Box::new(asset_hub_westend_runtime::xcm_config::WestendLocation::get());
|
||||
|
||||
let foreign_asset1_at_asset_hub_westend = Box::new(MultiLocation {
|
||||
parents: 1,
|
||||
@@ -305,3 +306,40 @@ fn swap_locally_on_chain_using_foreign_assets() {
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn cannot_create_pool_from_pool_assets() {
|
||||
const ASSET_ID: u32 = 1;
|
||||
|
||||
let asset_native = Box::new(asset_hub_westend_runtime::xcm_config::WestendLocation::get());
|
||||
let mut asset_one = asset_hub_westend_runtime::xcm_config::PoolAssetsPalletLocation::get();
|
||||
asset_one.append_with(GeneralIndex(ASSET_ID.into())).expect("pool assets");
|
||||
|
||||
AssetHubWestend::execute_with(|| {
|
||||
let pool_owner_account_id = asset_hub_westend_runtime::AssetConversionOrigin::get();
|
||||
|
||||
assert_ok!(<AssetHubWestend as AssetHubWestendPallet>::PoolAssets::create(
|
||||
<AssetHubWestend as Parachain>::RuntimeOrigin::signed(pool_owner_account_id.clone()),
|
||||
ASSET_ID.into(),
|
||||
pool_owner_account_id.clone().into(),
|
||||
1000,
|
||||
));
|
||||
assert!(<AssetHubWestend as AssetHubWestendPallet>::PoolAssets::asset_exists(ASSET_ID));
|
||||
|
||||
assert_ok!(<AssetHubWestend as AssetHubWestendPallet>::PoolAssets::mint(
|
||||
<AssetHubWestend as Parachain>::RuntimeOrigin::signed(pool_owner_account_id),
|
||||
ASSET_ID.into(),
|
||||
AssetHubWestendSender::get().into(),
|
||||
3_000_000_000_000,
|
||||
));
|
||||
|
||||
assert_matches::assert_matches!(
|
||||
<AssetHubWestend as AssetHubWestendPallet>::AssetConversion::create_pool(
|
||||
<AssetHubWestend as Parachain>::RuntimeOrigin::signed(AssetHubWestendSender::get()),
|
||||
asset_native.clone(),
|
||||
Box::new(asset_one),
|
||||
),
|
||||
Err(DispatchError::Module(ModuleError{index: _, error: _, message})) => assert_eq!(message, Some("UnsupportedAsset"))
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user