difftreelog
refactor switch to new prefix removal methods
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
pallets/common/src/lib.rsdiffbeforeafterboth--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -958,8 +958,8 @@
<DestroyedCollectionCount<T>>::put(destroyed_collections);
<CollectionById<T>>::remove(collection.id);
<AdminAmount<T>>::remove(collection.id);
- <IsAdmin<T>>::remove_prefix((collection.id,), None);
- <Allowlist<T>>::remove_prefix((collection.id,), None);
+ let _ = <IsAdmin<T>>::clear_prefix((collection.id,), u32::MAX, None);
+ let _ = <Allowlist<T>>::clear_prefix((collection.id,), u32::MAX, None);
<CollectionProperties<T>>::remove(collection.id);
<Pallet<T>>::deposit_event(Event::CollectionDestroyed(collection.id));
pallets/fungible/src/lib.rsdiffbeforeafterboth231 PalletCommon::destroy_collection(collection.0, sender)?;231 PalletCommon::destroy_collection(collection.0, sender)?;232232233 <TotalSupply<T>>::remove(id);233 <TotalSupply<T>>::remove(id);234 <Balance<T>>::remove_prefix((id,), None);234 let _ = <Balance<T>>::clear_prefix((id,), u32::MAX, None);235 <Allowance<T>>::remove_prefix((id,), None);235 let _ = <Allowance<T>>::clear_prefix((id,), u32::MAX, None);236 Ok(())236 Ok(())237 }237 }238238pallets/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 {
pallets/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(())
}
pallets/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(())
}