Improve NFT locking (#14510)

* Update docs

* Prevent locking of the same NFT twice

* Validate item is not locked on burn

* Cover with tests

* chore
This commit is contained in:
Jegor Sidorenko
2023-07-05 11:17:08 +02:00
committed by GitHub
parent 1bf2504ebf
commit f5776f6897
4 changed files with 40 additions and 2 deletions
@@ -338,12 +338,12 @@ pub mod pallet {
T::PalletId::get().into_account_truncating()
}
/// Transfer the NFT from the account holding that NFT to the pallet's account.
/// Prevent further transferring of NFT.
fn do_lock_nft(nft_collection_id: T::NftCollectionId, nft_id: T::NftId) -> DispatchResult {
T::Nfts::disable_transfer(&nft_collection_id, &nft_id)
}
/// Transfer the NFT to the account returning the tokens.
/// Remove the transfer lock and transfer the NFT to the account returning the tokens.
fn do_unlock_nft(
nft_collection_id: T::NftCollectionId,
nft_id: T::NftId,