From 1f8527301c9332b951cad0d959efd93eb38c3ce2 Mon Sep 17 00:00:00 2001 From: nuno Date: Fri, 30 Jun 2023 10:43:06 +0200 Subject: [PATCH 1/8] altair: Drop executed migrations Only dropping the migrations asociated with the CurrencyId::AUSD -> CurrencyId::ForeignAsset(2) migration. --- runtime/altair/src/migrations.rs | 179 +------------------------------ 1 file changed, 1 insertion(+), 178 deletions(-) diff --git a/runtime/altair/src/migrations.rs b/runtime/altair/src/migrations.rs index 81e46eea46..c841491f9e 100644 --- a/runtime/altair/src/migrations.rs +++ b/runtime/altair/src/migrations.rs @@ -19,14 +19,7 @@ use sp_std::vec::Vec; use crate::Runtime; -pub type UpgradeAltair1028 = ( - asset_registry::CrossChainTransferabilityMigration, - orml_tokens_migration::CurrencyIdRefactorMigration, - pool_system::MigrateAUSDPools, -); - -const DEPRECATED_AUSD_CURRENCY_ID: CurrencyId = CurrencyId::AUSD; -const NEW_AUSD_CURRENCY_ID: CurrencyId = CurrencyId::ForeignAsset(2); +pub type UpgradeAltair1028 = (asset_registry::CrossChainTransferabilityMigration,); mod asset_registry { use cfg_types::{tokens as v1, tokens::CustomMetadata}; @@ -169,173 +162,3 @@ mod asset_registry { } } } - -mod orml_tokens_migration { - use cfg_primitives::AccountId; - use orml_tokens::AccountData; - - use super::*; - - /// As we dropped `CurrencyId::KSM` and `CurrencyId::AUSD`, we need to - /// migrate the balances under the dropped variants in favour of the new, - /// corresponding `CurrencyId::ForeignAsset`. We have never transferred KSM - /// so we only need to deal with AUSD. - pub struct CurrencyIdRefactorMigration; - - #[derive(Clone, PartialEq, Eq, Debug, Encode, Decode)] - pub struct OldState { - pub total_issuance: Balance, - pub entries: Vec<(AccountId, AccountData)>, - } - - impl OnRuntimeUpgrade for CurrencyIdRefactorMigration { - #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, &'static str> { - let total_issuance = - orml_tokens::TotalIssuance::::get(DEPRECATED_AUSD_CURRENCY_ID); - let entries: Vec<(AccountId, AccountData)> = - orml_tokens::Accounts::::iter() - .filter(|(_, old_currency_id, _)| { - *old_currency_id == DEPRECATED_AUSD_CURRENCY_ID - }) - .map(|(account, _, account_data)| (account, account_data)) - .collect::<_>(); - - Ok(OldState { - total_issuance, - entries, - } - .encode()) - } - - #[cfg(feature = "try-runtime")] - fn post_upgrade(state: Vec) -> Result<(), &'static str> { - use crate::OrmlTokens; - - let old_state = OldState::decode(&mut state.as_ref()) - .map_err(|_| "Error decoding pre-upgrade state")?; - - let new_total_issuance = - orml_tokens::TotalIssuance::::get(NEW_AUSD_CURRENCY_ID); - - ensure!( - old_state.total_issuance == new_total_issuance, - "The old AUSD issuance differs from the new one" - ); - - for (account, account_data) in old_state.entries { - ensure!( - OrmlTokens::accounts(&account, NEW_AUSD_CURRENCY_ID) == account_data.clone(), - "The account data under the new AUSD Currency does NOT match the old one" - ); - } - - Ok(()) - } - - fn on_runtime_upgrade() -> Weight { - use frame_support::traits::tokens::fungibles::Mutate; - - let mut migrated_entries = 0; - - // Burn all AUSD tokens under the old CurrencyId and mint them under the new one - orml_tokens::Accounts::::iter() - .filter(|(_, old_currency_id, _)| *old_currency_id == DEPRECATED_AUSD_CURRENCY_ID) - .for_each(|(account, _, account_data)| { - let balance = account_data.free; - // Burn the amount under the old, hardcoded CurrencyId - as Mutate>::burn_from( - DEPRECATED_AUSD_CURRENCY_ID, - &account, - balance, - ) - .map_err(|e| { - log::error!( - "Failed to call burn_from({:?}, {:?}, {balance}): {:?}", - DEPRECATED_AUSD_CURRENCY_ID, - account, - e - ) - }) - .ok(); - // Now mint the amount under the new CurrencyID - as Mutate>::mint_into( - NEW_AUSD_CURRENCY_ID, - &account, - balance, - ) - .map_err(|e| { - log::error!( - "Failed to mint_into burn_from({:?}, {:?}, {balance}): {:?}", - NEW_AUSD_CURRENCY_ID, - account, - e - ) - }) - .ok(); - - migrated_entries += 1; - }); - - // Approximate weight given for every entry migration there are two calls being - // made, so counting the reads and writes for each call. - ::DbWeight::get() - .reads_writes(migrated_entries * 5, migrated_entries * 4) - } - } -} - -mod pool_system { - #[cfg(feature = "try-runtime")] - use cfg_primitives::PoolId; - use pallet_pool_system::pool_types::PoolDetails; - - use super::*; - - pub struct MigrateAUSDPools; - - impl OnRuntimeUpgrade for MigrateAUSDPools { - fn on_runtime_upgrade() -> Weight { - pallet_pool_system::Pool::::translate( - |_, mut details: PoolDetails| { - if details.currency == DEPRECATED_AUSD_CURRENCY_ID { - details.currency = NEW_AUSD_CURRENCY_ID; - } - - Some(details) - }, - ); - - let n = pallet_pool_system::Pool::::iter().count() as u64; - ::DbWeight::get().reads_writes(n, n) - } - - #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, &'static str> { - let ausd_pools: Vec = pallet_pool_system::Pool::::iter() - .filter(|(_, details)| details.currency == DEPRECATED_AUSD_CURRENCY_ID) - .map(|(pool_id, _)| pool_id) - .collect::<_>(); - - Ok(ausd_pools.encode()) - } - - #[cfg(feature = "try-runtime")] - fn post_upgrade(state: Vec) -> Result<(), &'static str> { - let ausd_pools = sp_std::vec::Vec::::decode(&mut state.as_ref()) - .map_err(|_| "Error decoding pre-upgrade state")?; - - for pool_id in ausd_pools { - let pool = pallet_pool_system::Pool::::get(pool_id) - .expect("AUSD Pool should exist after the migration was executed"); - - ensure!( - pool.currency == NEW_AUSD_CURRENCY_ID, - "A AUSD pool was NOT migrated to the new AUSD CurrencyId (ForeignAsset(2))", - ) - } - - Ok(()) - } - } -} From e2fbcd21ba0c0151603f00c1ab840fa640d9abea Mon Sep 17 00:00:00 2001 From: nuno Date: Fri, 30 Jun 2023 10:46:31 +0200 Subject: [PATCH 2/8] tokens: Drop legacy CurrencyId::AUSD variant --- libs/types/src/tokens.rs | 114 +-------------------------------------- 1 file changed, 1 insertion(+), 113 deletions(-) diff --git a/libs/types/src/tokens.rs b/libs/types/src/tokens.rs index 5747084ba7..803e55ad5b 100644 --- a/libs/types/src/tokens.rs +++ b/libs/types/src/tokens.rs @@ -56,11 +56,6 @@ pub enum CurrencyId { #[codec(index = 1)] Tranche(PoolId, TrancheId), - #[codec(index = 3)] - /// DEPRECATED - Will be removed in the following up Runtime Upgrade once - /// the orml_tokens' balances are migrated to the new CurrencyId for AUSD. - AUSD, - /// A foreign asset #[codec(index = 4)] ForeignAsset(ForeignAssetId), @@ -283,53 +278,12 @@ pub enum ConnectorsWrappedToken { }, } -pub mod before { - use cfg_primitives::{PoolId, TrancheId}; - use codec::{Decode, Encode, MaxEncodedLen}; - use scale_info::TypeInfo; - - use crate::tokens::{ForeignAssetId, StakingCurrency}; - - /// The old definition of `CurrencyId` which included `AUSD` and - /// `KSM` as hardcoded variants. - #[derive( - Clone, Copy, PartialOrd, Ord, PartialEq, Eq, Debug, Encode, Decode, TypeInfo, MaxEncodedLen, - )] - pub enum CurrencyId { - // The Native token, representing AIR in Altair and CFG in Centrifuge. - #[codec(index = 0)] - Native, - - /// A Tranche token - #[codec(index = 1)] - Tranche(PoolId, TrancheId), - - /// Karura KSM - #[codec(index = 2)] - KSM, - - /// Acala Dollar - /// In Altair, it represents AUSD in Kusama; - /// In Centrifuge, it represents AUSD in Polkadot; - #[codec(index = 3)] - AUSD, - - /// A foreign asset - #[codec(index = 4)] - ForeignAsset(ForeignAssetId), - - /// A staking currency - #[codec(index = 5)] - Staking(StakingCurrency), - } -} - #[cfg(test)] mod tests { use frame_support::parameter_types; use super::*; - use crate::tokens::CurrencyId::{ForeignAsset, Native, Staking, Tranche, AUSD}; + use crate::tokens::CurrencyId::{ForeignAsset, Native, Staking, Tranche}; const FOREIGN: CurrencyId = ForeignAsset(1u32); @@ -381,70 +335,6 @@ mod tests { ); } - #[cfg(test)] - mod tests { - use cfg_primitives::TrancheId; - use codec::Encode; - use hex::FromHex; - - use super::StakingCurrency; - use crate::{tokens as after, tokens::before}; - - #[test] - fn currency_id_refactor_encode_equality() { - // Native - assert_eq!( - before::CurrencyId::Native.encode(), - after::CurrencyId::Native.encode() - ); - assert_eq!(after::CurrencyId::Native.encode(), vec![0]); - - // Tranche - assert_eq!( - before::CurrencyId::Tranche(33, default_tranche_id()).encode(), - after::CurrencyId::Tranche(33, default_tranche_id()).encode() - ); - assert_eq!( - after::CurrencyId::Tranche(33, default_tranche_id()).encode(), - vec![ - 1, 33, 0, 0, 0, 0, 0, 0, 0, 129, 26, 205, 91, 63, 23, 192, 104, 65, 199, 228, - 30, 158, 4, 203, 27 - ] - ); - - // KSM - deprecated - assert_eq!(before::CurrencyId::KSM.encode(), vec![2]); - - // AUSD - deprecated - assert_eq!(before::CurrencyId::AUSD.encode(), vec![3]); - - // ForeignAsset - assert_eq!( - before::CurrencyId::ForeignAsset(91).encode(), - after::CurrencyId::ForeignAsset(91).encode() - ); - assert_eq!( - after::CurrencyId::ForeignAsset(91).encode(), - vec![4, 91, 0, 0, 0] - ); - - // Staking - assert_eq!( - before::CurrencyId::Staking(StakingCurrency::BlockRewards).encode(), - after::CurrencyId::Staking(StakingCurrency::BlockRewards).encode() - ); - assert_eq!( - after::CurrencyId::Staking(StakingCurrency::BlockRewards).encode(), - vec![5, 0] - ); - } - - fn default_tranche_id() -> TrancheId { - <[u8; 16]>::from_hex("811acd5b3f17c06841c7e41e9e04cb1b") - .expect("Should be valid tranche id") - } - } - /// Sanity check for every CurrencyId variant's encoding value. /// This will stop us from accidentally moving or dropping variants /// around which could have silent but serious negative consequences. @@ -456,7 +346,6 @@ mod tests { vec![ Native, Tranche(42, [42; 16]), - AUSD, ForeignAsset(89), Staking(StakingCurrency::BlockRewards), ] @@ -475,7 +364,6 @@ mod tests { r.append(&mut tranche_id.to_vec()); r } - AUSD => vec![3], ForeignAsset(id) => { let mut r: Vec = vec![4]; r.append(&mut id.encode()); From 6105b3862d695ff428cd934881453cc519723027 Mon Sep 17 00:00:00 2001 From: nuno Date: Fri, 30 Jun 2023 11:04:24 +0200 Subject: [PATCH 3/8] pools-system: Fix test warning Unrelated but a quick fix --- pallets/pool-system/src/tests/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pallets/pool-system/src/tests/mod.rs b/pallets/pool-system/src/tests/mod.rs index 77c5a69cbb..32990c76f8 100644 --- a/pallets/pool-system/src/tests/mod.rs +++ b/pallets/pool-system/src/tests/mod.rs @@ -2617,7 +2617,7 @@ mod changes { util::default_pool::create(); let change = PoolChangeProposal::new([Requirement::BlockedByLockedRedemptions]); - let change_id = PoolSystem::note(DEFAULT_POOL_ID, change).unwrap(); + let _change_id = PoolSystem::note(DEFAULT_POOL_ID, change).unwrap(); /* TODO: 1407 assert_noop!( From 15db67e36899f60dd85fef31d5246f73ce3e078a Mon Sep 17 00:00:00 2001 From: nuno Date: Thu, 3 Aug 2023 10:45:35 +0200 Subject: [PATCH 4/8] Fix e2e tests --- .../src/xcm/development/tests/connectors.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/runtime/integration-tests/src/xcm/development/tests/connectors.rs b/runtime/integration-tests/src/xcm/development/tests/connectors.rs index 8a9db48519..4650d76132 100644 --- a/runtime/integration-tests/src/xcm/development/tests/connectors.rs +++ b/runtime/integration-tests/src/xcm/development/tests/connectors.rs @@ -1116,8 +1116,7 @@ fn allow_pool_should_fail() { pallet_connectors::Error::::AssetNotConnectorsWrappedToken ); - // Create new pool for non foreign asset - // NOTE: Can be removed after merging https://github.com/centrifuge/centrifuge-chain/pull/1343 + // Create new pool with a non foreign asset assert_ok!(OrmlAssetRegistry::register_asset( RuntimeOrigin::root(), utils::asset_metadata( @@ -1128,9 +1127,9 @@ fn allow_pool_should_fail() { None, Default::default() ), - Some(CurrencyId::AUSD) + Some(CurrencyId::Native) )); - utils::create_currency_pool(pool_id + 1, CurrencyId::AUSD, 10_000 * dollar(12)); + utils::create_currency_pool(pool_id + 1, CurrencyId::Native, 10_000 * dollar(12)); // Should fail if currency is not foreign asset assert_noop!( Connectors::allow_pool_currency( @@ -1139,7 +1138,7 @@ fn allow_pool_should_fail() { // Tranche id is arbitrary in this case, so we don't need to check for the exact // pool_id default_tranche_id(pool_id + 1), - CurrencyId::AUSD, + CurrencyId::Native, ), DispatchError::Token(sp_runtime::TokenError::Unsupported) ); From 2e89a070228fd5b233155b0d5ee2886ba9889ec3 Mon Sep 17 00:00:00 2001 From: nuno Date: Thu, 3 Aug 2023 10:50:51 +0200 Subject: [PATCH 5/8] clippy --- runtime/altair/src/migrations.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/altair/src/migrations.rs b/runtime/altair/src/migrations.rs index c841491f9e..0cea112898 100644 --- a/runtime/altair/src/migrations.rs +++ b/runtime/altair/src/migrations.rs @@ -11,10 +11,10 @@ // GNU General Public License for more details. use cfg_primitives::Balance; use cfg_types::tokens::CurrencyId; -use codec::{Decode, Encode}; #[cfg(feature = "try-runtime")] use frame_support::ensure; use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +#[cfg(feature = "try-runtime")] use sp_std::vec::Vec; use crate::Runtime; From 6c82e544f3009db880203b0940ce335eac61611b Mon Sep 17 00:00:00 2001 From: nuno Date: Thu, 21 Sep 2023 16:32:32 +0200 Subject: [PATCH 6/8] altair: Drop CurrencyIdRefactorMigration It's important to understan the context of this change. This branch assumes that this migration has been already executed and that we can finally drop the `CurrencyId::AUSD` variant. --- runtime/altair/src/migrations.rs | 128 ------------------------------- 1 file changed, 128 deletions(-) diff --git a/runtime/altair/src/migrations.rs b/runtime/altair/src/migrations.rs index f1d3a1f8fd..4a99438d3b 100644 --- a/runtime/altair/src/migrations.rs +++ b/runtime/altair/src/migrations.rs @@ -16,8 +16,6 @@ use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; /// already been executed on Algol (1028 & 1029). #[cfg(not(feature = "testnet-runtime"))] pub type UpgradeAltair1034 = ( - // FIXME: This migration fails to decode 4 entries against Altair - // orml_tokens_migration::CurrencyIdRefactorMigration, // At minimum, bumps storage version from 1 to 2 runtime_common::migrations::nuke::Migration, // At minimum, bumps storage version from 0 to 3 @@ -207,132 +205,6 @@ mod asset_registry { } } -mod orml_tokens_migration { - use cfg_primitives::{AccountId, Balance}; - use cfg_types::tokens::CurrencyId; - use codec::{Decode, Encode}; - #[cfg(feature = "try-runtime")] - use frame_support::ensure; - use orml_tokens::AccountData; - use sp_std::vec::Vec; - - use super::*; - use crate::Runtime; - - const DEPRECATED_AUSD_CURRENCY_ID: CurrencyId = CurrencyId::AUSD; - const NEW_AUSD_CURRENCY_ID: CurrencyId = CurrencyId::ForeignAsset(2); - - /// As we dropped `CurrencyId::KSM` and `CurrencyId::AUSD`, we need to - /// migrate the balances under the dropped variants in favour of the new, - /// corresponding `CurrencyId::ForeignAsset`. We have never transferred KSM - /// so we only need to deal with AUSD. - pub struct CurrencyIdRefactorMigration; - - #[derive(Clone, PartialEq, Eq, Debug, Encode, Decode)] - pub struct OldState { - pub total_issuance: Balance, - pub entries: Vec<(AccountId, AccountData)>, - } - - impl OnRuntimeUpgrade for CurrencyIdRefactorMigration { - #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, &'static str> { - let total_issuance = - orml_tokens::TotalIssuance::::get(DEPRECATED_AUSD_CURRENCY_ID); - let entries: Vec<(AccountId, AccountData)> = - orml_tokens::Accounts::::iter() - .filter(|(_, old_currency_id, _)| { - *old_currency_id == DEPRECATED_AUSD_CURRENCY_ID - }) - .map(|(account, _, account_data)| (account, account_data)) - .collect::<_>(); - - Ok(OldState { - total_issuance, - entries, - } - .encode()) - } - - #[cfg(feature = "try-runtime")] - fn post_upgrade(state: Vec) -> Result<(), &'static str> { - use crate::OrmlTokens; - - let old_state = OldState::decode(&mut state.as_ref()) - .map_err(|_| "Error decoding pre-upgrade state")?; - - let new_total_issuance = - orml_tokens::TotalIssuance::::get(NEW_AUSD_CURRENCY_ID); - - ensure!( - old_state.total_issuance == new_total_issuance, - "The old AUSD issuance differs from the new one" - ); - - for (account, account_data) in old_state.entries { - ensure!( - OrmlTokens::accounts(&account, NEW_AUSD_CURRENCY_ID) == account_data.clone(), - "The account data under the new AUSD Currency does NOT match the old one" - ); - } - - Ok(()) - } - - fn on_runtime_upgrade() -> Weight { - use frame_support::traits::tokens::fungibles::Mutate; - - let mut migrated_entries: u64 = 0; - - // Burn all AUSD tokens under the old CurrencyId and mint them under the new one - orml_tokens::Accounts::::iter() - .filter(|(_, old_currency_id, _)| *old_currency_id == DEPRECATED_AUSD_CURRENCY_ID) - .for_each(|(account, _, account_data)| { - let balance = account_data.free; - // Burn the amount under the old, hardcoded CurrencyId - as Mutate>::burn_from( - DEPRECATED_AUSD_CURRENCY_ID, - &account, - balance, - ) - .map_err(|e| { - log::error!( - "Failed to call burn_from({:?}, {:?}, {balance}): {:?}", - DEPRECATED_AUSD_CURRENCY_ID, - account, - e - ) - }) - .ok(); - // Now mint the amount under the new CurrencyID - as Mutate>::mint_into( - NEW_AUSD_CURRENCY_ID, - &account, - balance, - ) - .map_err(|e| { - log::error!( - "Failed to mint_into burn_from({:?}, {:?}, {balance}): {:?}", - NEW_AUSD_CURRENCY_ID, - account, - e - ) - }) - .ok(); - - migrated_entries += 1; - }); - - // Approximate weight given for every entry migration there are two calls being - // made, so counting the reads and writes for each call. - ::DbWeight::get().reads_writes( - migrated_entries.saturating_mul(5), - migrated_entries.saturating_mul(4), - ) - } - } -} - mod xcm_v2_to_v3 { use super::*; use crate::{PolkadotXcm, RuntimeOrigin}; From c8ed4fd2e08ad49b83c7077914e379c177d80b08 Mon Sep 17 00:00:00 2001 From: nuno Date: Fri, 22 Sep 2023 10:18:41 +0200 Subject: [PATCH 7/8] Fix integration tests --- .../liquidity_pools/add_allow_upgrade.rs | 28 ------------------- .../development/tests/routers/ethereum_xcm.rs | 3 +- 2 files changed, 2 insertions(+), 29 deletions(-) diff --git a/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/liquidity_pools/add_allow_upgrade.rs b/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/liquidity_pools/add_allow_upgrade.rs index 656fd5de9e..78ce1ff01b 100644 --- a/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/liquidity_pools/add_allow_upgrade.rs +++ b/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/liquidity_pools/add_allow_upgrade.rs @@ -600,34 +600,6 @@ fn allow_pool_should_fail() { ), pallet_liquidity_pools::Error::::AssetNotLiquidityPoolsWrappedToken ); - - // Create new pool for non foreign asset - // NOTE: Can be removed after merging https://github.com/centrifuge/centrifuge-chain/pull/1343 - assert_ok!(OrmlAssetRegistry::register_asset( - RuntimeOrigin::root(), - asset_metadata( - "Acala Dollar".into(), - "AUSD".into(), - 12, - true, - None, - Default::default() - ), - Some(CurrencyId::AUSD) - )); - create_currency_pool(pool_id + 1, CurrencyId::AUSD, 10_000 * dollar(12)); - // Should fail if currency is not foreign asset - assert_noop!( - LiquidityPools::allow_pool_currency( - RuntimeOrigin::signed(BOB.into()), - pool_id + 1, - // Tranche id is arbitrary in this case, so we don't need to check for the exact - // pool_id - default_tranche_id(pool_id + 1), - CurrencyId::AUSD, - ), - DispatchError::Token(sp_runtime::TokenError::Unsupported) - ); }); } diff --git a/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/routers/ethereum_xcm.rs b/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/routers/ethereum_xcm.rs index fd9dd00c2a..ba277874ec 100644 --- a/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/routers/ethereum_xcm.rs +++ b/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/routers/ethereum_xcm.rs @@ -45,6 +45,7 @@ use crate::{ }, utils::accounts::Keyring, }; +use crate::utils::AUSD_CURRENCY_ID; #[test] fn submit_ethereum_xcm() { @@ -200,6 +201,6 @@ fn setup(router_creation_fn: RouterCreationFn) { assert_ok!(OrmlAssetRegistry::register_asset( RuntimeOrigin::root(), ausd_meta, - Some(CurrencyId::AUSD) + Some(AUSD_CURRENCY_ID) )); } From 63577e29be16b1c4a75eef3abae01f57252db14d Mon Sep 17 00:00:00 2001 From: nuno Date: Fri, 22 Sep 2023 10:22:01 +0200 Subject: [PATCH 8/8] Fixup --- .../pallet/development/tests/routers/ethereum_xcm.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/routers/ethereum_xcm.rs b/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/routers/ethereum_xcm.rs index ba277874ec..81228a5808 100644 --- a/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/routers/ethereum_xcm.rs +++ b/runtime/integration-tests/src/liquidity_pools/pallet/development/tests/routers/ethereum_xcm.rs @@ -43,9 +43,8 @@ use crate::{ test_net::{Development, Moonbeam, RelayChain, TestNet}, tests::routers::axelar_evm::TEST_EVM_CHAIN, }, - utils::accounts::Keyring, + utils::{accounts::Keyring, AUSD_CURRENCY_ID}, }; -use crate::utils::AUSD_CURRENCY_ID; #[test] fn submit_ethereum_xcm() {