When the transferShortRecord
function is invoked during the transfer of a short record, it generates a new short record for the recipient. However, it consistently assigns the short status as SR.FullyFilled
, regardless of the previous status. This can result in an erroneous classification of a partially filled short record as fully filled.
The issue occurs in the transferShortRecord
function :
As observed, the function utilizes createShortRecord
to generate a new record for the recipient's address, consistently setting the status as SR.FullyFilled
. This approach is flawed, as the short record may potentially be in a partially filled state at the time of transfer. Assigning it the status of fully filled immediately renders it impossible to refill in the future.
Consequently, this could result in a loss of funds for the new owner of the short record, as they would be unable to match the short again.
It's important to note that neither ERC721Facet.mintNFT
nor ERC721Facet.transferFrom
prohibit the use of partially filled shorts. Therefore, it is conceivable that some individuals transferring their short records may encounter this issue.
Incorrectly designating a short record as fully filled during its transfer could lead to potential financial losses for the protocol or the individual short seller, as this short position would then become ineligible for future filling.
Manual review
Ensure that the newly created short record is assigned the appropriate status when performing a transfer :
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.