If a reSDL lock is bridged to an other chain to a contract that does not implement onERC721Received
the lock will be lost forever along with the funds
When bridging a lock there is only a single check for the destination address, that ensures the receiver to be different from the zero address.
However, there is no protection against bridging the lock to a NFT non-receiving contract and, because of that, someone can lose his lock if the address to receive the lock in the destination chain does not implement onERC721Received
.
For example, to transfer the lock between addresses in the same chain, there is the safeTransferFrom
function that ensures the receiver to be able to handle NFTs in case the receiver is a smart contract.
Proof of Concept
Medium
Manual review
When a lock arrives in a chain, check if the receiver can handle NFTs. If the receiver can NOT manage NFTs, the lock should be returned to the sender
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.