The ProxyFactory::getProxyAddress() intakes salt and implementation parameter. However, the salt value is unknown to the user before deployment. This may cause the user to send the funds to the wrong proxy address.
The salt value is calculated when setting up the contest through ProxyFactory::setContest(). However setContest()
function doesn't return or emit a salt value. It's difficult for organizers.
Also the ProxyFactory::_calculateSalt() is an internal function. It's not callable to calculate salt for organizers.
The getProxyAddress() also intakes salt before deployment, the salt value is unknown to organizers.
It gives much more difficult for non-technical knowledge-based organizers to calculate proxy address without correct salt.
It may lead to a potential temporary loss of funds if the organizer calculates the proxy address incorrectly with incorrect salt
Manual Review
The getProxyAddress() function should be refactored to a more detailed parameter intake:
OR
_calculateSalt() should be a public function.
OR
setContest() should emit or return the salt value.
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.