_battle()
internal function uses transferFrom()
function to transfer the NFT of defender to himself.
Defender can be a contract instead of an EOA.
In that case, user may not receive the NFT back.
manual review
It's recommended either to use safetransferFrom
or to check if the user is an EOA at the beginning of the function.
require(tx.origin == msg.sender, "not EOA");
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.