difftreelog
fix merge test changes
in: master
7 files changed
pallets/inflation/src/tests.rsdiffbeforeafterboth34 NodeBlock = Block,34 NodeBlock = Block,35 UncheckedExtrinsic = UncheckedExtrinsic,35 UncheckedExtrinsic = UncheckedExtrinsic,36 {36 {37 Balances: pallet_balances::{Module, Call, Storage},37 Balances: pallet_balances::{Pallet, Call, Storage},38 System: frame_system::{Module, Call, Config, Storage, Event<T>},38 System: frame_system::{Pallet, Call, Config, Storage, Event<T>},39 Inflation: pallet_inflation::{Module, Call, Storage},39 Inflation: pallet_inflation::{Pallet, Call, Storage},40 }40 }41 );41 );424270 type OnKilledAccount = ();70 type OnKilledAccount = ();71 type SystemWeightInfo = ();71 type SystemWeightInfo = ();72 type SS58Prefix = SS58Prefix;72 type SS58Prefix = SS58Prefix;73 type OnSetCode = ();73 }74 }747575 parameter_types! {76 parameter_types! {pallets/nft/src/eth/sponsoring.rsdiffbeforeafterboth32 match call {32 match call {33 UniqueNFTCall::ERC721UniqueExtensions(ERC721UniqueExtensionsCall::Transfer {token_id, ..}) | UniqueNFTCall::ERC721(ERC721Call::TransferFrom {token_id, ..}) => {33 UniqueNFTCall::ERC721UniqueExtensions(ERC721UniqueExtensionsCall::Transfer {token_id, ..}) | UniqueNFTCall::ERC721(ERC721Call::TransferFrom {token_id, ..}) => {34 let token_id: u32 = token_id.try_into().map_err(|_| AnyError)?;34 let token_id: u32 = token_id.try_into().map_err(|_| AnyError)?;35 let block_number = <frame_system::Module<T>>::block_number() as T::BlockNumber;35 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;36 let collection_limits = &collection.limits;36 let collection_limits = &collection.limits;37 let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {37 let limit: u32 = if collection_limits.sponsor_transfer_timeout > 0 {38 collection_limits.sponsor_transfer_timeout38 collection_limits.sponsor_transfer_timeout68 ChainLimit::get().fungible_sponsor_transfer_timeout68 ChainLimit::get().fungible_sponsor_transfer_timeout69 };69 };707071 let block_number = <frame_system::Module<T>>::block_number() as T::BlockNumber;71 let block_number = <frame_system::Pallet<T>>::block_number() as T::BlockNumber;72 let mut sponsored = true;72 let mut sponsored = true;73 if <FungibleTransferBasket<T>>::contains_key(collection_id, who.as_sub()) {73 if <FungibleTransferBasket<T>>::contains_key(collection_id, who.as_sub()) {74 let last_tx_block = <FungibleTransferBasket<T>>::get(collection_id, who.as_sub());74 let last_tx_block = <FungibleTransferBasket<T>>::get(collection_id, who.as_sub());pallets/nft/src/lib.rsdiffbeforeafterboth236236237 type EvmAddressMapping: pallet_evm::AddressMapping<Self::AccountId>;237 type EvmAddressMapping: pallet_evm::AddressMapping<Self::AccountId>;238 type EvmBackwardsAddressMapping: EvmBackwardsAddressMapping<Self::AccountId>;238 type EvmBackwardsAddressMapping: EvmBackwardsAddressMapping<Self::AccountId>;239 type EvmWithdrawOrigin: pallet_evm::EnsureAddressOrigin<Self::Origin, Success = Self::AccountId>;240239241 type CrossAccountId: CrossAccountId<Self::AccountId>;240 type CrossAccountId: CrossAccountId<Self::AccountId>;242 type Currency: Currency<Self::AccountId>;241 type Currency: Currency<Self::AccountId>;pallets/nft/src/mock.rsdiffbeforeafterboth11};11};12use pallet_transaction_payment::{ CurrencyAdapter};12use pallet_transaction_payment::{ CurrencyAdapter};13use frame_system as system;13use frame_system as system;14use pallet_evm::AddressMapping;15use crate::{EvmBackwardsAddressMapping, CrossAccountId};16use codec::{Encode, Decode};141715type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;18type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;16type Block = frame_system::mocking::MockBlock<Test>; 19type Block = frame_system::mocking::MockBlock<Test>; 22 NodeBlock = Block,25 NodeBlock = Block,23 UncheckedExtrinsic = UncheckedExtrinsic,26 UncheckedExtrinsic = UncheckedExtrinsic,24 {27 {25 System: frame_system::{Module, Call, Config, Storage, Event<T>},28 System: frame_system::{Pallet, Call, Config, Storage, Event<T>},26 TemplateModule: pallet_template::{Module, Call, Storage},29 TemplateModule: pallet_template::{Pallet, Call, Storage},27 Balances: pallet_balances::{Module, Call, Storage},30 Balances: pallet_balances::{Pallet, Call, Storage},28 }31 }29);32);303356 type OnKilledAccount = ();59 type OnKilledAccount = ();57 type SystemWeightInfo = ();60 type SystemWeightInfo = ();58 type SS58Prefix = SS58Prefix;61 type SS58Prefix = SS58Prefix;62 type OnSetCode = ();59}63}606461parameter_types! {65parameter_types! {78}82}798380impl pallet_transaction_payment::Config for Test {84impl pallet_transaction_payment::Config for Test {81 type OnChargeTransaction = CurrencyAdapter<pallet_balances::Module<Test>, ()>;85 type OnChargeTransaction = CurrencyAdapter<pallet_balances::Pallet<Test>, ()>;82 type TransactionByteFee = TransactionByteFee;86 type TransactionByteFee = TransactionByteFee;83 type WeightToFee = IdentityFee<u64>;87 type WeightToFee = IdentityFee<u64>;84 type FeeMultiplierUpdate = ();88 type FeeMultiplierUpdate = ();94 type WeightInfo = ();98 type WeightInfo = ();95}99}9610097type Timestamp = pallet_timestamp::Module<Test>;101type Timestamp = pallet_timestamp::Pallet<Test>;98type Randomness = pallet_randomness_collective_flip::Module<Test>;102type Randomness = pallet_randomness_collective_flip::Pallet<Test>;99103100parameter_types! {104parameter_types! {101 pub const TombstoneDeposit: u64 = 1;105 pub const TombstoneDeposit: u64 = 1;102 pub const DepositPerContract: u64 = 1;106 pub const DepositPerContract: u64 = 1;103 pub const DepositPerStorageByte: u64 = 1;107 pub const DepositPerStorageByte: u64 = 1;104 pub const DepositPerStorageItem: u64 = 1;108 pub const DepositPerStorageItem: u64 = 1;105 pub RentFraction: Perbill = Perbill::from_rational_approximation(1u32, 30 * 24 * 60 * 10);109 pub RentFraction: Perbill = Perbill::from_rational(1u32, 30 * 24 * 60 * 10);106 pub const SurchargeReward: u64 = 1;110 pub const SurchargeReward: u64 = 1;107 pub const SignedClaimHandicap: u32 = 2;111 pub const SignedClaimHandicap: u32 = 2;108 pub const MaxDepth: u32 = 32;109 pub const MaxValueSize: u32 = 16 * 1024;110 pub DeletionWeightLimit: u64 = u64::MAX;//Perbill::from_percent(10);112 pub DeletionWeightLimit: u64 = u64::MAX;//Perbill::from_percent(10);111 pub DeletionQueueDepth: u32 = 10;113 pub DeletionQueueDepth: u32 = 10;114 pub Schedule: pallet_contracts::Schedule<Test> = Default::default();112}115}113116114impl pallet_contracts::Config for Test {117impl pallet_contracts::Config for Test {115 type Time = Timestamp;118 type Time = Timestamp;116 type Randomness = Randomness;119 type Randomness = Randomness;117 type Currency = pallet_balances::Module<Test>;120 type Currency = pallet_balances::Pallet<Test>;118 type Event = ();121 type Event = ();119 type RentPayment = ();122 type RentPayment = ();120 type SignedClaimHandicap = SignedClaimHandicap;123 type SignedClaimHandicap = SignedClaimHandicap;125 type RentFraction = RentFraction;128 type RentFraction = RentFraction;126 type SurchargeReward = SurchargeReward;129 type SurchargeReward = SurchargeReward;127 type DeletionWeightLimit = DeletionWeightLimit;130 type DeletionWeightLimit = DeletionWeightLimit;128 type MaxDepth = MaxDepth;129 type DeletionQueueDepth = DeletionQueueDepth;131 type DeletionQueueDepth = DeletionQueueDepth;130 type MaxValueSize = MaxValueSize;131 type ChainExtension = ();132 type ChainExtension = ();132 type MaxCodeSize = ();133 type WeightPrice = ();133 type WeightPrice = ();134 type WeightInfo = pallet_contracts::weights::SubstrateWeight<Self>;134 type WeightInfo = pallet_contracts::weights::SubstrateWeight<Self>;135 type Schedule = Schedule;136 type CallStack = [pallet_contracts::Frame<Self>; 31];135}137}136138137parameter_types! {139parameter_types! {138 pub const CollectionCreationPrice: u32 = 0;140 pub const CollectionCreationPrice: u32 = 0;139 pub TreasuryAccountId: u64 = 1234;141 pub TreasuryAccountId: u64 = 1234;142 pub EthereumChainId: u32 = 1111;140}143}144145pub struct TestEvmAddressMapping;146impl AddressMapping<u64> for TestEvmAddressMapping {147 fn into_account_id(addr: sp_core::H160) -> u64 {148 unimplemented!()149 }150}151152pub struct TestEvmBackwardsAddressMapping;153impl EvmBackwardsAddressMapping<u64> for TestEvmBackwardsAddressMapping {154 fn from_account_id(account_id: u64) -> sp_core::H160 {155 unimplemented!()156 }157}158159#[derive(Encode, Decode, Clone, PartialEq, Eq, PartialOrd, Ord, Debug)]160pub struct TestCrossAccountId(u64, sp_core::H160);161impl CrossAccountId<u64> for TestCrossAccountId {162 fn from_sub(sub: u64) -> Self {163 let mut eth = [0; 20];164 eth[12..20].copy_from_slice(&sub.to_be_bytes());165 Self(sub, sp_core::H160(eth))166 }167 fn as_sub(&self) -> &u64 {168 &self.0169 }170 fn from_eth(eth: sp_core::H160) -> Self {171 unimplemented!()172 }173 fn as_eth(&self) -> &sp_core::H160 {174 &self.1175 }176}177178pub struct TestEtheremTransactionSender;179impl pallet_ethereum::EthereumTransactionSender for TestEtheremTransactionSender {180 fn submit_logs_transaction(tx: pallet_ethereum::Transaction, logs: Vec<pallet_ethereum::Log>) -> Result<(), sp_runtime::DispatchError> {181 Ok(())182 }183}141184142impl pallet_template::Config for Test {185impl pallet_template::Config for Test {143 type Event = ();186 type Event = ();144 type WeightInfo = ();187 type WeightInfo = ();145 type CollectionCreationPrice = CollectionCreationPrice;188 type CollectionCreationPrice = CollectionCreationPrice;146 type Currency = pallet_balances::Module<Test>;189 type Currency = pallet_balances::Pallet<Test>;147 type TreasuryAccountId = TreasuryAccountId;190 type TreasuryAccountId = TreasuryAccountId;191 type EvmAddressMapping = TestEvmAddressMapping;192 type EvmBackwardsAddressMapping = TestEvmBackwardsAddressMapping;193 type CrossAccountId = TestCrossAccountId;194 type EthereumChainId = EthereumChainId;195 type EthereumTransactionSender = TestEtheremTransactionSender;148}196}149197150// Build genesis storage according to the mock runtime.198// Build genesis storage according to the mock runtime.pallets/nft/src/tests.rsdiffbeforeafterboth3use crate::mock::*;3use crate::mock::*;4use crate::{AccessMode, CollectionMode,4use crate::{5 AccessMode, CollectionMode,5 Ownership, ChainLimits, CreateItemData, CreateNftData, CreateFungibleData, CreateReFungibleData,6 Ownership, ChainLimits, CreateItemData,6 CollectionId, TokenId, MAX_DECIMAL_POINTS};7};8use nft_data_structs::{9 CreateNftData, CreateFungibleData, CreateReFungibleData,10 CollectionId, TokenId, MAX_DECIMAL_POINTS,11};7use frame_support::{assert_noop, assert_ok};12use frame_support::{assert_noop, assert_ok};8use frame_system::{ RawOrigin };13use frame_system::{ RawOrigin };91472 assert_ok!(TemplateModule::create_item(77 assert_ok!(TemplateModule::create_item(73 origin1.clone(),78 origin1.clone(),74 collection_id,79 collection_id,75 1,80 account(1),76 data.clone()81 data.clone()77 ));82 ));788379}84}8586fn account(sub: u64) -> TestCrossAccountId {87 TestCrossAccountId::from_sub(sub)88}808981// Use cases tests region90// Use cases tests region82// #region91// #region143 assert_ok!(TemplateModule::create_multiple_items(152 assert_ok!(TemplateModule::create_multiple_items(144 origin1.clone(),153 origin1.clone(),145 1,154 1,146 1,155 account(1),147 items_data.clone().into_iter().map(|d| { d.into() }).collect()156 items_data.clone().into_iter().map(|d| { d.into() }).collect()148 ));157 ));149 for (index, data) in items_data.iter().enumerate() {158 for (index, data) in items_data.iter().enumerate() {174 assert_eq!(183 assert_eq!(175 item.owner[0],184 item.owner[0],176 Ownership {185 Ownership {177 owner: 1,186 owner: account(1),178 fraction: 1023187 fraction: 1023179 }188 }180 );189 );195 assert_ok!(TemplateModule::create_multiple_items(204 assert_ok!(TemplateModule::create_multiple_items(196 origin1.clone(),205 origin1.clone(),197 1,206 1,198 1,207 account(1),199 items_data.clone().into_iter().map(|d| { d.into() }).collect()208 items_data.clone().into_iter().map(|d| { d.into() }).collect()200 ));209 ));201 for (index, data) in items_data.iter().enumerate() {210 for (index, data) in items_data.iter().enumerate() {206 assert_eq!(215 assert_eq!(207 item.owner[0],216 item.owner[0],208 Ownership {217 Ownership {209 owner: 1,218 owner: account(1),210 fraction: 1023219 fraction: 1023211 }220 }212 );221 );271 assert_eq!(TemplateModule::balance_count(1, 1), 5);280 assert_eq!(TemplateModule::balance_count(1, 1), 5);272281273 // change owner scenario282 // change owner scenario274 assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 5));283 assert_ok!(TemplateModule::transfer(origin1.clone(), account(2), 1, 1, 5));275 assert_eq!(TemplateModule::fungible_item_id(1, 1).value, 0);284 assert_eq!(TemplateModule::fungible_item_id(1, 1).value, 0);276 assert_eq!(TemplateModule::balance_count(1, 1), 0);285 assert_eq!(TemplateModule::balance_count(1, 1), 0);277 assert_eq!(TemplateModule::balance_count(1, 2), 5);286 assert_eq!(TemplateModule::balance_count(1, 2), 5);278287279 // split item scenario288 // split item scenario280 assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 3));289 assert_ok!(TemplateModule::transfer(origin2.clone(), account(3), 1, 1, 3));281 assert_eq!(TemplateModule::balance_count(1, 2), 2);290 assert_eq!(TemplateModule::balance_count(1, 2), 2);282 assert_eq!(TemplateModule::balance_count(1, 3), 3);291 assert_eq!(TemplateModule::balance_count(1, 3), 3);283292284 // split item and new owner has account scenario293 // split item and new owner has account scenario285 assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 1));294 assert_ok!(TemplateModule::transfer(origin2.clone(), account(3), 1, 1, 1));286 assert_eq!(TemplateModule::fungible_item_id(1, 2).value, 1);295 assert_eq!(TemplateModule::fungible_item_id(1, 2).value, 1);287 assert_eq!(TemplateModule::fungible_item_id(1, 3).value, 4);296 assert_eq!(TemplateModule::fungible_item_id(1, 3).value, 4);288 assert_eq!(TemplateModule::balance_count(1, 2), 1);297 assert_eq!(TemplateModule::balance_count(1, 2), 1);315 assert_eq!(324 assert_eq!(316 item.owner[0],325 item.owner[0],317 Ownership {326 Ownership {318 owner: 1,327 owner: account(1),319 fraction: 1023328 fraction: 1023320 }329 }321 );330 );324 assert_eq!(TemplateModule::address_tokens(1, 1), [1]);333 assert_eq!(TemplateModule::address_tokens(1, 1), [1]);325334326 // change owner scenario335 // change owner scenario327 assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 1023));336 assert_ok!(TemplateModule::transfer(origin1.clone(), account(2), 1, 1, 1023));328 assert_eq!(337 assert_eq!(329 TemplateModule::refungible_item_id(1, 1).unwrap().owner[0],338 TemplateModule::refungible_item_id(1, 1).unwrap().owner[0],330 Ownership {339 Ownership {331 owner: 2,340 owner: account(2),332 fraction: 1023341 fraction: 1023333 }342 }334 );343 );338 assert_eq!(TemplateModule::address_tokens(1, 2), [1]);347 assert_eq!(TemplateModule::address_tokens(1, 2), [1]);339348340 // split item scenario349 // split item scenario341 assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 500));350 assert_ok!(TemplateModule::transfer(origin2.clone(), account(3), 1, 1, 500));342 {351 {343 let item = TemplateModule::refungible_item_id(1, 1).unwrap();352 let item = TemplateModule::refungible_item_id(1, 1).unwrap();344 assert_eq!(353 assert_eq!(345 item.owner[0],354 item.owner[0],346 Ownership {355 Ownership {347 owner: 2,356 owner: account(2),348 fraction: 523357 fraction: 523349 }358 }350 );359 );351 assert_eq!(360 assert_eq!(352 item.owner[1],361 item.owner[1],353 Ownership {362 Ownership {354 owner: 3,363 owner: account(3),355 fraction: 500364 fraction: 500356 }365 }357 );366 );362 assert_eq!(TemplateModule::address_tokens(1, 3), [1]);371 assert_eq!(TemplateModule::address_tokens(1, 3), [1]);363372364 // split item and new owner has account scenario373 // split item and new owner has account scenario365 assert_ok!(TemplateModule::transfer(origin2.clone(), 3, 1, 1, 200));374 assert_ok!(TemplateModule::transfer(origin2.clone(), account(3), 1, 1, 200));366 {375 {367 let item = TemplateModule::refungible_item_id(1, 1).unwrap();376 let item = TemplateModule::refungible_item_id(1, 1).unwrap();368 assert_eq!(377 assert_eq!(369 item.owner[0],378 item.owner[0],370 Ownership {379 Ownership {371 owner: 2,380 owner: account(2),372 fraction: 323381 fraction: 323373 }382 }374 );383 );375 assert_eq!(384 assert_eq!(376 item.owner[1],385 item.owner[1],377 Ownership {386 Ownership {378 owner: 3,387 owner: account(3),379 fraction: 700388 fraction: 700380 }389 }381 );390 );401410402 let origin1 = Origin::signed(1);411 let origin1 = Origin::signed(1);403 // default scenario412 // default scenario404 assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 1000));413 assert_ok!(TemplateModule::transfer(origin1.clone(), account(2), 1, 1, 1000));405 assert_eq!(TemplateModule::nft_item_id(1, 1).unwrap().owner, 2);414 assert_eq!(TemplateModule::nft_item_id(1, 1).unwrap().owner, account(2));406 assert_eq!(TemplateModule::balance_count(1, 1), 0);415 assert_eq!(TemplateModule::balance_count(1, 1), 0);407 assert_eq!(TemplateModule::balance_count(1, 2), 1);416 assert_eq!(TemplateModule::balance_count(1, 2), 1);408 // assert_eq!(TemplateModule::address_tokens(1, 1), []);417 // assert_eq!(TemplateModule::address_tokens(1, 1), []);429 // neg transfer438 // neg transfer430 assert_noop!(TemplateModule::transfer_from(439 assert_noop!(TemplateModule::transfer_from(431 origin2.clone(),440 origin2.clone(),432 1,441 account(1),433 2,442 account(2),434 1,443 1,435 1,444 1,436 1), Error::<Test>::NoPermission);445 1), Error::<Test>::NoPermission);437446438 // do approve447 // do approve439 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1, 5));448 assert_ok!(TemplateModule::approve(origin1.clone(), account(2), 1, 1, 5));440 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5);449 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5);441 assert_eq!(450 assert_eq!(442 TemplateModule::approved(1, (1, 1, 2)),451 TemplateModule::approved(1, (1, 1, 2)),445454446 assert_ok!(TemplateModule::transfer_from(455 assert_ok!(TemplateModule::transfer_from(447 origin2.clone(),456 origin2.clone(),448 1,457 account(1),449 3,458 account(3),450 1,459 1,451 1,460 1,452 1461 1482 1,491 1,483 AccessMode::WhiteList492 AccessMode::WhiteList484 ));493 ));485 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 1));494 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(1)));486 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 2));495 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(2)));487 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 3));496 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(3)));488497489 // do approve498 // do approve490 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1, 5));499 assert_ok!(TemplateModule::approve(origin1.clone(), account(2), 1, 1, 5));491 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5);500 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5);492 assert_ok!(TemplateModule::approve(origin1.clone(), 3, 1, 1, 5));501 assert_ok!(TemplateModule::approve(origin1.clone(), account(3), 1, 1, 5));493 assert_eq!(TemplateModule::approved(1, (1, 1, 3)), 5);502 assert_eq!(TemplateModule::approved(1, (1, 1, 3)), 5);494503495 assert_ok!(TemplateModule::transfer_from(504 assert_ok!(TemplateModule::transfer_from(496 origin2.clone(),505 origin2.clone(),497 1,506 account(1),498 3,507 account(3),499 1,508 1,500 1,509 1,501 1510 1530 1,539 1,531 AccessMode::WhiteList540 AccessMode::WhiteList532 ));541 ));533 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 1));542 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(1)));534 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 2));543 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(2)));535 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 3));544 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(3)));536545537 // do approve546 // do approve538 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1, 1023));547 assert_ok!(TemplateModule::approve(origin1.clone(), account(2), 1, 1, 1023));539 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1023);548 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1023);540549541 assert_ok!(TemplateModule::transfer_from(550 assert_ok!(TemplateModule::transfer_from(542 origin2.clone(),551 origin2.clone(),543 1,552 account(1),544 3,553 account(3),545 1,554 1,546 1,555 1,547 100556 100583 1,592 1,584 AccessMode::WhiteList593 AccessMode::WhiteList585 ));594 ));586 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 1));595 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(1)));587 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 2));596 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(2)));588 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 3));597 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(3)));589598590 // do approve599 // do approve591 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1, 5));600 assert_ok!(TemplateModule::approve(origin1.clone(), account(2), 1, 1, 5));592 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5);601 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 5);593 assert_ok!(TemplateModule::approve(origin1.clone(), 3, 1, 1, 5));602 assert_ok!(TemplateModule::approve(origin1.clone(), account(3), 1, 1, 5));594 assert_eq!(TemplateModule::approved(1, (1, 1, 3)), 5);603 assert_eq!(TemplateModule::approved(1, (1, 1, 3)), 5);595 assert_eq!(604 assert_eq!(596 TemplateModule::approved(1, (1, 1, 2)),605 TemplateModule::approved(1, (1, 1, 2)),599608600 assert_ok!(TemplateModule::transfer_from(609 assert_ok!(TemplateModule::transfer_from(601 origin2.clone(),610 origin2.clone(),602 1,611 account(1),603 3,612 account(3),604 1,613 1,605 1,614 1,606 4615 4612621613 assert_noop!(TemplateModule::transfer_from(622 assert_noop!(TemplateModule::transfer_from(614 origin2.clone(),623 origin2.clone(),615 1,624 account(1),616 3,625 account(3),617 1,626 1,618 1,627 1,619 4628 4658 let collection_id = create_test_collection(&CollectionMode::NFT, 1);667 let collection_id = create_test_collection(&CollectionMode::NFT, 1);659668660 let origin1 = Origin::signed(1);669 let origin1 = Origin::signed(1);661 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 2));670 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(2)));662 671 663 let data = default_nft_data();672 let data = default_nft_data();664 create_test_item(collection_id, &data.into());673 create_test_item(collection_id, &data.into());685 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);694 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);686 695 687 let origin1 = Origin::signed(1);696 let origin1 = Origin::signed(1);688 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 2));697 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(2)));689 698 690 let data = default_fungible_data();699 let data = default_fungible_data();691 create_test_item(collection_id, &data.into());700 create_test_item(collection_id, &data.into());722 collection_id,731 collection_id,723 AccessMode::WhiteList732 AccessMode::WhiteList724 ));733 ));725 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 1));734 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(1)));726735727 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, 2));736 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), 1, account(2)));728 737 729 let data = default_re_fungible_data();738 let data = default_re_fungible_data();730 create_test_item(collection_id, &data.into());739 create_test_item(collection_id, &data.into());755 let origin1 = Origin::signed(1);764 let origin1 = Origin::signed(1);756765757 // collection admin766 // collection admin758 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection1_id, 2));767 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection1_id, account(2)));759 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection1_id, 3));768 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection1_id, account(3)));760769761 assert_eq!(TemplateModule::admin_list_collection(collection1_id).contains(&2), true);770 assert_eq!(TemplateModule::admin_list_collection(collection1_id).contains(&account(2)), true);762 assert_eq!(TemplateModule::admin_list_collection(collection1_id).contains(&3), true);771 assert_eq!(TemplateModule::admin_list_collection(collection1_id).contains(&account(3)), true);763 });772 });764}773}765774776 let origin2 = Origin::signed(2);785 let origin2 = Origin::signed(2);777786778 // collection admin787 // collection admin779 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection1_id, 2));788 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection1_id, account(2)));780 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection1_id, 3));789 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection1_id, account(3)));781790782 assert_eq!(TemplateModule::admin_list_collection(1).contains(&2), true);791 assert_eq!(TemplateModule::admin_list_collection(1).contains(&account(2)), true);783 assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), true);792 assert_eq!(TemplateModule::admin_list_collection(1).contains(&account(3)), true);784793785 // remove admin794 // remove admin786 assert_ok!(TemplateModule::remove_collection_admin(795 assert_ok!(TemplateModule::remove_collection_admin(787 origin2.clone(),796 origin2.clone(),788 1,797 1,789 3798 account(3)790 ));799 ));791 assert_eq!(TemplateModule::admin_list_collection(1).contains(&3), false);800 assert_eq!(TemplateModule::admin_list_collection(1).contains(&account(3)), false);792 });801 });793}802}794803819 assert_eq!(TemplateModule::balance_count(nft_collection_id, 1), 1);828 assert_eq!(TemplateModule::balance_count(nft_collection_id, 1), 1);820 assert_eq!(TemplateModule::balance_count(fungible_collection_id, 1), 5);829 assert_eq!(TemplateModule::balance_count(fungible_collection_id, 1), 5);821 assert_eq!(TemplateModule::balance_count(re_fungible_collection_id, 1), 1023);830 assert_eq!(TemplateModule::balance_count(re_fungible_collection_id, 1), 1023);822 assert_eq!(TemplateModule::nft_item_id(nft_collection_id, 1).unwrap().owner, 1);831 assert_eq!(TemplateModule::nft_item_id(nft_collection_id, 1).unwrap().owner, account(1));823 assert_eq!(TemplateModule::fungible_item_id(fungible_collection_id, 1).value, 5);832 assert_eq!(TemplateModule::fungible_item_id(fungible_collection_id, 1).value, 5);824 assert_eq!(TemplateModule::refungible_item_id(re_fungible_collection_id, 1).unwrap().owner[0].owner, 1);833 assert_eq!(TemplateModule::refungible_item_id(re_fungible_collection_id, 1).unwrap().owner[0].owner, account(1));825 });834 });826}835}827836838 let origin1 = Origin::signed(1);847 let origin1 = Origin::signed(1);839 848 840 // approve849 // approve841 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1, 1));850 assert_ok!(TemplateModule::approve(origin1.clone(), account(2), 1, 1, 1));842 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1);851 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1);843 });852 });844}853}856 create_test_item(collection_id, &data.into());865 create_test_item(collection_id, &data.into());857866858 // approve867 // approve859 assert_ok!(TemplateModule::approve(origin1.clone(), 2, 1, 1, 1));868 assert_ok!(TemplateModule::approve(origin1.clone(), account(2), 1, 1, 1));860 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1);869 assert_eq!(TemplateModule::approved(1, (1, 1, 2)), 1);861870862 assert_ok!(TemplateModule::set_mint_permission(871 assert_ok!(TemplateModule::set_mint_permission(869 1,878 1,870 AccessMode::WhiteList879 AccessMode::WhiteList871 ));880 ));872 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 1));881 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(1)));873 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 2));882 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(2)));874 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 3));883 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(3)));875884876 assert_ok!(TemplateModule::transfer_from(885 assert_ok!(TemplateModule::transfer_from(877 origin2.clone(),886 origin2.clone(),878 1,887 account(1),879 2,888 account(2),880 1,889 1,881 1,890 1,882 1891 1901 let collection_id = create_test_collection(&CollectionMode::NFT, 1);910 let collection_id = create_test_collection(&CollectionMode::NFT, 1);902911903 let origin1 = Origin::signed(1);912 let origin1 = Origin::signed(1);904 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));913 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));905 assert_eq!(TemplateModule::white_list(collection_id, 2), true);914 assert_eq!(TemplateModule::white_list(collection_id, 2), true);906 });915 });907}916}915 let origin1 = Origin::signed(1);924 let origin1 = Origin::signed(1);916 let origin2 = Origin::signed(2);925 let origin2 = Origin::signed(2);917926918 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 2));927 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(2)));919 assert_ok!(TemplateModule::add_to_white_list(origin2.clone(), collection_id, 3));928 assert_ok!(TemplateModule::add_to_white_list(origin2.clone(), collection_id, account(3)));920 assert_eq!(TemplateModule::white_list(collection_id, 3), true);929 assert_eq!(TemplateModule::white_list(collection_id, 3), true);921 });930 });922}931}930939931 let origin2 = Origin::signed(2);940 let origin2 = Origin::signed(2);932 assert_noop!(941 assert_noop!(933 TemplateModule::add_to_white_list(origin2.clone(), collection_id, 3),942 TemplateModule::add_to_white_list(origin2.clone(), collection_id, account(3)),934 Error::<Test>::NoPermission943 Error::<Test>::NoPermission935 );944 );936 });945 });944 let origin1 = Origin::signed(1);953 let origin1 = Origin::signed(1);945954946 assert_noop!(955 assert_noop!(947 TemplateModule::add_to_white_list(origin1.clone(), 1, 2),956 TemplateModule::add_to_white_list(origin1.clone(), 1, account(2)),948 Error::<Test>::CollectionNotFound957 Error::<Test>::CollectionNotFound949 );958 );950 });959 });960 let origin1 = Origin::signed(1);969 let origin1 = Origin::signed(1);961 assert_ok!(TemplateModule::destroy_collection(origin1.clone(), collection_id));970 assert_ok!(TemplateModule::destroy_collection(origin1.clone(), collection_id));962 assert_noop!(971 assert_noop!(963 TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2),972 TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)),964 Error::<Test>::CollectionNotFound973 Error::<Test>::CollectionNotFound965 );974 );966 });975 });975 let collection_id = create_test_collection(&CollectionMode::NFT, 1);984 let collection_id = create_test_collection(&CollectionMode::NFT, 1);976 let origin1 = Origin::signed(1);985 let origin1 = Origin::signed(1);977 986 978 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));987 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));979 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));988 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));980 assert_eq!(TemplateModule::white_list(collection_id, 2), true);989 assert_eq!(TemplateModule::white_list(collection_id, 2), true);981 });990 });982}991}989 let collection_id = create_test_collection(&CollectionMode::NFT, 1);998 let collection_id = create_test_collection(&CollectionMode::NFT, 1);990999991 let origin1 = Origin::signed(1);1000 let origin1 = Origin::signed(1);992 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1001 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));993 assert_ok!(TemplateModule::remove_from_white_list(1002 assert_ok!(TemplateModule::remove_from_white_list(994 origin1.clone(),1003 origin1.clone(),995 collection_id,1004 collection_id,996 21005 account(2)997 ));1006 ));998 assert_eq!(TemplateModule::white_list(collection_id, 2), false);1007 assert_eq!(TemplateModule::white_list(collection_id, 2), false);999 });1008 });1008 let origin1 = Origin::signed(1);1017 let origin1 = Origin::signed(1);1009 let origin2 = Origin::signed(2);1018 let origin2 = Origin::signed(2);101010191011 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 2));1020 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(2)));101210211013 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 3));1022 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(3)));1014 assert_ok!(TemplateModule::remove_from_white_list(1023 assert_ok!(TemplateModule::remove_from_white_list(1015 origin2.clone(),1024 origin2.clone(),1016 collection_id,1025 collection_id,1017 31026 account(3)1018 ));1027 ));1019 assert_eq!(TemplateModule::white_list(collection_id, 3), false);1028 assert_eq!(TemplateModule::white_list(collection_id, 3), false);1020 });1029 });1029 let origin1 = Origin::signed(1);1038 let origin1 = Origin::signed(1);1030 let origin2 = Origin::signed(2);1039 let origin2 = Origin::signed(2);103110401032 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1041 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));1033 assert_noop!(1042 assert_noop!(1034 TemplateModule::remove_from_white_list(origin2.clone(), collection_id, 2),1043 TemplateModule::remove_from_white_list(origin2.clone(), collection_id, account(2)),1035 Error::<Test>::NoPermission1044 Error::<Test>::NoPermission1036 );1045 );1037 assert_eq!(TemplateModule::white_list(collection_id, 2), true);1046 assert_eq!(TemplateModule::white_list(collection_id, 2), true);1045 let origin1 = Origin::signed(1);1054 let origin1 = Origin::signed(1);104610551047 assert_noop!(1056 assert_noop!(1048 TemplateModule::remove_from_white_list(origin1.clone(), 1, 2),1057 TemplateModule::remove_from_white_list(origin1.clone(), 1, account(2)),1049 Error::<Test>::CollectionNotFound1058 Error::<Test>::CollectionNotFound1050 );1059 );1051 });1060 });1060 let origin1 = Origin::signed(1);1069 let origin1 = Origin::signed(1);1061 let origin2 = Origin::signed(2);1070 let origin2 = Origin::signed(2);106210711063 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1072 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));1064 assert_ok!(TemplateModule::destroy_collection(origin1.clone(), collection_id));1073 assert_ok!(TemplateModule::destroy_collection(origin1.clone(), collection_id));1065 assert_noop!(1074 assert_noop!(1066 TemplateModule::remove_from_white_list(origin2.clone(), collection_id, 2),1075 TemplateModule::remove_from_white_list(origin2.clone(), collection_id, account(2)),1067 Error::<Test>::CollectionNotFound1076 Error::<Test>::CollectionNotFound1068 );1077 );1069 assert_eq!(TemplateModule::white_list(collection_id, 2), false);1078 assert_eq!(TemplateModule::white_list(collection_id, 2), false);1079 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1088 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1080 let origin1 = Origin::signed(1);1089 let origin1 = Origin::signed(1);108110901082 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1091 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));1083 assert_ok!(TemplateModule::remove_from_white_list(1092 assert_ok!(TemplateModule::remove_from_white_list(1084 origin1.clone(),1093 origin1.clone(),1085 collection_id,1094 collection_id,1086 21095 account(2)1087 ));1096 ));1088 assert_ok!(TemplateModule::remove_from_white_list(1097 assert_ok!(TemplateModule::remove_from_white_list(1089 origin1.clone(),1098 origin1.clone(),1090 collection_id,1099 collection_id,1091 21100 account(2)1092 ));1101 ));1093 assert_eq!(TemplateModule::white_list(collection_id, 2), false);1102 assert_eq!(TemplateModule::white_list(collection_id, 2), false);1094 });1103 });1112 collection_id,1121 collection_id,1113 AccessMode::WhiteList1122 AccessMode::WhiteList1114 ));1123 ));1115 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1124 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));111611251117 assert_noop!(1126 assert_noop!(1118 TemplateModule::transfer(origin1.clone(), 3, 1, 1, 1),1127 TemplateModule::transfer(origin1.clone(), account(3), 1, 1, 1),1119 Error::<Test>::AddresNotInWhiteList1128 Error::<Test>::AddresNotInWhiteList1120 );1129 );1121 });1130 });1137 collection_id,1146 collection_id,1138 AccessMode::WhiteList1147 AccessMode::WhiteList1139 ));1148 ));1140 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 1));1149 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(1)));1141 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 2));1150 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(2)));114211511143 // do approve1152 // do approve1144 assert_ok!(TemplateModule::approve(origin1.clone(), 1, 1, 1, 1));1153 assert_ok!(TemplateModule::approve(origin1.clone(), account(1), 1, 1, 1));1145 assert_eq!(TemplateModule::approved(1, (1, 1, 1)), 1);1154 assert_eq!(TemplateModule::approved(1, (1, 1, 1)), 1);114611551147 assert_ok!(TemplateModule::remove_from_white_list(1156 assert_ok!(TemplateModule::remove_from_white_list(1148 origin1.clone(),1157 origin1.clone(),1149 1,1158 1,1150 11159 account(1)1151 ));1160 ));115211611153 assert_noop!(1162 assert_noop!(1154 TemplateModule::transfer_from(origin1.clone(), 1, 3, 1, 1, 1),1163 TemplateModule::transfer_from(origin1.clone(), account(1), account(3), 1, 1, 1),1155 Error::<Test>::AddresNotInWhiteList1164 Error::<Test>::AddresNotInWhiteList1156 );1165 );1157 });1166 });1175 collection_id,1184 collection_id,1176 AccessMode::WhiteList1185 AccessMode::WhiteList1177 ));1186 ));1178 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, 1));1187 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), 1, account(1)));117911881180 assert_noop!(1189 assert_noop!(1181 TemplateModule::transfer(origin1.clone(), 3, 1, 1, 1),1190 TemplateModule::transfer(origin1.clone(), account(3), 1, 1, 1),1182 Error::<Test>::AddresNotInWhiteList1191 Error::<Test>::AddresNotInWhiteList1183 );1192 );1184 });1193 });1201 collection_id,1210 collection_id,1202 AccessMode::WhiteList1211 AccessMode::WhiteList1203 ));1212 ));1204 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 1));1213 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(1)));1205 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1214 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));120612151207 // do approve1216 // do approve1208 assert_ok!(TemplateModule::approve(origin1.clone(), 1, 1, 1, 1));1217 assert_ok!(TemplateModule::approve(origin1.clone(), account(1), 1, 1, 1));1209 assert_eq!(TemplateModule::approved(1, (1, 1, 1)), 1);1218 assert_eq!(TemplateModule::approved(1, (1, 1, 1)), 1);121012191211 assert_ok!(TemplateModule::remove_from_white_list(1220 assert_ok!(TemplateModule::remove_from_white_list(1212 origin1.clone(),1221 origin1.clone(),1213 collection_id,1222 collection_id,1214 21223 account(2)1215 ));1224 ));121612251217 assert_noop!(1226 assert_noop!(1218 TemplateModule::transfer_from(origin1.clone(), 1, 3, 1, 1, 1),1227 TemplateModule::transfer_from(origin1.clone(), account(1), account(3), 1, 1, 1),1219 Error::<Test>::AddresNotInWhiteList1228 Error::<Test>::AddresNotInWhiteList1220 );1229 );1221 });1230 });126712761268 // do approve1277 // do approve1269 assert_noop!(1278 assert_noop!(1270 TemplateModule::approve(origin1.clone(), 1, 1, 1, 5),1279 TemplateModule::approve(origin1.clone(), account(1), 1, 1, 5),1271 Error::<Test>::AddresNotInWhiteList1280 Error::<Test>::AddresNotInWhiteList1272 );1281 );1273 });1282 });1292 collection_id,1301 collection_id,1293 AccessMode::WhiteList1302 AccessMode::WhiteList1294 ));1303 ));1295 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 1));1304 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(1)));1296 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1305 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));129713061298 assert_ok!(TemplateModule::transfer(origin1.clone(), 2, 1, 1, 1));1307 assert_ok!(TemplateModule::transfer(origin1.clone(), account(2), 1, 1, 1));1299 });1308 });1300}1309}130113101316 collection_id,1325 collection_id,1317 AccessMode::WhiteList1326 AccessMode::WhiteList1318 ));1327 ));1319 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 1));1328 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(1)));1320 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1329 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));132113301322 // do approve1331 // do approve1323 assert_ok!(TemplateModule::approve(origin1.clone(), 1, 1, 1, 5));1332 assert_ok!(TemplateModule::approve(origin1.clone(), account(1), 1, 1, 5));1324 assert_eq!(TemplateModule::approved(1, (1, 1, 1)), 5);1333 assert_eq!(TemplateModule::approved(1, (1, 1, 1)), 5);132513341326 assert_ok!(TemplateModule::transfer_from(1335 assert_ok!(TemplateModule::transfer_from(1327 origin1.clone(),1336 origin1.clone(),1328 1,1337 account(1),1329 2,1338 account(2),1330 1,1339 1,1331 1,1340 1,1332 11341 11381 false1390 false1382 ));1391 ));138313921384 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 2));1393 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(2)));138513941386 assert_ok!(TemplateModule::create_item(1395 assert_ok!(TemplateModule::create_item(1387 origin2.clone(),1396 origin2.clone(),1388 collection_id,1397 collection_id,1389 2,1398 account(2),1390 default_nft_data().into()1399 default_nft_data().into()1391 ));1400 ));1392 });1401 });1413 collection_id,1422 collection_id,1414 false1423 false1415 ));1424 ));1416 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1425 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));141714261418 assert_noop!(1427 assert_noop!(1419 TemplateModule::create_item(origin2.clone(), 1, 2, default_nft_data().into()),1428 TemplateModule::create_item(origin2.clone(), 1, account(2), default_nft_data().into()),1420 Error::<Test>::PublicMintingNotAllowed1429 Error::<Test>::PublicMintingNotAllowed1421 );1430 );1422 });1431 });1445 ));1454 ));144614551447 assert_noop!(1456 assert_noop!(1448 TemplateModule::create_item(origin2.clone(), 1, 2, default_nft_data().into()),1457 TemplateModule::create_item(origin2.clone(), 1, account(2), default_nft_data().into()),1449 Error::<Test>::PublicMintingNotAllowed1458 Error::<Test>::PublicMintingNotAllowed1450 );1459 );1451 });1460 });1499 true1508 true1500 ));1509 ));150115101502 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 2));1511 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(2)));150315121504 assert_ok!(TemplateModule::create_item(1513 assert_ok!(TemplateModule::create_item(1505 origin2.clone(),1514 origin2.clone(),1506 1,1515 1,1507 2,1516 account(2),1508 default_nft_data().into()1517 default_nft_data().into()1509 ));1518 ));1510 });1519 });1533 ));1542 ));153415431535 assert_noop!(1544 assert_noop!(1536 TemplateModule::create_item(origin2.clone(), 1, 2, default_nft_data().into()),1545 TemplateModule::create_item(origin2.clone(), 1, account(2), default_nft_data().into()),1537 Error::<Test>::AddresNotInWhiteList1546 Error::<Test>::AddresNotInWhiteList1538 );1547 );1539 });1548 });1560 collection_id,1569 collection_id,1561 true1570 true1562 ));1571 ));1563 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, 2));1572 assert_ok!(TemplateModule::add_to_white_list(origin1.clone(), collection_id, account(2)));156415731565 assert_ok!(TemplateModule::create_item(1574 assert_ok!(TemplateModule::create_item(1566 origin2.clone(),1575 origin2.clone(),1567 1,1576 1,1568 2,1577 account(2),1569 default_nft_data().into()1578 default_nft_data().into()1570 ));1579 ));1571 });1580 });1648 assert_noop!(TemplateModule::create_item(1657 assert_noop!(TemplateModule::create_item(1649 origin1.clone(),1658 origin1.clone(),1650 1,1659 1,1651 1,1660 account(1),1652 data.into()1661 data.into()1653 ), Error::<Test>::AddressOwnershipLimitExceeded);1662 ), Error::<Test>::AddressOwnershipLimitExceeded);1654 });1663 });167516841676 let origin1 = Origin::signed(1);1685 let origin1 = Origin::signed(1);1677 1686 1678 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 2));1687 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(2)));1679 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 3));1688 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(3)));1680 });1689 });1681}1690}16821691170117101702 let origin1 = Origin::signed(1);1711 let origin1 = Origin::signed(1);170317121704 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 2));1713 assert_ok!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(2)));1705 assert_noop!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, 3), Error::<Test>::CollectionAdminsLimitExceeded);1714 assert_noop!(TemplateModule::add_collection_admin(origin1.clone(), collection_id, account(3)), Error::<Test>::CollectionAdminsLimitExceeded);1706 });1715 });1707}1716}170817171734 assert_noop!(TemplateModule::create_item(1743 assert_noop!(TemplateModule::create_item(1735 origin1.clone(),1744 origin1.clone(),1736 collection_id,1745 collection_id,1737 1,1746 account(1),1738 too_big_const_data1747 too_big_const_data1739 ), Error::<Test>::TokenConstDataLimitExceeded);1748 ), Error::<Test>::TokenConstDataLimitExceeded);1740 });1749 });1768 assert_noop!(TemplateModule::create_item(1777 assert_noop!(TemplateModule::create_item(1769 origin1.clone(),1778 origin1.clone(),1770 collection_id,1779 collection_id,1771 1,1780 account(1),1772 too_big_const_data1781 too_big_const_data1773 ), Error::<Test>::TokenVariableDataLimitExceeded);1782 ), Error::<Test>::TokenVariableDataLimitExceeded);1774 });1783 });1802 assert_noop!(TemplateModule::create_item(1811 assert_noop!(TemplateModule::create_item(1803 origin1.clone(),1812 origin1.clone(),1804 collection_id,1813 collection_id,1805 1,1814 account(1),1806 too_big_const_data1815 too_big_const_data1807 ), Error::<Test>::TokenConstDataLimitExceeded);1816 ), Error::<Test>::TokenConstDataLimitExceeded);1808 });1817 });1836 assert_noop!(TemplateModule::create_item(1845 assert_noop!(TemplateModule::create_item(1837 origin1.clone(),1846 origin1.clone(),1838 collection_id,1847 collection_id,1839 1,1848 account(1),1840 too_big_const_data1849 too_big_const_data1841 ), Error::<Test>::TokenVariableDataLimitExceeded);1850 ), Error::<Test>::TokenVariableDataLimitExceeded);1842 });1851 });pallets/scheduler/src/lib.rsdiffbeforeafterboth887 type ScheduleOrigin = EnsureOneOf<u64, EnsureRoot<u64>, EnsureSignedBy<One, u64>>;887 type ScheduleOrigin = EnsureOneOf<u64, EnsureRoot<u64>, EnsureSignedBy<One, u64>>;888 type MaxScheduledPerBlock = MaxScheduledPerBlock;888 type MaxScheduledPerBlock = MaxScheduledPerBlock;889 type WeightInfo = ();889 type WeightInfo = ();890 type SponsorshipHandler = ();890 }891 }891892892 pub fn new_test_ext() -> sp_io::TestExternalities {893 pub fn new_test_ext() -> sp_io::TestExternalities {runtime/src/lib.rsdiffbeforeafterboth689 type Event = Event;689 type Event = Event;690 type WeightInfo = nft_weights::WeightInfo;690 type WeightInfo = nft_weights::WeightInfo;691691692 type EvmWithdrawOrigin = EnsureAddressTruncated;693 type EvmBackwardsAddressMapping = pallet_nft::MapBackwardsAddressTruncated;692 type EvmBackwardsAddressMapping = pallet_nft::MapBackwardsAddressTruncated;694 type EvmAddressMapping = HashedAddressMapping<Self::Hashing>;693 type EvmAddressMapping = HashedAddressMapping<Self::Hashing>;695 type CrossAccountId = pallet_nft::BasicCrossAccountId<Self>;694 type CrossAccountId = pallet_nft::BasicCrossAccountId<Self>;