sherlock-audit / 2024-08-flayer-judging

0 stars 0 forks source link

Bright Emerald Fish - A reserved token listing cannot be unlocked. #718

Open sherlock-admin3 opened 4 days ago

sherlock-admin3 commented 4 days ago

Bright Emerald Fish

High

A reserved token listing cannot be unlocked.

Summary

If a user reserves an ERC721 using ProtectedListings::reserve there is no functionality for the user to withdraw the ERC721.

Vulnerability Detail

A reserved listing according to the documentation enables a user to place a reservation for an NFT untill they have enough tokens to purchase the NFT. The ProtectedListings::reserve function lets a user place the reservation but there is no way a user can retrieve the NFT when they have gotten enough tokens to pay for the NFT.

Impact

The collateral the user spent to place the reservation will be lost.

Code Snippet

The code for the reserve function -- https://github.com/sherlock-audit/2024-08-flayer/blob/main/flayer/src/contracts/Listings.sol#L690-#L759

Tool used

Manual Review

Recommendation

Add functionality to redeem reserved listings