Since RamNFT::choosingRamContract
cannot be set in the contract constructor (due to a circular dependency), a separate RamNFT::setChoosingRamContract
call is required to set choosingRamContract
. Therefore, there exists a period where ChoosingRam::increaseValuesOfParticipants
calls can revert due to its requirement to update NFT characteristics using RamNFT::updateCharacteristics
. During this time, the RamNFT::onlyChoosingRamContract
modifier will always revert privileged calls (updateCharacteristics
), since choosingRamContract
will be the default address
type value (the zero address).
increaseValuesOfParticipants
executes external calls to the RamNFT
contract to both get and update NFT characteristics, however, if choosingRamContract
is not set in RamNFT
, updateCharacteristics
will revert due to the onlyChoosingRamContract
modifier.
increaseValuesOfParticipants
can fail for a period of time , which is confusing for users and unintended behavior.
Manual Review
Ensure setChoosingRamContract
is called immediately after deployment.
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.