difftreelog
test remove ChainLimits leftovers
in: master
8 files changed
pallets/nft/Cargo.tomldiffbeforeafterboth--- a/pallets/nft/Cargo.toml
+++ b/pallets/nft/Cargo.toml
@@ -41,6 +41,7 @@
'evm-coder/std',
'pallet-evm-coder-substrate/std',
]
+limit-testing = ["nft-data-structs/limit-testing"]
################################################################################
# Substrate Dependencies
pallets/nft/src/default_weights.rsdiffbeforeafterboth--- a/pallets/nft/src/default_weights.rs
+++ b/pallets/nft/src/default_weights.rs
@@ -117,11 +117,6 @@
.saturating_add(DbWeight::get().reads(2_u64))
.saturating_add(DbWeight::get().writes(1_u64))
}
- fn set_chain_limits() -> Weight {
- 1_300_000_u64
- .saturating_add(DbWeight::get().reads(0_u64))
- .saturating_add(DbWeight::get().writes(1_u64))
- }
fn set_contract_sponsoring_rate_limit() -> Weight {
3_500_000_u64
.saturating_add(DbWeight::get().reads(0_u64))
pallets/nft/src/lib.rsdiffbeforeafterboth--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -88,7 +88,6 @@
fn set_variable_meta_data() -> Weight;
fn enable_contract_sponsoring() -> Weight;
fn set_schema_version() -> Weight;
- fn set_chain_limits() -> Weight;
fn set_contract_sponsoring_rate_limit() -> Weight;
fn set_variable_meta_data_sponsoring_rate_limit() -> Weight;
fn toggle_contract_white_list() -> Weight;
@@ -1596,38 +1595,17 @@
) -> DispatchResult {
match target_collection.mode {
CollectionMode::NFT => {
- if let CreateItemData::NFT(data) = data {
- // check sizes
- ensure!(
- CUSTOM_DATA_LIMIT >= data.const_data.len() as u32,
- Error::<T>::TokenConstDataLimitExceeded
- );
- ensure!(
- CUSTOM_DATA_LIMIT >= data.variable_data.len() as u32,
- Error::<T>::TokenVariableDataLimitExceeded
- );
- } else {
+ if !matches!(data, CreateItemData::NFT(_)) {
fail!(Error::<T>::NotNftDataUsedToMintNftCollectionToken);
}
}
CollectionMode::Fungible(_) => {
- if let CreateItemData::Fungible(_) = data {
- } else {
+ if !matches!(data, CreateItemData::Fungible(_)) {
fail!(Error::<T>::NotFungibleDataUsedToMintFungibleCollectionToken);
}
}
CollectionMode::ReFungible => {
if let CreateItemData::ReFungible(data) = data {
- // check sizes
- ensure!(
- CUSTOM_DATA_LIMIT >= data.const_data.len() as u32,
- Error::<T>::TokenConstDataLimitExceeded
- );
- ensure!(
- CUSTOM_DATA_LIMIT >= data.variable_data.len() as u32,
- Error::<T>::TokenVariableDataLimitExceeded
- );
-
// Check refungibility limits
ensure!(
data.pieces <= MAX_REFUNGIBLE_PIECES,
pallets/nft/src/tests.rsdiffbeforeafterboth1// Tests to be written here1// Tests to be written here2use super::*;2use super::*;3use crate::mock::*;3use crate::mock::*;4use crate::{AccessMode, CollectionMode, Ownership, ChainLimits, CreateItemData};4use crate::{AccessMode, CollectionMode, Ownership, CreateItemData};5use nft_data_structs::{5use nft_data_structs::{6 CreateNftData, CreateFungibleData, CreateReFungibleData, CollectionId, TokenId,6 CreateNftData, CreateFungibleData, CreateReFungibleData, CollectionId, TokenId,7 MAX_DECIMAL_POINTS,7 MAX_DECIMAL_POINTS,8};8};9use frame_support::{assert_noop, assert_ok};9use frame_support::{assert_noop, assert_ok};10use frame_system::{RawOrigin};10use sp_std::convert::TryInto;111112fn default_collection_numbers_limit() -> u32 {13 1014}1516fn default_limits() {17 assert_ok!(TemplateModule::set_chain_limits(18 RawOrigin::Root.into(),19 ChainLimits {20 collection_numbers_limit: default_collection_numbers_limit(),21 account_token_ownership_limit: 10,22 collections_admins_limit: 5,23 custom_data_limit: 2048,24 nft_sponsor_transfer_timeout: 15,25 fungible_sponsor_transfer_timeout: 15,26 refungible_sponsor_transfer_timeout: 15,27 const_on_chain_schema_limit: 1024,28 offchain_schema_limit: 1024,29 variable_on_chain_schema_limit: 1024,30 }31 ));32}3334fn default_nft_data() -> CreateNftData {12fn default_nft_data() -> CreateNftData {35 CreateNftData {13 CreateNftData {36 const_data: vec![1, 2, 3],14 const_data: vec![1, 2, 3].try_into().unwrap(),37 variable_data: vec![3, 2, 1],15 variable_data: vec![3, 2, 1].try_into().unwrap(),38 }16 }39}17}4018442245fn default_re_fungible_data() -> CreateReFungibleData {23fn default_re_fungible_data() -> CreateReFungibleData {46 CreateReFungibleData {24 CreateReFungibleData {47 const_data: vec![1, 2, 3],25 const_data: vec![1, 2, 3].try_into().unwrap(),48 variable_data: vec![3, 2, 1],26 variable_data: vec![3, 2, 1].try_into().unwrap(),49 pieces: 1023,27 pieces: 1023,50 }28 }51}29}112#[test]90#[test]113fn set_version_schema() {91fn set_version_schema() {114 new_test_ext().execute_with(|| {92 new_test_ext().execute_with(|| {115 default_limits();116 let origin1 = Origin::signed(1);93 let origin1 = Origin::signed(1);117 let collection_id = create_test_collection(&CollectionMode::NFT, 1);94 let collection_id = create_test_collection(&CollectionMode::NFT, 1);11895133#[test]110#[test]134fn create_fungible_collection_fails_with_large_decimal_numbers() {111fn create_fungible_collection_fails_with_large_decimal_numbers() {135 new_test_ext().execute_with(|| {112 new_test_ext().execute_with(|| {136 default_limits();137138 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();113 let col_name1: Vec<u16> = "Test1\0".encode_utf16().collect::<Vec<u16>>();139 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();114 let col_desc1: Vec<u16> = "TestDescription1\0".encode_utf16().collect::<Vec<u16>>();140 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();115 let token_prefix1: Vec<u8> = b"token_prefix1\0".to_vec();156#[test]131#[test]157fn create_nft_item() {132fn create_nft_item() {158 new_test_ext().execute_with(|| {133 new_test_ext().execute_with(|| {159 default_limits();160 let collection_id = create_test_collection(&CollectionMode::NFT, 1);134 let collection_id = create_test_collection(&CollectionMode::NFT, 1);161135162 let data = default_nft_data();136 let data = default_nft_data();163 create_test_item(collection_id, &data.clone().into());137 create_test_item(collection_id, &data.clone().into());164 let item = TemplateModule::nft_item_id(collection_id, 1).unwrap();138 let item = TemplateModule::nft_item_id(collection_id, 1).unwrap();165 assert_eq!(item.const_data, data.const_data);139 assert_eq!(item.const_data, data.const_data.into_inner());166 assert_eq!(item.variable_data, data.variable_data);140 assert_eq!(item.variable_data, data.variable_data.into_inner());167 });141 });168}142}169143172#[test]146#[test]173fn create_nft_multiple_items() {147fn create_nft_multiple_items() {174 new_test_ext().execute_with(|| {148 new_test_ext().execute_with(|| {175 default_limits();176177 create_test_collection(&CollectionMode::NFT, 1);149 create_test_collection(&CollectionMode::NFT, 1);178150179 let origin1 = Origin::signed(1);151 let origin1 = Origin::signed(1);190 .map(|d| { d.into() })162 .map(|d| { d.into() })191 .collect()163 .collect()192 ));164 ));193 for (index, data) in items_data.iter().enumerate() {165 for (index, data) in items_data.into_iter().enumerate() {194 let item = TemplateModule::nft_item_id(1, (index + 1) as TokenId).unwrap();166 let item = TemplateModule::nft_item_id(1, (index + 1) as TokenId).unwrap();195 assert_eq!(item.const_data.to_vec(), data.const_data);167 assert_eq!(item.const_data.to_vec(), data.const_data.into_inner());196 assert_eq!(item.variable_data.to_vec(), data.variable_data);168 assert_eq!(item.variable_data.to_vec(), data.variable_data.into_inner());197 }169 }198 });170 });199}171}200172201#[test]173#[test]202fn create_refungible_item() {174fn create_refungible_item() {203 new_test_ext().execute_with(|| {175 new_test_ext().execute_with(|| {204 default_limits();205 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);176 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);206177207 let data = default_re_fungible_data();178 let data = default_re_fungible_data();208 create_test_item(collection_id, &data.clone().into());179 create_test_item(collection_id, &data.clone().into());209 let item = TemplateModule::refungible_item_id(collection_id, 1).unwrap();180 let item = TemplateModule::refungible_item_id(collection_id, 1).unwrap();210 assert_eq!(item.const_data, data.const_data);181 assert_eq!(item.const_data, data.const_data.into_inner());211 assert_eq!(item.variable_data, data.variable_data);182 assert_eq!(item.variable_data, data.variable_data.into_inner());212 assert_eq!(183 assert_eq!(213 item.owner[0],184 item.owner[0],214 Ownership {185 Ownership {222#[test]193#[test]223fn create_multiple_refungible_items() {194fn create_multiple_refungible_items() {224 new_test_ext().execute_with(|| {195 new_test_ext().execute_with(|| {225 default_limits();226227 create_test_collection(&CollectionMode::ReFungible, 1);196 create_test_collection(&CollectionMode::ReFungible, 1);228197229 let origin1 = Origin::signed(1);198 let origin1 = Origin::signed(1);244 .map(|d| { d.into() })213 .map(|d| { d.into() })245 .collect()214 .collect()246 ));215 ));247 for (index, data) in items_data.iter().enumerate() {216 for (index, data) in items_data.into_iter().enumerate() {248 let item = TemplateModule::refungible_item_id(1, (index + 1) as TokenId).unwrap();217 let item = TemplateModule::refungible_item_id(1, (index + 1) as TokenId).unwrap();249 assert_eq!(item.const_data.to_vec(), data.const_data);218 assert_eq!(item.const_data.to_vec(), data.const_data.into_inner());250 assert_eq!(item.variable_data.to_vec(), data.variable_data);219 assert_eq!(item.variable_data.to_vec(), data.variable_data.into_inner());251 assert_eq!(220 assert_eq!(252 item.owner[0],221 item.owner[0],253 Ownership {222 Ownership {262#[test]231#[test]263fn create_fungible_item() {232fn create_fungible_item() {264 new_test_ext().execute_with(|| {233 new_test_ext().execute_with(|| {265 default_limits();266267 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);234 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);268235269 let data = default_fungible_data();236 let data = default_fungible_data();302#[test]269#[test]303fn transfer_fungible_item() {270fn transfer_fungible_item() {304 new_test_ext().execute_with(|| {271 new_test_ext().execute_with(|| {305 default_limits();306307 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);272 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);308273309 let origin1 = Origin::signed(1);274 let origin1 = Origin::signed(1);344#[test]309#[test]345fn transfer_refungible_item() {310fn transfer_refungible_item() {346 new_test_ext().execute_with(|| {311 new_test_ext().execute_with(|| {347 default_limits();348349 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);312 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);350313351 let data = default_re_fungible_data();314 let data = default_re_fungible_data();355 let origin2 = Origin::signed(2);318 let origin2 = Origin::signed(2);356 {319 {357 let item = TemplateModule::refungible_item_id(collection_id, 1).unwrap();320 let item = TemplateModule::refungible_item_id(collection_id, 1).unwrap();358 assert_eq!(item.const_data, data.const_data);321 assert_eq!(item.const_data, data.const_data.into_inner());359 assert_eq!(item.variable_data, data.variable_data);322 assert_eq!(item.variable_data, data.variable_data.into_inner());360 assert_eq!(323 assert_eq!(361 item.owner[0],324 item.owner[0],362 Ownership {325 Ownership {441#[test]404#[test]442fn transfer_nft_item() {405fn transfer_nft_item() {443 new_test_ext().execute_with(|| {406 new_test_ext().execute_with(|| {444 default_limits();445446 let collection_id = create_test_collection(&CollectionMode::NFT, 1);407 let collection_id = create_test_collection(&CollectionMode::NFT, 1);447408448 let data = default_nft_data();409 let data = default_nft_data();464#[test]425#[test]465fn nft_approve_and_transfer_from() {426fn nft_approve_and_transfer_from() {466 new_test_ext().execute_with(|| {427 new_test_ext().execute_with(|| {467 default_limits();468469 let collection_id = create_test_collection(&CollectionMode::NFT, 1);428 let collection_id = create_test_collection(&CollectionMode::NFT, 1);470429471 let data = default_nft_data();430 let data = default_nft_data();503#[test]462#[test]504fn nft_approve_and_transfer_from_white_list() {463fn nft_approve_and_transfer_from_white_list() {505 new_test_ext().execute_with(|| {464 new_test_ext().execute_with(|| {506 default_limits();507508 let collection_id = create_test_collection(&CollectionMode::NFT, 1);465 let collection_id = create_test_collection(&CollectionMode::NFT, 1);509466510 let origin1 = Origin::signed(1);467 let origin1 = Origin::signed(1);514 create_test_item(collection_id, &data.clone().into());471 create_test_item(collection_id, &data.clone().into());515472516 assert_eq!(473 assert_eq!(517 TemplateModule::nft_item_id(1, 1).unwrap().const_data,474 &TemplateModule::nft_item_id(1, 1).unwrap().const_data,518 data.const_data475 &data.const_data.into_inner()519 );476 );520 assert_eq!(TemplateModule::balance_count(1, 1), 1);477 assert_eq!(TemplateModule::balance_count(1, 1), 1);521 assert_eq!(TemplateModule::address_tokens(1, 1), [1]);478 assert_eq!(TemplateModule::address_tokens(1, 1), [1]);573#[test]530#[test]574fn refungible_approve_and_transfer_from() {531fn refungible_approve_and_transfer_from() {575 new_test_ext().execute_with(|| {532 new_test_ext().execute_with(|| {576 default_limits();577578 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);533 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);579534580 let origin1 = Origin::signed(1);535 let origin1 = Origin::signed(1);636#[test]591#[test]637fn fungible_approve_and_transfer_from() {592fn fungible_approve_and_transfer_from() {638 new_test_ext().execute_with(|| {593 new_test_ext().execute_with(|| {639 default_limits();640641 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);594 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);642595643 let data = default_fungible_data();596 let data = default_fungible_data();710#[test]663#[test]711fn change_collection_owner() {664fn change_collection_owner() {712 new_test_ext().execute_with(|| {665 new_test_ext().execute_with(|| {713 default_limits();714715 let collection_id = create_test_collection(&CollectionMode::NFT, 1);666 let collection_id = create_test_collection(&CollectionMode::NFT, 1);716667717 let origin1 = Origin::signed(1);668 let origin1 = Origin::signed(1);730#[test]681#[test]731fn destroy_collection() {682fn destroy_collection() {732 new_test_ext().execute_with(|| {683 new_test_ext().execute_with(|| {733 default_limits();734735 let collection_id = create_test_collection(&CollectionMode::NFT, 1);684 let collection_id = create_test_collection(&CollectionMode::NFT, 1);736685737 let origin1 = Origin::signed(1);686 let origin1 = Origin::signed(1);742#[test]691#[test]743fn burn_nft_item() {692fn burn_nft_item() {744 new_test_ext().execute_with(|| {693 new_test_ext().execute_with(|| {745 default_limits();746747 let collection_id = create_test_collection(&CollectionMode::NFT, 1);694 let collection_id = create_test_collection(&CollectionMode::NFT, 1);748695749 let origin1 = Origin::signed(1);696 let origin1 = Origin::signed(1);773#[test]720#[test]774fn burn_fungible_item() {721fn burn_fungible_item() {775 new_test_ext().execute_with(|| {722 new_test_ext().execute_with(|| {776 default_limits();777778 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);723 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);779724780 let origin1 = Origin::signed(1);725 let origin1 = Origin::signed(1);804#[test]749#[test]805fn burn_refungible_item() {750fn burn_refungible_item() {806 new_test_ext().execute_with(|| {751 new_test_ext().execute_with(|| {807 default_limits();808809 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);752 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);810 let origin1 = Origin::signed(1);753 let origin1 = Origin::signed(1);811754851#[test]794#[test]852fn add_collection_admin() {795fn add_collection_admin() {853 new_test_ext().execute_with(|| {796 new_test_ext().execute_with(|| {854 default_limits();855856 let collection1_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1);797 let collection1_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1);857 create_test_collection_for_owner(&CollectionMode::NFT, 2, 2);798 create_test_collection_for_owner(&CollectionMode::NFT, 2, 2);858 create_test_collection_for_owner(&CollectionMode::NFT, 3, 3);799 create_test_collection_for_owner(&CollectionMode::NFT, 3, 3);879#[test]820#[test]880fn remove_collection_admin() {821fn remove_collection_admin() {881 new_test_ext().execute_with(|| {822 new_test_ext().execute_with(|| {882 default_limits();883884 let collection1_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1);823 let collection1_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1);885 create_test_collection_for_owner(&CollectionMode::NFT, 2, 2);824 create_test_collection_for_owner(&CollectionMode::NFT, 2, 2);886 create_test_collection_for_owner(&CollectionMode::NFT, 3, 3);825 create_test_collection_for_owner(&CollectionMode::NFT, 3, 3);916#[test]855#[test]917fn balance_of() {856fn balance_of() {918 new_test_ext().execute_with(|| {857 new_test_ext().execute_with(|| {919 default_limits();920921 let nft_collection_id = create_test_collection(&CollectionMode::NFT, 1);858 let nft_collection_id = create_test_collection(&CollectionMode::NFT, 1);922 let fungible_collection_id = create_test_collection(&CollectionMode::Fungible(3), 2);859 let fungible_collection_id = create_test_collection(&CollectionMode::Fungible(3), 2);923 let re_fungible_collection_id = create_test_collection(&CollectionMode::ReFungible, 3);860 let re_fungible_collection_id = create_test_collection(&CollectionMode::ReFungible, 3);969#[test]906#[test]970fn approve() {907fn approve() {971 new_test_ext().execute_with(|| {908 new_test_ext().execute_with(|| {972 default_limits();973974 let collection_id = create_test_collection(&CollectionMode::NFT, 1);909 let collection_id = create_test_collection(&CollectionMode::NFT, 1);975910976 let data = default_nft_data();911 let data = default_nft_data();987#[test]922#[test]988fn transfer_from() {923fn transfer_from() {989 new_test_ext().execute_with(|| {924 new_test_ext().execute_with(|| {990 default_limits();991992 let collection_id = create_test_collection(&CollectionMode::NFT, 1);925 let collection_id = create_test_collection(&CollectionMode::NFT, 1);993 let origin1 = Origin::signed(1);926 let origin1 = Origin::signed(1);994 let origin2 = Origin::signed(2);927 let origin2 = Origin::signed(2);1051#[test]984#[test]1052fn owner_can_add_address_to_white_list() {985fn owner_can_add_address_to_white_list() {1053 new_test_ext().execute_with(|| {986 new_test_ext().execute_with(|| {1054 default_limits();10551056 let collection_id = create_test_collection(&CollectionMode::NFT, 1);987 let collection_id = create_test_collection(&CollectionMode::NFT, 1);10579881058 let origin1 = Origin::signed(1);989 let origin1 = Origin::signed(1);1068#[test]999#[test]1069fn admin_can_add_address_to_white_list() {1000fn admin_can_add_address_to_white_list() {1070 new_test_ext().execute_with(|| {1001 new_test_ext().execute_with(|| {1071 default_limits();10721073 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1002 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1074 let origin1 = Origin::signed(1);1003 let origin1 = Origin::signed(1);1075 let origin2 = Origin::signed(2);1004 let origin2 = Origin::signed(2);1091#[test]1020#[test]1092fn nonprivileged_user_cannot_add_address_to_white_list() {1021fn nonprivileged_user_cannot_add_address_to_white_list() {1093 new_test_ext().execute_with(|| {1022 new_test_ext().execute_with(|| {1094 default_limits();10951096 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1023 let collection_id = create_test_collection(&CollectionMode::NFT, 1);109710241098 let origin2 = Origin::signed(2);1025 let origin2 = Origin::signed(2);1106#[test]1033#[test]1107fn nobody_can_add_address_to_white_list_of_nonexisting_collection() {1034fn nobody_can_add_address_to_white_list_of_nonexisting_collection() {1108 new_test_ext().execute_with(|| {1035 new_test_ext().execute_with(|| {1109 default_limits();11101111 let origin1 = Origin::signed(1);1036 let origin1 = Origin::signed(1);111210371113 assert_noop!(1038 assert_noop!(1120#[test]1045#[test]1121fn nobody_can_add_address_to_white_list_of_deleted_collection() {1046fn nobody_can_add_address_to_white_list_of_deleted_collection() {1122 new_test_ext().execute_with(|| {1047 new_test_ext().execute_with(|| {1123 default_limits();11241125 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1048 let collection_id = create_test_collection(&CollectionMode::NFT, 1);112610491127 let origin1 = Origin::signed(1);1050 let origin1 = Origin::signed(1);1140#[test]1063#[test]1141fn address_is_already_added_to_white_list() {1064fn address_is_already_added_to_white_list() {1142 new_test_ext().execute_with(|| {1065 new_test_ext().execute_with(|| {1143 default_limits();11441145 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1066 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1146 let origin1 = Origin::signed(1);1067 let origin1 = Origin::signed(1);114710681162#[test]1083#[test]1163fn owner_can_remove_address_from_white_list() {1084fn owner_can_remove_address_from_white_list() {1164 new_test_ext().execute_with(|| {1085 new_test_ext().execute_with(|| {1165 default_limits();11661167 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1086 let collection_id = create_test_collection(&CollectionMode::NFT, 1);116810871169 let origin1 = Origin::signed(1);1088 let origin1 = Origin::signed(1);1184#[test]1103#[test]1185fn admin_can_remove_address_from_white_list() {1104fn admin_can_remove_address_from_white_list() {1186 new_test_ext().execute_with(|| {1105 new_test_ext().execute_with(|| {1187 default_limits();11881189 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1106 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1190 let origin1 = Origin::signed(1);1107 let origin1 = Origin::signed(1);1191 let origin2 = Origin::signed(2);1108 let origin2 = Origin::signed(2);1213#[test]1130#[test]1214fn nonprivileged_user_cannot_remove_address_from_white_list() {1131fn nonprivileged_user_cannot_remove_address_from_white_list() {1215 new_test_ext().execute_with(|| {1132 new_test_ext().execute_with(|| {1216 default_limits();12171218 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1133 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1219 let origin1 = Origin::signed(1);1134 let origin1 = Origin::signed(1);1220 let origin2 = Origin::signed(2);1135 let origin2 = Origin::signed(2);1235#[test]1150#[test]1236fn nobody_can_remove_address_from_white_list_of_nonexisting_collection() {1151fn nobody_can_remove_address_from_white_list_of_nonexisting_collection() {1237 new_test_ext().execute_with(|| {1152 new_test_ext().execute_with(|| {1238 default_limits();1239 let origin1 = Origin::signed(1);1153 let origin1 = Origin::signed(1);124011541241 assert_noop!(1155 assert_noop!(1248#[test]1162#[test]1249fn nobody_can_remove_address_from_white_list_of_deleted_collection() {1163fn nobody_can_remove_address_from_white_list_of_deleted_collection() {1250 new_test_ext().execute_with(|| {1164 new_test_ext().execute_with(|| {1251 default_limits();12521253 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1165 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1254 let origin1 = Origin::signed(1);1166 let origin1 = Origin::signed(1);1255 let origin2 = Origin::signed(2);1167 let origin2 = Origin::signed(2);1272#[test]1184#[test]1273fn address_is_already_removed_from_white_list() {1185fn address_is_already_removed_from_white_list() {1274 new_test_ext().execute_with(|| {1186 new_test_ext().execute_with(|| {1275 default_limits();12761277 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1187 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1278 let origin1 = Origin::signed(1);1188 let origin1 = Origin::signed(1);127911891300#[test]1210#[test]1301fn white_list_test_1() {1211fn white_list_test_1() {1302 new_test_ext().execute_with(|| {1212 new_test_ext().execute_with(|| {1303 default_limits();13041305 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1213 let collection_id = create_test_collection(&CollectionMode::NFT, 1);130612141307 let origin1 = Origin::signed(1);1215 let origin1 = Origin::signed(1);1330#[test]1238#[test]1331fn white_list_test_2() {1239fn white_list_test_2() {1332 new_test_ext().execute_with(|| {1240 new_test_ext().execute_with(|| {1333 default_limits();13341335 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1241 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1336 let origin1 = Origin::signed(1);1242 let origin1 = Origin::signed(1);133712431381#[test]1287#[test]1382fn white_list_test_3() {1288fn white_list_test_3() {1383 new_test_ext().execute_with(|| {1289 new_test_ext().execute_with(|| {1384 default_limits();13851386 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1290 let collection_id = create_test_collection(&CollectionMode::NFT, 1);138712911388 let origin1 = Origin::signed(1);1292 let origin1 = Origin::signed(1);1411#[test]1315#[test]1412fn white_list_test_4() {1316fn white_list_test_4() {1413 new_test_ext().execute_with(|| {1317 new_test_ext().execute_with(|| {1414 default_limits();14151416 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1318 let collection_id = create_test_collection(&CollectionMode::NFT, 1);141713191418 let origin1 = Origin::signed(1);1320 let origin1 = Origin::signed(1);1463#[test]1365#[test]1464fn white_list_test_5() {1366fn white_list_test_5() {1465 new_test_ext().execute_with(|| {1367 new_test_ext().execute_with(|| {1466 default_limits();14671468 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1368 let collection_id = create_test_collection(&CollectionMode::NFT, 1);146913691470 let origin1 = Origin::signed(1);1370 let origin1 = Origin::signed(1);1488#[test]1388#[test]1489fn white_list_test_6() {1389fn white_list_test_6() {1490 new_test_ext().execute_with(|| {1390 new_test_ext().execute_with(|| {1491 default_limits();14921493 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1391 let collection_id = create_test_collection(&CollectionMode::NFT, 1);149413921495 let origin1 = Origin::signed(1);1393 let origin1 = Origin::signed(1);1516#[test]1414#[test]1517fn white_list_test_7() {1415fn white_list_test_7() {1518 new_test_ext().execute_with(|| {1416 new_test_ext().execute_with(|| {1519 default_limits();15201521 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1417 let collection_id = create_test_collection(&CollectionMode::NFT, 1);152214181523 let data = default_nft_data();1419 let data = default_nft_data();1548#[test]1444#[test]1549fn white_list_test_8() {1445fn white_list_test_8() {1550 new_test_ext().execute_with(|| {1446 new_test_ext().execute_with(|| {1551 default_limits();15521553 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1447 let collection_id = create_test_collection(&CollectionMode::NFT, 1);155414481555 let data = default_nft_data();1449 let data = default_nft_data();1598#[test]1492#[test]1599fn white_list_test_9() {1493fn white_list_test_9() {1600 new_test_ext().execute_with(|| {1494 new_test_ext().execute_with(|| {1601 default_limits();16021603 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1495 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1604 let origin1 = Origin::signed(1);1496 let origin1 = Origin::signed(1);160514971623#[test]1515#[test]1624fn white_list_test_10() {1516fn white_list_test_10() {1625 new_test_ext().execute_with(|| {1517 new_test_ext().execute_with(|| {1626 default_limits();16271628 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1518 let collection_id = create_test_collection(&CollectionMode::NFT, 1);162915191630 let origin1 = Origin::signed(1);1520 let origin1 = Origin::signed(1);1660#[test]1550#[test]1661fn white_list_test_11() {1551fn white_list_test_11() {1662 new_test_ext().execute_with(|| {1552 new_test_ext().execute_with(|| {1663 default_limits();16641665 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1553 let collection_id = create_test_collection(&CollectionMode::NFT, 1);166615541667 let origin1 = Origin::signed(1);1555 let origin1 = Origin::signed(1);1694#[test]1582#[test]1695fn white_list_test_12() {1583fn white_list_test_12() {1696 new_test_ext().execute_with(|| {1584 new_test_ext().execute_with(|| {1697 default_limits();16981699 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1585 let collection_id = create_test_collection(&CollectionMode::NFT, 1);170015861701 let origin1 = Origin::signed(1);1587 let origin1 = Origin::signed(1);1723#[test]1609#[test]1724fn white_list_test_13() {1610fn white_list_test_13() {1725 new_test_ext().execute_with(|| {1611 new_test_ext().execute_with(|| {1726 default_limits();17271728 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1612 let collection_id = create_test_collection(&CollectionMode::NFT, 1);172916131730 let origin1 = Origin::signed(1);1614 let origin1 = Origin::signed(1);1749#[test]1633#[test]1750fn white_list_test_14() {1634fn white_list_test_14() {1751 new_test_ext().execute_with(|| {1635 new_test_ext().execute_with(|| {1752 default_limits();17531754 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1636 let collection_id = create_test_collection(&CollectionMode::NFT, 1);175516371756 let origin1 = Origin::signed(1);1638 let origin1 = Origin::signed(1);1786#[test]1668#[test]1787fn white_list_test_15() {1669fn white_list_test_15() {1788 new_test_ext().execute_with(|| {1670 new_test_ext().execute_with(|| {1789 default_limits();17901791 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1671 let collection_id = create_test_collection(&CollectionMode::NFT, 1);179216721793 let origin1 = Origin::signed(1);1673 let origin1 = Origin::signed(1);1815#[test]1695#[test]1816fn white_list_test_16() {1696fn white_list_test_16() {1817 new_test_ext().execute_with(|| {1697 new_test_ext().execute_with(|| {1818 default_limits();18191820 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1698 let collection_id = create_test_collection(&CollectionMode::NFT, 1);182116991822 let origin1 = Origin::signed(1);1700 let origin1 = Origin::signed(1);1851#[test]1729#[test]1852fn total_number_collections_bound() {1730fn total_number_collections_bound() {1853 new_test_ext().execute_with(|| {1731 new_test_ext().execute_with(|| {1854 default_limits();18551856 create_test_collection(&CollectionMode::NFT, 1);1732 create_test_collection(&CollectionMode::NFT, 1);1857 });1733 });1858}1734}1861#[test]1737#[test]1862fn total_number_collections_bound_neg() {1738fn total_number_collections_bound_neg() {1863 new_test_ext().execute_with(|| {1739 new_test_ext().execute_with(|| {1864 default_limits();18651866 let origin1 = Origin::signed(1);1740 let origin1 = Origin::signed(1);186717411868 for i in 0..default_collection_numbers_limit() {1742 for i in 0..COLLECTION_NUMBER_LIMIT {1869 create_test_collection(&CollectionMode::NFT, i + 1);1743 create_test_collection(&CollectionMode::NFT, i + 1);1870 }1744 }187117451891#[test]1765#[test]1892fn owned_tokens_bound() {1766fn owned_tokens_bound() {1893 new_test_ext().execute_with(|| {1767 new_test_ext().execute_with(|| {1894 default_limits();18951896 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1768 let collection_id = create_test_collection(&CollectionMode::NFT, 1);189717691898 let data = default_nft_data();1770 let data = default_nft_data();1905#[test]1777#[test]1906fn owned_tokens_bound_neg() {1778fn owned_tokens_bound_neg() {1907 new_test_ext().execute_with(|| {1779 new_test_ext().execute_with(|| {1908 assert_ok!(TemplateModule::set_chain_limits(1909 RawOrigin::Root.into(),1910 ChainLimits {1911 collection_numbers_limit: 10,1912 account_token_ownership_limit: 1,1913 collections_admins_limit: 5,1914 custom_data_limit: 2048,1915 nft_sponsor_transfer_timeout: 15,1916 fungible_sponsor_transfer_timeout: 15,1917 refungible_sponsor_transfer_timeout: 15,1918 const_on_chain_schema_limit: 1024,1919 offchain_schema_limit: 1024,1920 variable_on_chain_schema_limit: 1024,1921 }1922 ));19231924 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1780 let collection_id = create_test_collection(&CollectionMode::NFT, 1);192517811926 let origin1 = Origin::signed(1);1782 let origin1 = Origin::signed(1);1927 let data = default_nft_data();1928 create_test_item(collection_id, &data.clone().into());192917831784 for _ in 0..ACCOUNT_TOKEN_OWNERSHIP_LIMIT {1785 let data = default_nft_data();1786 create_test_item(collection_id, &data.clone().into());1787 }17881789 let data = default_nft_data();1930 assert_noop!(1790 assert_noop!(1931 TemplateModule::create_item(origin1, 1, account(1), data.into()),1791 TemplateModule::create_item(origin1, 1, account(1), data.into()),1932 Error::<Test>::AddressOwnershipLimitExceeded1792 Error::<Test>::AddressOwnershipLimitExceeded1938#[test]1798#[test]1939fn collection_admins_bound() {1799fn collection_admins_bound() {1940 new_test_ext().execute_with(|| {1800 new_test_ext().execute_with(|| {1941 assert_ok!(TemplateModule::set_chain_limits(1942 RawOrigin::Root.into(),1943 ChainLimits {1944 collection_numbers_limit: 10,1945 account_token_ownership_limit: 10,1946 collections_admins_limit: 2,1947 custom_data_limit: 2048,1948 nft_sponsor_transfer_timeout: 15,1949 fungible_sponsor_transfer_timeout: 15,1950 refungible_sponsor_transfer_timeout: 15,1951 const_on_chain_schema_limit: 1024,1952 offchain_schema_limit: 1024,1953 variable_on_chain_schema_limit: 1024,1954 }1955 ));19561957 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1801 let collection_id = create_test_collection(&CollectionMode::NFT, 1);195818021959 let origin1 = Origin::signed(1);1803 let origin1 = Origin::signed(1);1975#[test]1819#[test]1976fn collection_admins_bound_neg() {1820fn collection_admins_bound_neg() {1977 new_test_ext().execute_with(|| {1821 new_test_ext().execute_with(|| {1978 assert_ok!(TemplateModule::set_chain_limits(1979 RawOrigin::Root.into(),1980 ChainLimits {1981 collection_numbers_limit: 10,1982 account_token_ownership_limit: 1,1983 collections_admins_limit: 1,1984 custom_data_limit: 2048,1985 nft_sponsor_transfer_timeout: 15,1986 fungible_sponsor_transfer_timeout: 15,1987 refungible_sponsor_transfer_timeout: 15,1988 const_on_chain_schema_limit: 1024,1989 offchain_schema_limit: 1024,1990 variable_on_chain_schema_limit: 1024,1991 }1992 ));19931994 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1822 let collection_id = create_test_collection(&CollectionMode::NFT, 1);199518231996 let origin1 = Origin::signed(1);1824 let origin1 = Origin::signed(1);199718251998 assert_ok!(TemplateModule::add_collection_admin(1826 for i in 0..COLLECTION_ADMINS_LIMIT {1827 assert_ok!(TemplateModule::add_collection_admin(1999 origin1.clone(),1828 origin1.clone(),2000 collection_id,1829 collection_id,2001 account(2)1830 account(2 + i)2002 ));1831 ));1832 }2003 assert_noop!(1833 assert_noop!(2004 TemplateModule::add_collection_admin(origin1, collection_id, account(3)),1834 TemplateModule::add_collection_admin(origin1, collection_id, account(3 + COLLECTION_ADMINS_LIMIT)),2005 Error::<Test>::CollectionAdminsLimitExceeded1835 Error::<Test>::CollectionAdminsLimitExceeded2006 );1836 );2007 });1837 });2008}1838}20092010// NFT custom data size. Negative test const_data.2011#[test]2012fn custom_data_size_nft_const_data_bound_neg() {2013 new_test_ext().execute_with(|| {2014 assert_ok!(TemplateModule::set_chain_limits(2015 RawOrigin::Root.into(),2016 ChainLimits {2017 collection_numbers_limit: 10,2018 account_token_ownership_limit: 10,2019 collections_admins_limit: 5,2020 custom_data_limit: 2,2021 nft_sponsor_transfer_timeout: 15,2022 fungible_sponsor_transfer_timeout: 15,2023 refungible_sponsor_transfer_timeout: 15,2024 const_on_chain_schema_limit: 1024,2025 offchain_schema_limit: 1024,2026 variable_on_chain_schema_limit: 1024,2027 }2028 ));20292030 let collection_id = create_test_collection(&CollectionMode::NFT, 1);20312032 let origin1 = Origin::signed(1);2033 let too_big_const_data = CreateItemData::NFT(CreateNftData {2034 const_data: vec![1, 2, 3, 4],2035 variable_data: vec![],2036 });20372038 assert_noop!(2039 TemplateModule::create_item(origin1, collection_id, account(1), too_big_const_data),2040 Error::<Test>::TokenConstDataLimitExceeded2041 );2042 });2043}20442045// NFT custom data size. Negative test variable_data.2046#[test]2047fn custom_data_size_nft_variable_data_bound_neg() {2048 new_test_ext().execute_with(|| {2049 assert_ok!(TemplateModule::set_chain_limits(2050 RawOrigin::Root.into(),2051 ChainLimits {2052 collection_numbers_limit: 10,2053 account_token_ownership_limit: 10,2054 collections_admins_limit: 5,2055 custom_data_limit: 2,2056 nft_sponsor_transfer_timeout: 15,2057 fungible_sponsor_transfer_timeout: 15,2058 refungible_sponsor_transfer_timeout: 15,2059 const_on_chain_schema_limit: 1024,2060 offchain_schema_limit: 1024,2061 variable_on_chain_schema_limit: 1024,2062 }2063 ));20642065 let collection_id = create_test_collection(&CollectionMode::NFT, 1);20662067 let origin1 = Origin::signed(1);2068 let too_big_const_data = CreateItemData::NFT(CreateNftData {2069 const_data: vec![],2070 variable_data: vec![1, 2, 3, 4],2071 });20722073 assert_noop!(2074 TemplateModule::create_item(origin1, collection_id, account(1), too_big_const_data),2075 Error::<Test>::TokenVariableDataLimitExceeded2076 );2077 });2078}20792080// Re fungible custom data size. Negative test const_data.2081#[test]2082fn custom_data_size_re_fungible_const_data_bound_neg() {2083 new_test_ext().execute_with(|| {2084 assert_ok!(TemplateModule::set_chain_limits(2085 RawOrigin::Root.into(),2086 ChainLimits {2087 collection_numbers_limit: 10,2088 account_token_ownership_limit: 10,2089 collections_admins_limit: 5,2090 custom_data_limit: 2,2091 nft_sponsor_transfer_timeout: 15,2092 fungible_sponsor_transfer_timeout: 15,2093 refungible_sponsor_transfer_timeout: 15,2094 const_on_chain_schema_limit: 1024,2095 offchain_schema_limit: 1024,2096 variable_on_chain_schema_limit: 1024,2097 }2098 ));20992100 let collection_id = create_test_collection(&CollectionMode::NFT, 1);21012102 let origin1 = Origin::signed(1);2103 let too_big_const_data = CreateItemData::NFT(CreateNftData {2104 const_data: vec![1, 2, 3, 4],2105 variable_data: vec![],2106 });21072108 assert_noop!(2109 TemplateModule::create_item(origin1, collection_id, account(1), too_big_const_data),2110 Error::<Test>::TokenConstDataLimitExceeded2111 );2112 });2113}21142115// Re fungible custom data size. Negative test variable_data.2116#[test]2117fn custom_data_size_re_fungible_variable_data_bound_neg() {2118 new_test_ext().execute_with(|| {2119 assert_ok!(TemplateModule::set_chain_limits(2120 RawOrigin::Root.into(),2121 ChainLimits {2122 collection_numbers_limit: 10,2123 account_token_ownership_limit: 10,2124 collections_admins_limit: 5,2125 custom_data_limit: 2,2126 nft_sponsor_transfer_timeout: 15,2127 fungible_sponsor_transfer_timeout: 15,2128 refungible_sponsor_transfer_timeout: 15,2129 const_on_chain_schema_limit: 1024,2130 offchain_schema_limit: 1024,2131 variable_on_chain_schema_limit: 1024,2132 }2133 ));21342135 let collection_id = create_test_collection(&CollectionMode::NFT, 1);21362137 let origin1 = Origin::signed(1);2138 let too_big_const_data = CreateItemData::NFT(CreateNftData {2139 const_data: vec![],2140 variable_data: vec![1, 2, 3, 4],2141 });21422143 assert_noop!(2144 TemplateModule::create_item(origin1, collection_id, account(1), too_big_const_data),2145 Error::<Test>::TokenVariableDataLimitExceeded2146 );2147 });2148}2149// #endregion1839// #endregion215018402151#[test]1841#[test]2152fn set_const_on_chain_schema() {1842fn set_const_on_chain_schema() {2153 new_test_ext().execute_with(|| {1843 new_test_ext().execute_with(|| {2154 default_limits();21552156 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1844 let collection_id = create_test_collection(&CollectionMode::NFT, 1);215718452158 let origin1 = Origin::signed(1);1846 let origin1 = Origin::signed(1);2180#[test]1868#[test]2181fn set_variable_on_chain_schema() {1869fn set_variable_on_chain_schema() {2182 new_test_ext().execute_with(|| {1870 new_test_ext().execute_with(|| {2183 default_limits();21842185 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1871 let collection_id = create_test_collection(&CollectionMode::NFT, 1);218618722187 let origin1 = Origin::signed(1);1873 let origin1 = Origin::signed(1);2209#[test]1895#[test]2210fn set_variable_meta_data_on_nft_token_stores_variable_meta_data() {1896fn set_variable_meta_data_on_nft_token_stores_variable_meta_data() {2211 new_test_ext().execute_with(|| {1897 new_test_ext().execute_with(|| {2212 default_limits();22132214 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1898 let collection_id = create_test_collection(&CollectionMode::NFT, 1);221518992216 let origin1 = Origin::signed(1);1900 let origin1 = Origin::signed(1);221719012218 let data = default_nft_data();1902 let data = default_nft_data();2219 create_test_item(1, &data.into());1903 create_test_item(1, &data.into());222019042221 let variable_data = b"test set_variable_meta_data method.".to_vec();1905 let variable_data = b"test data".to_vec();2222 assert_ok!(TemplateModule::set_variable_meta_data(1906 assert_ok!(TemplateModule::set_variable_meta_data(2223 origin1,1907 origin1,2224 collection_id,1908 collection_id,2238#[test]1922#[test]2239fn set_variable_meta_data_on_re_fungible_token_stores_variable_meta_data() {1923fn set_variable_meta_data_on_re_fungible_token_stores_variable_meta_data() {2240 new_test_ext().execute_with(|| {1924 new_test_ext().execute_with(|| {2241 default_limits();22422243 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);1925 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);224419262245 let origin1 = Origin::signed(1);1927 let origin1 = Origin::signed(1);224619282247 let data = default_re_fungible_data();1929 let data = default_re_fungible_data();2248 create_test_item(1, &data.into());1930 create_test_item(1, &data.into());224919312250 let variable_data = b"test set_variable_meta_data method.".to_vec();1932 let variable_data = b"test data".to_vec();2251 assert_ok!(TemplateModule::set_variable_meta_data(1933 assert_ok!(TemplateModule::set_variable_meta_data(2252 origin1,1934 origin1,2253 collection_id,1935 collection_id,2267#[test]1949#[test]2268fn set_variable_meta_data_on_fungible_token_fails() {1950fn set_variable_meta_data_on_fungible_token_fails() {2269 new_test_ext().execute_with(|| {1951 new_test_ext().execute_with(|| {2270 default_limits();22712272 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);1952 let collection_id = create_test_collection(&CollectionMode::Fungible(3), 1);227319532274 let origin1 = Origin::signed(1);1954 let origin1 = Origin::signed(1);227519552276 let data = default_fungible_data();1956 let data = default_fungible_data();2277 create_test_item(1, &data.into());1957 create_test_item(1, &data.into());227819582279 let variable_data = b"test set_variable_meta_data method.".to_vec();1959 let variable_data = b"test data".to_vec();2280 assert_noop!(1960 assert_noop!(2281 TemplateModule::set_variable_meta_data(origin1, collection_id, 1, variable_data),1961 TemplateModule::set_variable_meta_data(origin1, collection_id, 1, variable_data),2282 Error::<Test>::CantStoreMetadataInFungibleTokens1962 Error::<Test>::CantStoreMetadataInFungibleTokens2287#[test]1967#[test]2288fn set_variable_meta_data_on_nft_token_fails_for_big_data() {1968fn set_variable_meta_data_on_nft_token_fails_for_big_data() {2289 new_test_ext().execute_with(|| {1969 new_test_ext().execute_with(|| {2290 assert_ok!(TemplateModule::set_chain_limits(2291 RawOrigin::Root.into(),2292 ChainLimits {2293 collection_numbers_limit: default_collection_numbers_limit(),2294 account_token_ownership_limit: 10,2295 collections_admins_limit: 5,2296 custom_data_limit: 10,2297 nft_sponsor_transfer_timeout: 15,2298 fungible_sponsor_transfer_timeout: 15,2299 refungible_sponsor_transfer_timeout: 15,2300 const_on_chain_schema_limit: 1024,2301 offchain_schema_limit: 1024,2302 variable_on_chain_schema_limit: 1024,2303 }2304 ));23052306 let collection_id = create_test_collection(&CollectionMode::NFT, 1);1970 let collection_id = create_test_collection(&CollectionMode::NFT, 1);230719712308 let origin1 = Origin::signed(1);1972 let origin1 = Origin::signed(1);2321#[test]1985#[test]2322fn set_variable_meta_data_on_re_fungible_token_fails_for_big_data() {1986fn set_variable_meta_data_on_re_fungible_token_fails_for_big_data() {2323 new_test_ext().execute_with(|| {1987 new_test_ext().execute_with(|| {2324 assert_ok!(TemplateModule::set_chain_limits(2325 RawOrigin::Root.into(),2326 ChainLimits {2327 collection_numbers_limit: default_collection_numbers_limit(),2328 account_token_ownership_limit: 10,2329 collections_admins_limit: 5,2330 custom_data_limit: 10,2331 nft_sponsor_transfer_timeout: 15,2332 fungible_sponsor_transfer_timeout: 15,2333 refungible_sponsor_transfer_timeout: 15,2334 const_on_chain_schema_limit: 1024,2335 offchain_schema_limit: 1024,2336 variable_on_chain_schema_limit: 1024,2337 }2338 ));23392340 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);1988 let collection_id = create_test_collection(&CollectionMode::ReFungible, 1);234119892342 let origin1 = Origin::signed(1);1990 let origin1 = Origin::signed(1);2355#[test]2003#[test]2356fn collection_transfer_flag_works() {2004fn collection_transfer_flag_works() {2357 new_test_ext().execute_with(|| {2005 new_test_ext().execute_with(|| {2358 default_limits();23592360 let origin1 = Origin::signed(1);2006 let origin1 = Origin::signed(1);236120072362 let collection_id = create_test_collection(&CollectionMode::NFT, 1);2008 let collection_id = create_test_collection(&CollectionMode::NFT, 1);2382#[test]2028#[test]2383fn collection_transfer_flag_works_neg() {2029fn collection_transfer_flag_works_neg() {2384 new_test_ext().execute_with(|| {2030 new_test_ext().execute_with(|| {2385 default_limits();23862387 let origin1 = Origin::signed(1);2031 let origin1 = Origin::signed(1);238820322389 let collection_id = create_test_collection(&CollectionMode::NFT, 1);2033 let collection_id = create_test_collection(&CollectionMode::NFT, 1);primitives/nft/Cargo.tomldiffbeforeafterboth--- a/primitives/nft/Cargo.toml
+++ b/primitives/nft/Cargo.toml
@@ -32,4 +32,5 @@
"sp-core/std",
"sp-std/std",
]
-serde1 = ["serde"]
\ No newline at end of file
+serde1 = ["serde"]
+limit-testing = []
\ No newline at end of file
primitives/nft/src/lib.rsdiffbeforeafterboth--- a/primitives/nft/src/lib.rs
+++ b/primitives/nft/src/lib.rs
@@ -28,10 +28,10 @@
pub const MAX_SPONSOR_TIMEOUT: u32 = 10_368_000;
pub const MAX_TOKEN_OWNERSHIP: u32 = 10_000_000;
-pub const COLLECTION_NUMBER_LIMIT: u32 = 100000;
-pub const CUSTOM_DATA_LIMIT: u32 = 2048;
+pub const COLLECTION_NUMBER_LIMIT: u32 = if cfg!(not(feature = "limit-testing")) { 100000 } else { 10 };
+pub const CUSTOM_DATA_LIMIT: u32 = if cfg!(not(feature = "limit-testing")) { 2048 } else { 10 };
pub const COLLECTION_ADMINS_LIMIT: u64 = 5;
-pub const ACCOUNT_TOKEN_OWNERSHIP_LIMIT: u32 = 1000000;
+pub const ACCOUNT_TOKEN_OWNERSHIP_LIMIT: u32 = if cfg!(not(feature = "limit-testing")) { 1000000 } else { 10 };
// Timeouts for item types in passed blocks
pub const NFT_SPONSOR_TRANSFER_TIMEOUT: u32 = 5;
runtime/Cargo.tomldiffbeforeafterboth--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -85,6 +85,10 @@
'xcm-builder/std',
'xcm-executor/std',
]
+limit-testing = [
+ 'pallet-nft/limit-testing',
+ 'nft-data-structs/limit-testing',
+]
################################################################################
# Substrate Dependencies
runtime/src/nft_weights.rsdiffbeforeafterboth--- a/runtime/src/nft_weights.rs
+++ b/runtime/src/nft_weights.rs
@@ -123,11 +123,6 @@
.saturating_add(DbWeight::get().reads(2_u64))
.saturating_add(DbWeight::get().writes(1_u64))
}
- fn set_chain_limits() -> Weight {
- 1_300_000_u64
- .saturating_add(DbWeight::get().reads(0_u64))
- .saturating_add(DbWeight::get().writes(1_u64))
- }
fn set_contract_sponsoring_rate_limit() -> Weight {
3_500_000_u64
.saturating_add(DbWeight::get().reads(0_u64))