git.delta.rocks / unique-network / refs/commits / 7791279df554

difftreelog

Bad merge fixed

str-mv2021-09-01parent: #281677a.patch.diff
in: master

2 files changed

modifiedpallets/nft/src/lib.rsdiffbeforeafterboth
--- 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);
+			<CollectionById<T>>::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::<T>::NoPermission
-				);
-			}
-			MetaUpdatePermission::Admin => {
-				ensure!(
-					Self::is_owner_or_admin_permissions(collection, sender),
-					Error::<T>::NoPermission
-				);
-			}
-			MetaUpdatePermission::None => {
-				fail!(Error::<T>::MetadataUpdateDenied);
-			}
+			MetaUpdatePermission::ItemOwner => ensure!(
+				Self::is_item_owner(sender, collection, item_id)?,
+				Error::<T>::NoPermission
+			),
+			MetaUpdatePermission::Admin => ensure!(
+				Self::is_owner_or_admin_permissions(collection, sender)?,
+				Error::<T>::NoPermission
+			),
+			MetaUpdatePermission::None => fail!(Error::<T>::MetadataUpdateDenied),
 		}
 
 		Ok(())
modifiedpallets/nft/src/tests.rsdiffbeforeafterboth
2007#[test]2007#[test]
2008fn set_variable_meta_data_on_nft_with_item_owner_permission_flag() {2008fn set_variable_meta_data_on_nft_with_item_owner_permission_flag() {
2009 new_test_ext().execute_with(|| {2009 new_test_ext().execute_with(|| {
2010 default_limits();2010 //default_limits();
20112011
2012 let collection_id = create_test_collection(&CollectionMode::NFT, 1);2012 let collection_id = create_test_collection(&CollectionMode::NFT, 1);
20132013
2022 MetaUpdatePermission::ItemOwner,2022 MetaUpdatePermission::ItemOwner,
2023 );2023 );
20242024
2025 let variable_data = b"test set_variable_meta_data method.".to_vec();2025 let variable_data = b"ten chars.".to_vec();
2026 assert_ok!(TemplateModule::set_variable_meta_data(2026 assert_ok!(TemplateModule::set_variable_meta_data(
2027 origin1,2027 origin1,
2028 collection_id,2028 collection_id,
2042#[test]2042#[test]
2043fn set_variable_meta_data_on_nft_with_item_owner_permission_flag_neg() {2043fn set_variable_meta_data_on_nft_with_item_owner_permission_flag_neg() {
2044 new_test_ext().execute_with(|| {2044 new_test_ext().execute_with(|| {
2045 default_limits();2045 // default_limits();
20462046
2047 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1);2047 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1);
20482048
2063 let data = default_nft_data();2063 let data = default_nft_data();
2064 create_test_item(1, &data.into());2064 create_test_item(1, &data.into());
20652065
2066 TemplateModule::set_meta_update_permission_flag(2066 assert_ok!(TemplateModule::set_meta_update_permission_flag(
2067 origin2.clone(),2067 origin2.clone(),
2068 collection_id,2068 collection_id,
2069 MetaUpdatePermission::ItemOwner,2069 MetaUpdatePermission::ItemOwner,
2070 );2070 ));
20712071
2072 let variable_data = b"test set_variable_meta_data method.".to_vec();2072 let variable_data = b"ten chars.++".to_vec();
2073 assert_noop!(2073 assert_noop!(
2074 TemplateModule::set_variable_meta_data(2074 TemplateModule::set_variable_meta_data(
2075 origin2,2075 origin2,
2076 collection_id,2076 collection_id,
2077 1,2077 1,
2078 variable_data.clone()2078 variable_data.clone()
2079 ),2079 ),
2080 Error::<Test>::NoPermission2080 Error::<Test>::TokenVariableDataLimitExceeded
2081 );2081 );
20822082
2083 #[test]2083 #[test]
2108 #[test]2108 #[test]
2109 fn set_variable_meta_data_on_nft_with_admin_flag() {2109 fn set_variable_meta_data_on_nft_with_admin_flag() {
2110 new_test_ext().execute_with(|| {2110 new_test_ext().execute_with(|| {
2111 default_limits();2111 // default_limits();
21122112
2113 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1);2113 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1);
21142114
2135 let data = default_nft_data();2135 let data = default_nft_data();
2136 create_test_item(1, &data.into());2136 create_test_item(1, &data.into());
21372137
2138 TemplateModule::set_meta_update_permission_flag(2138 assert_ok!(TemplateModule::set_meta_update_permission_flag(
2139 origin2.clone(),2139 origin2.clone(),
2140 collection_id,2140 collection_id,
2141 MetaUpdatePermission::Admin,2141 MetaUpdatePermission::Admin,
2142 );2142 ));
21432143
2144 let variable_data = b"test set_variable_meta_data method.".to_vec();2144 let variable_data = b"test set_variable_meta_data method.".to_vec();
2145 assert_ok!(TemplateModule::set_variable_meta_data(2145 assert_ok!(TemplateModule::set_variable_meta_data(
2161 #[test]2161 #[test]
2162 fn set_variable_meta_data_on_nft_with_admin_flag_neg() {2162 fn set_variable_meta_data_on_nft_with_admin_flag_neg() {
2163 new_test_ext().execute_with(|| {2163 new_test_ext().execute_with(|| {
2164 default_limits();2164 // default_limits();
21652165
2166 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1);2166 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1);
21672167
2182 let data = default_nft_data();2182 let data = default_nft_data();
2183 create_test_item(1, &data.into());2183 create_test_item(1, &data.into());
21842184
2185 TemplateModule::set_meta_update_permission_flag(2185 assert_ok!(TemplateModule::set_meta_update_permission_flag(
2186 origin2.clone(),2186 origin2.clone(),
2187 collection_id,2187 collection_id,
2188 MetaUpdatePermission::Admin,2188 MetaUpdatePermission::Admin,
2189 );2189 ));
21902190
2191 let variable_data = b"test set_variable_meta_data method.".to_vec();2191 let variable_data = b"test set_variable_meta_data method.".to_vec();
2192 assert_noop!(2192 assert_noop!(
2204 #[test]2204 #[test]
2205 fn set_variable_meta_flag_after_freeze() {2205 fn set_variable_meta_flag_after_freeze() {
2206 new_test_ext().execute_with(|| {2206 new_test_ext().execute_with(|| {
2207 default_limits();2207 // default_limits();
22082208
2209 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1);2209 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 2, 1);
22102210
2211 let origin2 = Origin::signed(2);2211 let origin2 = Origin::signed(2);
22122212
2213 TemplateModule::set_meta_update_permission_flag(2213 assert_ok!(TemplateModule::set_meta_update_permission_flag(
2214 origin2.clone(),2214 origin2.clone(),
2215 collection_id,2215 collection_id,
2216 MetaUpdatePermission::None,2216 MetaUpdatePermission::None,
2217 );2217 ));
2218 assert_noop!(2218 assert_noop!(
2219 TemplateModule::set_meta_update_permission_flag(2219 TemplateModule::set_meta_update_permission_flag(
2220 origin2.clone(),2220 origin2.clone(),
2229 #[test]2229 #[test]
2230 fn set_variable_meta_data_on_nft_with_none_flag_neg() {2230 fn set_variable_meta_data_on_nft_with_none_flag_neg() {
2231 new_test_ext().execute_with(|| {2231 new_test_ext().execute_with(|| {
2232 default_limits();2232 // default_limits();
22332233
2234 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1);2234 let collection_id = create_test_collection_for_owner(&CollectionMode::NFT, 1, 1);
2235 let origin1 = Origin::signed(1);2235 let origin1 = Origin::signed(1);
22362236
2237 let data = default_nft_data();2237 let data = default_nft_data();
2238 create_test_item(1, &data.into());2238 create_test_item(1, &data.into());
22392239
2240 TemplateModule::set_meta_update_permission_flag(2240 assert_ok!(TemplateModule::set_meta_update_permission_flag(
2241 origin1.clone(),2241 origin1.clone(),
2242 collection_id,2242 collection_id,
2243 MetaUpdatePermission::None,2243 MetaUpdatePermission::None,
2244 );2244 ));
22452245
2246 let variable_data = b"test set_variable_meta_data method.".to_vec();2246 let variable_data = b"test set_variable_meta_data method.".to_vec();
2247 assert_noop!(2247 assert_noop!(