From 5c9b347b87d5a5c5677a5727bd3894c003914e1b Mon Sep 17 00:00:00 2001 From: Daniel Shiposha Date: Thu, 09 Jun 2022 23:10:44 +0000 Subject: [PATCH] feat(rmrk): benchmark adding resources --- --- a/pallets/proxy-rmrk-core/src/benchmarking.rs +++ b/pallets/proxy-rmrk-core/src/benchmarking.rs @@ -18,10 +18,41 @@ vec![b'A'; S::get() as usize].try_into().expect("size == S") } -fn create_priorities>() -> BoundedVec { +fn create_u32_array>() -> BoundedVec { vec![0; S::get() as usize].try_into().expect("size == S") } +fn create_basic_resource() -> RmrkBasicResource { + RmrkBasicResource { + src: Some(create_data()), + metadata: Some(create_data()), + license: Some(create_data()), + thumb: Some(create_data()), + } +} + +fn create_composable_resource() -> RmrkComposableResource { + RmrkComposableResource { + parts: create_u32_array(), + base: 100, + src: Some(create_data()), + metadata: Some(create_data()), + license: Some(create_data()), + thumb: Some(create_data()), + } +} + +fn create_slot_resource() -> RmrkSlotResource { + RmrkSlotResource { + base: 100, + slot: 200, + src: Some(create_data()), + metadata: Some(create_data()), + license: Some(create_data()), + thumb: Some(create_data()), + } +} + fn create_max_collection(owner: &T::AccountId) -> DispatchResult { ::Currency::deposit_creating(owner, T::CollectionCreationPrice::get()); @@ -233,11 +264,63 @@ let mut nft_builder = NftBuilder::new(collection_id); let nft_id = nft_builder.build_tower::(&caller, NESTING_BUDGET - 1)?; - let priorities = create_priorities(); + let priorities = create_u32_array(); }: _( RawOrigin::Signed(caller), collection_id, nft_id, priorities ) + + add_basic_resource { + let caller: T::AccountId = account("caller", 0, SEED); + ::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get()); + + + create_max_collection::(&caller)?; + let collection_id = 0; + + let mut nft_builder = NftBuilder::new(collection_id); + let nft_id = nft_builder.build_tower::(&caller, NESTING_BUDGET - 1)?; + let resource = create_basic_resource(); + }: _( + RawOrigin::Signed(caller), + collection_id, + nft_id, + resource + ) + + add_composable_resource { + let caller: T::AccountId = account("caller", 0, SEED); + ::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get()); + + create_max_collection::(&caller)?; + let collection_id = 0; + + let mut nft_builder = NftBuilder::new(collection_id); + let nft_id = nft_builder.build_tower::(&caller, NESTING_BUDGET - 1)?; + let resource = create_composable_resource(); + }: _( + RawOrigin::Signed(caller), + collection_id, + nft_id, + resource + ) + + add_slot_resource { + let caller: T::AccountId = account("caller", 0, SEED); + ::Currency::deposit_creating(&caller, T::CollectionCreationPrice::get()); + + create_max_collection::(&caller)?; + let collection_id = 0; + + let mut nft_builder = NftBuilder::new(collection_id); + let nft_id = nft_builder.build_tower::(&caller, NESTING_BUDGET - 1)?; + let resource = create_slot_resource(); + }: _( + RawOrigin::Signed(caller), + collection_id, + nft_id, + resource + ) } --- a/pallets/proxy-rmrk-core/src/lib.rs +++ b/pallets/proxy-rmrk-core/src/lib.rs @@ -926,7 +926,6 @@ origin: OriginFor, rmrk_collection_id: RmrkCollectionId, nft_id: RmrkNftId, - _resource_id: RmrkBoundedResource, resource: RmrkComposableResource, ) -> DispatchResult { let sender = ensure_signed(origin.clone())?; -- gitstuff