The Streets impletements IERC721Receiver and IERC721Receiver.onERC721Received.selector for safeTransfers but it doesn't use that. The RapBattle does not impletement IERC721Receiver and IERC721Receiver.onERC721Received.selector
It must return its Solidity selector to confirm the token transfer.
If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
Not safe transfers will be reverted
Testing with Remix
Change transferFrom to safeTransferFrom calls in the Streets.sol (and RapBattle) for oneShotContract calls. Add onERC721Received implementation to the RapBattle to accept ERC721 tokens with safeTransferFrom calls instead of transferFrom.
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.