--- a/pallets/nft/src/benchmarking.rs +++ b/pallets/nft/src/benchmarking.rs @@ -142,7 +142,22 @@ let caller: T::AccountId = T::AccountId::from(whitelisted_caller()); Nft::::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?; - }: create_item(RawOrigin::Signed(caller.clone()), 2, [1, 2, 3].to_vec(), caller.clone()) + }: create_item(RawOrigin::Signed(caller.clone()), 2, [1,2,3].to_vec(), caller.clone()) + + #[extra] + create_item_nft_large { + let col_name1: Vec = "Test1".encode_utf16().collect::>(); + let col_desc1: Vec = "TestDescription1".encode_utf16().collect::>(); + let token_prefix1: Vec = b"token_prefix1".to_vec(); + let mode: CollectionMode = CollectionMode::NFT(2000); + let caller: T::AccountId = T::AccountId::from(whitelisted_caller()); + let mut item_large: Vec = Vec::new(); + for i in 0..1998 { + item_large.push(10); + } + Nft::::create_collection(RawOrigin::Signed(caller.clone()).into(), col_name1.clone(), col_desc1.clone(), token_prefix1.clone(), mode.clone())?; + + }: create_item(RawOrigin::Signed(caller.clone()), 2, item_large, caller.clone()) // fungible item create_item_fungible { --- a/pallets/nft/src/lib.rs +++ b/pallets/nft/src/lib.rs @@ -785,6 +785,7 @@ /// * owner: Address, initial owner of the NFT. #[weight = (130_000_000 as Weight) + .saturating_add((2135 as Weight).saturating_mul((properties.len() as u64) as Weight)) .saturating_add(RocksDbWeight::get().reads(10 as Weight)) .saturating_add(RocksDbWeight::get().writes(8 as Weight))] pub fn create_item(origin, collection_id: u64, properties: Vec, owner: T::AccountId) -> DispatchResult {