difftreelog
test fix unit
in: master
4 files changed
Cargo.lockdiffbeforeafterboth--- a/Cargo.lock
+++ b/Cargo.lock
@@ -12941,6 +12941,7 @@
"pallet-timestamp",
"pallet-transaction-payment",
"pallet-unique",
+ "pallet-xcm",
"parity-scale-codec",
"scale-info",
"sp-core",
runtime/tests/Cargo.tomldiffbeforeafterboth--- a/runtime/tests/Cargo.toml
+++ b/runtime/tests/Cargo.toml
@@ -18,6 +18,7 @@
frame-support = { workspace = true }
frame-system = { workspace = true }
+pallet-xcm = { workspace = true }
pallet-balances = { features = ["insecure_zero_ed"], workspace = true }
pallet-timestamp = { workspace = true }
@@ -36,7 +37,7 @@
pallet-evm-coder-substrate = { workspace = true }
-codec = { workspace = true }
+codec = { workspace = true, package = "parity-scale-codec" }
scale-info = { workspace = true }
evm-coder = { workspace = true }
runtime/tests/src/lib.rsdiffbeforeafterboth1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617#![allow(clippy::from_over_into)]1819use sp_core::{H160, H256, U256};20use frame_support::{21 parameter_types,22 traits::{Everything, ConstU32, ConstU64, Currency},23 weights::IdentityFee,24 pallet_prelude::Weight,25};26use sp_runtime::{27 traits::{BlakeTwo256, IdentityLookup},28 testing::Header,29};30use pallet_transaction_payment::CurrencyAdapter;31use frame_system as system;32use pallet_evm::{33 AddressMapping, account::CrossAccountId, EnsureAddressNever, SubstrateBlockHashMapping,34 BackwardsAddressMapping,35};36use pallet_ethereum::PostLogContent;37use parity_scale_codec::{Encode, Decode, MaxEncodedLen};38use scale_info::TypeInfo;3940use up_data_structs::mapping::{CrossTokenAddressMapping, EvmTokenAddressMapping};4142#[path = "../../common/dispatch.rs"]43mod dispatch;4445use dispatch::CollectionDispatchT;4647#[path = "../../common/weights/mod.rs"]48mod weights;4950use weights::CommonWeights;5152type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;53type Block = frame_system::mocking::MockBlock<Test>;5455#[cfg(test)]56mod tests;5758// Configure a mock runtime to test the pallet.59frame_support::construct_runtime!(60 pub enum Test where61 Block = Block,62 NodeBlock = Block,63 UncheckedExtrinsic = UncheckedExtrinsic,64 {65 System: frame_system,66 Unique: pallet_unique::{Pallet, Call, Storage},67 Balances: pallet_balances::{Pallet, Call, Storage, Event<T>},68 Common: pallet_common::{Pallet, Storage, Event<T>},69 Fungible: pallet_fungible::{Pallet, Storage},70 Refungible: pallet_refungible::{Pallet, Storage},71 Nonfungible: pallet_nonfungible::{Pallet, Storage},72 Structure: pallet_structure::{Pallet, Storage, Event<T>},73 TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event<T>},74 Ethereum: pallet_ethereum::{Pallet, Config, Call, Storage, Event, Origin},75 EVM: pallet_evm::{Pallet, Config, Call, Storage, Event<T>},76 }77);7879parameter_types! {80 pub const BlockHashCount: u64 = 250;81 pub const SS58Prefix: u8 = 42;82}8384impl system::Config for Test {85 type RuntimeEvent = RuntimeEvent;86 type BaseCallFilter = Everything;87 type BlockWeights = ();88 type BlockLength = ();89 type DbWeight = ();90 type RuntimeOrigin = RuntimeOrigin;91 type RuntimeCall = RuntimeCall;92 type Index = u64;93 type BlockNumber = u64;94 type Hash = H256;95 type Hashing = BlakeTwo256;96 type AccountId = u64;97 type Lookup = IdentityLookup<Self::AccountId>;98 type Header = Header;99 type BlockHashCount = BlockHashCount;100 type Version = ();101 type PalletInfo = PalletInfo;102 type AccountData = pallet_balances::AccountData<u64>;103 type OnNewAccount = ();104 type OnKilledAccount = ();105 type SystemWeightInfo = ();106 type SS58Prefix = SS58Prefix;107 type OnSetCode = ();108 type MaxConsumers = ConstU32<16>;109}110111parameter_types! {112 pub const ExistentialDeposit: u64 = 1;113 pub const MaxLocks: u32 = 50;114}115//frame_system::Module<Test>;116impl pallet_balances::Config for Test {117 type RuntimeEvent = RuntimeEvent;118 type AccountStore = System;119 type Balance = u64;120 type DustRemoval = ();121 type ExistentialDeposit = ExistentialDeposit;122 type WeightInfo = ();123 type MaxLocks = MaxLocks;124 type MaxReserves = ();125 type ReserveIdentifier = [u8; 8];126}127128parameter_types! {129 pub const OperationalFeeMultiplier: u8 = 5;130}131132impl pallet_transaction_payment::Config for Test {133 type RuntimeEvent = RuntimeEvent;134 type OnChargeTransaction = CurrencyAdapter<pallet_balances::Pallet<Test>, ()>;135 type LengthToFee = IdentityFee<u64>;136 type WeightToFee = IdentityFee<u64>;137 type FeeMultiplierUpdate = ();138 type OperationalFeeMultiplier = OperationalFeeMultiplier;139}140141parameter_types! {142 pub const MinimumPeriod: u64 = 1;143}144impl pallet_timestamp::Config for Test {145 type Moment = u64;146 type OnTimestampSet = ();147 type MinimumPeriod = MinimumPeriod;148 type WeightInfo = ();149}150151parameter_types! {152 pub const CollectionCreationPrice: u32 = 100;153 pub TreasuryAccountId: u64 = 1234;154 pub EthereumChainId: u32 = 1111;155}156157pub struct TestEvmAddressMapping;158impl AddressMapping<u64> for TestEvmAddressMapping {159 fn into_account_id(_addr: sp_core::H160) -> u64 {160 unimplemented!()161 }162}163164pub struct TestEvmBackwardsAddressMapping;165impl BackwardsAddressMapping<u64> for TestEvmBackwardsAddressMapping {166 fn from_account_id(_account_id: u64) -> sp_core::H160 {167 unimplemented!()168 }169}170171#[derive(Encode, Decode, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, TypeInfo, MaxEncodedLen)]172pub struct TestCrossAccountId(u64, sp_core::H160, bool);173impl CrossAccountId<u64> for TestCrossAccountId {174 fn as_sub(&self) -> &u64 {175 &self.0176 }177 fn as_eth(&self) -> &sp_core::H160 {178 &self.1179 }180 fn from_sub(sub: u64) -> Self {181 let mut eth = [0; 20];182 eth[12..20].copy_from_slice(&sub.to_be_bytes());183 Self(sub, sp_core::H160(eth), true)184 }185 fn from_eth(eth: sp_core::H160) -> Self {186 let mut sub_raw = [0; 8];187 sub_raw.copy_from_slice(ð.0[0..8]);188 let sub = u64::from_be_bytes(sub_raw);189 Self(sub, eth, false)190 }191 fn conv_eq(&self, other: &Self) -> bool {192 self.as_sub() == other.as_sub()193 }194 fn is_canonical_substrate(&self) -> bool {195 self.2196 }197}198199impl Default for TestCrossAccountId {200 fn default() -> Self {201 Self::from_sub(0)202 }203}204205parameter_types! {206 pub BlockGasLimit: U256 = 0u32.into();207 pub WeightPerGas: Weight = Weight::from_ref_time(20);208 pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes;209}210211impl pallet_ethereum::Config for Test {212 type RuntimeEvent = RuntimeEvent;213 type StateRoot = pallet_ethereum::IntermediateStateRoot<Self>;214 type PostLogContent = PostBlockAndTxnHashes;215}216217impl pallet_evm::Config for Test {218 type CrossAccountId = TestCrossAccountId;219 type AddressMapping = TestEvmAddressMapping;220 type BackwardsAddressMapping = TestEvmBackwardsAddressMapping;221 type RuntimeEvent = RuntimeEvent;222 type FeeCalculator = ();223 type GasWeightMapping = pallet_evm::FixedGasWeightMapping<Self>;224 type WeightPerGas = WeightPerGas;225 type CallOrigin = EnsureAddressNever<Self>;226 type WithdrawOrigin = EnsureAddressNever<Self>;227 type Currency = Balances;228 type PrecompilesType = ();229 type PrecompilesValue = ();230 type Runner = pallet_evm::runner::stack::Runner<Self>;231 type ChainId = ConstU64<0>;232 type BlockGasLimit = BlockGasLimit;233 type OnMethodCall = ();234 type OnCreate = ();235 type OnChargeTransaction = ();236 type FindAuthor = ();237 type BlockHashMapping = SubstrateBlockHashMapping<Self>;238 type TransactionValidityHack = ();239}240impl pallet_evm_coder_substrate::Config for Test {}241242impl pallet_common::Config for Test {243 type WeightInfo = ();244 type RuntimeEvent = RuntimeEvent;245 type Currency = Balances;246 type CollectionCreationPrice = CollectionCreationPrice;247 type TreasuryAccountId = TreasuryAccountId;248249 type CollectionDispatch = CollectionDispatchT<Self>;250 type EvmTokenAddressMapping = EvmTokenAddressMapping;251 type CrossTokenAddressMapping = CrossTokenAddressMapping<Self::AccountId>;252 type ContractAddress = EvmCollectionHelpersAddress;253}254255impl pallet_structure::Config for Test {256 type WeightInfo = ();257 type RuntimeEvent = RuntimeEvent;258 type RuntimeCall = RuntimeCall;259}260impl pallet_fungible::Config for Test {261 type WeightInfo = ();262}263impl pallet_refungible::Config for Test {264 type WeightInfo = ();265}266impl pallet_nonfungible::Config for Test {267 type WeightInfo = ();268}269parameter_types! {270 pub const Decimals: u8 = 18;271 pub Name: String = "Test".to_string();272 pub Symbol: String = "TST".to_string();273}274impl pallet_balances_adapter::Config for Test {275 type Currency = Balances;276 type CurrencyBalance = <Balances as Currency<Self::AccountId>>::Balance;277 type Decimals = Decimals;278 type Name = Name;279 type Symbol = Symbol;280 type WeightInfo = ();281}282283parameter_types! {284 // 0x6c4e9fe1ae37a41e93cee429e8e1881abdcbb54f285 pub const EvmCollectionHelpersAddress: H160 = H160([286 0x6c, 0x4e, 0x9f, 0xe1, 0xae, 0x37, 0xa4, 0x1e, 0x93, 0xce, 0xe4, 0x29, 0xe8, 0xe1, 0x88, 0x1a, 0xbd, 0xcb, 0xb5, 0x4f,287 ]);288}289290impl pallet_unique::Config for Test {291 type WeightInfo = ();292 type CommonWeightInfo = CommonWeights<Self>;293 type RefungibleExtensionsWeightInfo = CommonWeights<Self>;294}295296// Build genesis storage according to the mock runtime.297pub fn new_test_ext() -> sp_io::TestExternalities {298 system::GenesisConfig::default()299 .build_storage::<Test>()300 .unwrap()301 .into()302}runtime/tests/src/tests.rsdiffbeforeafterboth--- a/runtime/tests/src/tests.rs
+++ b/runtime/tests/src/tests.rs
@@ -31,11 +31,10 @@
fn add_balance(user: u64, value: u64) {
const DONOR_USER: u64 = 999;
- assert_ok!(<pallet_balances::Pallet<Test>>::set_balance(
+ assert_ok!(<pallet_balances::Pallet<Test>>::force_set_balance(
RuntimeOrigin::root(),
DONOR_USER,
value,
- 0
));
assert_ok!(<pallet_balances::Pallet<Test>>::force_transfer(
RuntimeOrigin::root(),
@@ -199,7 +198,7 @@
fn check_not_sufficient_founds() {
new_test_ext().execute_with(|| {
let acc: u64 = 1;
- <pallet_balances::Pallet<Test>>::set_balance(RuntimeOrigin::root(), acc, 0, 0).unwrap();
+ <pallet_balances::Pallet<Test>>::force_set_balance(RuntimeOrigin::root(), acc, 0).unwrap();
let name: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();
let description: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();