--- a/Cargo.lock +++ b/Cargo.lock @@ -12926,8 +12926,8 @@ "frame-support", "frame-system", "pallet-balances", + "pallet-balances-adapter", "pallet-common", - "pallet-configuration", "pallet-ethereum", "pallet-evm", "pallet-evm-coder-substrate", @@ -12938,7 +12938,6 @@ "pallet-timestamp", "pallet-transaction-payment", "pallet-unique", - "pallet-xcm", "parity-scale-codec", "scale-info", "sp-core", --- a/pallets/balances-adapter/src/common.rs +++ b/pallets/balances-adapter/src/common.rs @@ -249,6 +249,7 @@ fn account_tokens(&self, account: ::CrossAccountId) -> Vec { let balance = ::Currency::total_balance(account.as_sub()); + let balance: u128 = balance.into(); if balance != 0 { vec![TokenId::default()] } else { --- a/pallets/balances-adapter/src/lib.rs +++ b/pallets/balances-adapter/src/lib.rs @@ -76,7 +76,7 @@ Balance = Self::CurrencyBalance, >; /// Balance type of chain - type CurrencyBalance: Into + TryFrom + PartialEq + From + Into; + type CurrencyBalance: Into + TryFrom + TryFrom + Into; /// Decimals of balance type Decimals: Get; @@ -144,7 +144,9 @@ ::Currency::transfer( from.as_sub(), to.as_sub(), - amount.into(), + amount + .try_into() + .map_err(|_| sp_runtime::ArithmeticError::Overflow)?, ExistenceRequirement::KeepAlive, )?; --- a/runtime/common/config/pallets/mod.rs +++ b/runtime/common/config/pallets/mod.rs @@ -54,10 +54,7 @@ parameter_types! { pub const CollectionCreationPrice: Balance = 2 * UNIQUE; - pub const Decimals: u8 = DECIMALS; pub TreasuryAccountId: AccountId = TreasuryModuleId::get().into_account_truncating(); - pub Name: String = RUNTIME_NAME.to_string(); - pub Symbol: String = TOKEN_SYMBOL.to_string(); } impl pallet_common::Config for Runtime { @@ -88,6 +85,12 @@ impl pallet_nonfungible::Config for Runtime { type WeightInfo = pallet_nonfungible::weights::SubstrateWeight; } + +parameter_types! { + pub const Decimals: u8 = DECIMALS; + pub Name: String = RUNTIME_NAME.to_string(); + pub Symbol: String = TOKEN_SYMBOL.to_string(); +} impl pallet_balances_adapter::Config for Runtime { type Currency = Balances; type CurrencyBalance = >::Balance; --- a/runtime/tests/Cargo.toml +++ b/runtime/tests/Cargo.toml @@ -26,6 +26,7 @@ pallet-ethereum = { workspace = true } pallet-evm = { workspace = true } +pallet-balances-adapter = { workspace = true } pallet-common = { workspace = true } pallet-fungible = { workspace = true } pallet-nonfungible = { workspace = true } @@ -41,5 +42,3 @@ evm-coder = { workspace = true } up-sponsorship = { workspace = true } xcm = { workspace = true } -pallet-xcm = { workspace = true } -pallet-configuration = { workspace = true } --- a/runtime/tests/src/lib.rs +++ b/runtime/tests/src/lib.rs @@ -19,7 +19,7 @@ use sp_core::{H160, H256, U256}; use frame_support::{ parameter_types, - traits::{Everything, ConstU32, ConstU64}, + traits::{Everything, ConstU32, ConstU64, Currency}, weights::IdentityFee, pallet_prelude::Weight, }; @@ -266,6 +266,19 @@ impl pallet_nonfungible::Config for Test { type WeightInfo = (); } +parameter_types! { + pub const Decimals: u8 = 18; + pub Name: String = "Test".to_string(); + pub Symbol: String = "TST".to_string(); +} +impl pallet_balances_adapter::Config for Test { + type Currency = Balances; + type CurrencyBalance = >::Balance; + type Decimals = Decimals; + type Name = Name; + type Symbol = Symbol; + type WeightInfo = (); +} parameter_types! { // 0x6c4e9fe1ae37a41e93cee429e8e1881abdcbb54f