The godfather lacks the role gangmember
and, hence, cannot access functions reserved for gangmembers:
Laundrette::withdrawMoney
,
Laundrette::takeGuns
,
Laundrette::addToTheGang
,
Laundrette::quitTheGang
Deployer
misses to assign the gangmember
role to the godfather, who cannot assign the role to himself for the following reasons:
Laundrette::addToTheGang
is gated by the onlyRole("gangmember")
modifier,
kernel.grantRole()
is gated by the onlyAdmin
modifier, and the admin
rights for Kernel
are possessed by Laundrette
, not by the godfather. As described in another finding, these rights cannot be reclaimed by the godfather.
While in theory godfather is supposed to have all rights and control the protocol, in practice, he cannot access most of the functions:
Laundrette::withdrawMoney
,
Laundrette::takeGuns
,
Laundrette::addToTheGang
,
Laundrette::quitTheGang
Manual review, Foundry.
The clearest solution is to grant the gangmember
role for the godfather from the get-go, i.e. in Deployer
:
Additionally, consider removing the onlyRole("gangmember")
modifier from Laundrette::addToTheGang
, as the other modifier is stricter and does the job in itself:
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.