git.delta.rocks / unique-network / refs/commits / 26734e956758

difftreelog

refactor switch to new prefix removal methods

Yaroslav Bolyukin2022-07-21parent: #cdfb9bd.patch.diff
in: master
New methods allows to call `remove_prefix` with limit multiple times
in the same block
However, we don't use prefix removal limits, so upgrade is
straightforward

5 files changed

modifiedpallets/common/src/lib.rsdiffbeforeafterboth
958 <DestroyedCollectionCount<T>>::put(destroyed_collections);958 <DestroyedCollectionCount<T>>::put(destroyed_collections);
959 <CollectionById<T>>::remove(collection.id);959 <CollectionById<T>>::remove(collection.id);
960 <AdminAmount<T>>::remove(collection.id);960 <AdminAmount<T>>::remove(collection.id);
961 <IsAdmin<T>>::remove_prefix((collection.id,), None);961 let _ = <IsAdmin<T>>::clear_prefix((collection.id,), u32::MAX, None);
962 <Allowlist<T>>::remove_prefix((collection.id,), None);962 let _ = <Allowlist<T>>::clear_prefix((collection.id,), u32::MAX, None);
963 <CollectionProperties<T>>::remove(collection.id);963 <CollectionProperties<T>>::remove(collection.id);
964964
965 <Pallet<T>>::deposit_event(Event::CollectionDestroyed(collection.id));965 <Pallet<T>>::deposit_event(Event::CollectionDestroyed(collection.id));
modifiedpallets/fungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/fungible/src/lib.rs
+++ b/pallets/fungible/src/lib.rs
@@ -231,8 +231,8 @@
 		PalletCommon::destroy_collection(collection.0, sender)?;
 
 		<TotalSupply<T>>::remove(id);
-		<Balance<T>>::remove_prefix((id,), None);
-		<Allowance<T>>::remove_prefix((id,), None);
+		let _ = <Balance<T>>::clear_prefix((id,), u32::MAX, None);
+		let _ = <Allowance<T>>::clear_prefix((id,), u32::MAX, None);
 		Ok(())
 	}
 
modifiedpallets/nonfungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/lib.rs
+++ b/pallets/nonfungible/src/lib.rs
@@ -429,13 +429,13 @@
 
 		PalletCommon::destroy_collection(collection.0, sender)?;
 
-		<TokenData<T>>::remove_prefix((id,), None);
-		<TokenChildren<T>>::remove_prefix((id,), None);
-		<Owned<T>>::remove_prefix((id,), None);
+		let _ = <TokenData<T>>::clear_prefix((id,), u32::MAX, None);
+		let _ = <TokenChildren<T>>::clear_prefix((id,), u32::MAX, None);
+		let _ = <Owned<T>>::clear_prefix((id,), u32::MAX, None);
 		<TokensMinted<T>>::remove(id);
 		<TokensBurnt<T>>::remove(id);
-		<Allowance<T>>::remove_prefix((id,), None);
-		<AccountBalance<T>>::remove_prefix((id,), None);
+		let _ = <Allowance<T>>::clear_prefix((id,), u32::MAX, None);
+		let _ = <AccountBalance<T>>::clear_prefix((id,), u32::MAX, None);
 		Ok(())
 	}
 
@@ -487,7 +487,7 @@
 		<TokensBurnt<T>>::insert(collection.id, burnt);
 		<TokenData<T>>::remove((collection.id, token));
 		<TokenProperties<T>>::remove((collection.id, token));
-		<TokenAuxProperties<T>>::remove_prefix((collection.id, token), None);
+		let _ = <TokenAuxProperties<T>>::clear_prefix((collection.id, token), u32::MAX, None);
 		let old_spender = <Allowance<T>>::take((collection.id, token));
 
 		if let Some(old_spender) = old_spender {
modifiedpallets/refungible/src/lib.rsdiffbeforeafterboth
--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -398,11 +398,11 @@
 
 		<TokensMinted<T>>::remove(id);
 		<TokensBurnt<T>>::remove(id);
-		<TotalSupply<T>>::remove_prefix((id,), None);
-		<Balance<T>>::remove_prefix((id,), None);
-		<Allowance<T>>::remove_prefix((id,), None);
-		<Owned<T>>::remove_prefix((id,), None);
-		<AccountBalance<T>>::remove_prefix((id,), None);
+		let _ = <TotalSupply<T>>::clear_prefix((id,), u32::MAX, None);
+		let _ = <Balance<T>>::clear_prefix((id,), u32::MAX, None);
+		let _ = <Allowance<T>>::clear_prefix((id,), u32::MAX, None);
+		let _ = <Owned<T>>::clear_prefix((id,), u32::MAX, None);
+		let _ = <AccountBalance<T>>::clear_prefix((id,), u32::MAX, None);
 		Ok(())
 	}
 
@@ -424,6 +424,7 @@
 		<TokensBurnt<T>>::insert(collection.id, burnt);
 		<TokenProperties<T>>::remove((collection.id, token_id));
 		<TotalSupply<T>>::remove((collection.id, token_id));
+<<<<<<< HEAD
 		<Balance<T>>::remove_prefix((collection.id, token_id), None);
 		<Allowance<T>>::remove_prefix((collection.id, token_id), None);
 
@@ -435,6 +436,11 @@
 			}
 			.to_log(collection_id_to_address(collection.id)),
 		);
+=======
+		let _ = <Balance<T>>::clear_prefix((collection.id, token_id), u32::MAX, None);
+		let _ = <Allowance<T>>::clear_prefix((collection.id, token_id), u32::MAX, None);
+		// TODO: ERC721 transfer event
+>>>>>>> 5d9665e0... refactor: switch to new prefix removal methods
 		Ok(())
 	}
 
modifiedpallets/unique/src/lib.rsdiffbeforeafterboth
--- a/pallets/unique/src/lib.rs
+++ b/pallets/unique/src/lib.rs
@@ -373,13 +373,16 @@
 
 			T::CollectionDispatch::destroy(sender, collection)?;
 
-			<NftTransferBasket<T>>::remove_prefix(collection_id, None);
-			<FungibleTransferBasket<T>>::remove_prefix(collection_id, None);
-			<ReFungibleTransferBasket<T>>::remove_prefix((collection_id,), None);
+			// TODO: basket cleanup should be moved elsewhere
+			// Maybe runtime dispatch.rs should perform it?
 
-			<NftApproveBasket<T>>::remove_prefix(collection_id, None);
-			<FungibleApproveBasket<T>>::remove_prefix(collection_id, None);
-			<RefungibleApproveBasket<T>>::remove_prefix((collection_id,), None);
+			let _ = <NftTransferBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
+			let _ = <FungibleTransferBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
+			let _ = <ReFungibleTransferBasket<T>>::clear_prefix((collection_id,), u32::MAX, None);
+
+			let _ = <NftApproveBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
+			let _ = <FungibleApproveBasket<T>>::clear_prefix(collection_id, u32::MAX, None);
+			let _ = <RefungibleApproveBasket<T>>::clear_prefix((collection_id,), u32::MAX, None);
 
 			Ok(())
 		}