The joinEvent function allows external calls before completing internal state changes, which could potentially lead to reentrancy attacks. There's a potential indirect reentrancy vulnerability depending on how the _healthToken contract behaves.
Remix IDE and manual inspection
Ensure that all internal state changes are made before external calls
function joinEvent() external {
...
_addProducer(msg.sender);
(bool success) = _healthToken.transferFrom(msg.sender, address(this), healthTokenRequirement);
require(success, "The transfer is not successful");
}
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.