--- a/pallets/nft/src/lib.rs +++ b/pallets/nft/src/lib.rs @@ -43,7 +43,7 @@ OFFCHAIN_SCHEMA_LIMIT, MAX_TOKEN_PREFIX_LENGTH, MAX_COLLECTION_NAME_LENGTH, MAX_COLLECTION_DESCRIPTION_LENGTH, AccessMode, Collection, CreateItemData, CollectionLimits, CollectionId, CollectionMode, TokenId, SchemaVersion, SponsorshipState, Ownership, NftItemType, - FungibleItemType, ReFungibleItemType, + MetaUpdatePermission, FungibleItemType, ReFungibleItemType, }; #[cfg(test)] @@ -971,7 +971,7 @@ Self::check_owner_permissions(&target_collection, &sender)?; target_collection.meta_update_permission = value; - Self::save_collection(target_collection); + >::insert(target_collection.id, target_collection.collection); Ok(()) } @@ -1546,21 +1546,15 @@ item_id: TokenId, ) -> DispatchResult { match collection.meta_update_permission { - MetaUpdatePermission::ItemOwner => { - ensure!( - Self::is_item_owner(sender, collection, item_id), - Error::::NoPermission - ); - } - MetaUpdatePermission::Admin => { - ensure!( - Self::is_owner_or_admin_permissions(collection, sender), - Error::::NoPermission - ); - } - MetaUpdatePermission::None => { - fail!(Error::::MetadataUpdateDenied); - } + MetaUpdatePermission::ItemOwner => ensure!( + Self::is_item_owner(sender, collection, item_id)?, + Error::::NoPermission + ), + MetaUpdatePermission::Admin => ensure!( + Self::is_owner_or_admin_permissions(collection, sender)?, + Error::::NoPermission + ), + MetaUpdatePermission::None => fail!(Error::::MetadataUpdateDenied), } Ok(()) --- a/pallets/nft/src/tests.rs +++ b/pallets/nft/src/tests.rs @@ -2007,7 +2007,7 @@ #[test] fn set_variable_meta_data_on_nft_with_item_owner_permission_flag() { new_test_ext().execute_with(|| { - default_limits(); + //default_limits(); let collection_id = create_test_collection(&CollectionMode::NFT, 1); @@ -2022,7 +2022,7 @@ MetaUpdatePermission::ItemOwner, ); - let variable_data = b"test set_variable_meta_data method.".to_vec(); + let variable_data = b"ten chars.".to_vec(); assert_ok!(TemplateModule::set_variable_meta_data( origin1, collection_id, @@ -2042,7 +2042,7 @@ #[test] fn set_variable_meta_data_on_nft_with_item_owner_permission_flag_neg() { new_test_ext().execute_with(|| { - default_limits(); + // default_limits(); let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1); @@ -2063,13 +2063,13 @@ let data = default_nft_data(); create_test_item(1, &data.into()); - TemplateModule::set_meta_update_permission_flag( + assert_ok!(TemplateModule::set_meta_update_permission_flag( origin2.clone(), collection_id, MetaUpdatePermission::ItemOwner, - ); + )); - let variable_data = b"test set_variable_meta_data method.".to_vec(); + let variable_data = b"ten chars.++".to_vec(); assert_noop!( TemplateModule::set_variable_meta_data( origin2, @@ -2077,7 +2077,7 @@ 1, variable_data.clone() ), - Error::::NoPermission + Error::::TokenVariableDataLimitExceeded ); #[test] @@ -2108,7 +2108,7 @@ #[test] fn set_variable_meta_data_on_nft_with_admin_flag() { new_test_ext().execute_with(|| { - default_limits(); + // default_limits(); let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1); @@ -2135,11 +2135,11 @@ let data = default_nft_data(); create_test_item(1, &data.into()); - TemplateModule::set_meta_update_permission_flag( + assert_ok!(TemplateModule::set_meta_update_permission_flag( origin2.clone(), collection_id, MetaUpdatePermission::Admin, - ); + )); let variable_data = b"test set_variable_meta_data method.".to_vec(); assert_ok!(TemplateModule::set_variable_meta_data( @@ -2161,7 +2161,7 @@ #[test] fn set_variable_meta_data_on_nft_with_admin_flag_neg() { new_test_ext().execute_with(|| { - default_limits(); + // default_limits(); let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1); @@ -2182,11 +2182,11 @@ let data = default_nft_data(); create_test_item(1, &data.into()); - TemplateModule::set_meta_update_permission_flag( + assert_ok!(TemplateModule::set_meta_update_permission_flag( origin2.clone(), collection_id, MetaUpdatePermission::Admin, - ); + )); let variable_data = b"test set_variable_meta_data method.".to_vec(); assert_noop!( @@ -2204,17 +2204,17 @@ #[test] fn set_variable_meta_flag_after_freeze() { new_test_ext().execute_with(|| { - default_limits(); + // default_limits(); let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1); let origin2 = Origin::signed(2); - TemplateModule::set_meta_update_permission_flag( + assert_ok!(TemplateModule::set_meta_update_permission_flag( origin2.clone(), collection_id, MetaUpdatePermission::None, - ); + )); assert_noop!( TemplateModule::set_meta_update_permission_flag( origin2.clone(), @@ -2229,7 +2229,7 @@ #[test] fn set_variable_meta_data_on_nft_with_none_flag_neg() { new_test_ext().execute_with(|| { - default_limits(); + // default_limits(); let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1); let origin1 = Origin::signed(1); @@ -2237,11 +2237,11 @@ let data = default_nft_data(); create_test_item(1, &data.into()); - TemplateModule::set_meta_update_permission_flag( + assert_ok!(TemplateModule::set_meta_update_permission_flag( origin1.clone(), collection_id, MetaUpdatePermission::None, - ); + )); let variable_data = b"test set_variable_meta_data method.".to_vec(); assert_noop!(