Ownership of KittyConnect contract must be transferable, but it is not.
The README file tells the following: '3. KittyConnect Owner - Owner of the contract who can transfer the ownership of the contract to another address.'
However, the ownership cannot be transferred. The address that represents the owner of KittyConnect is i_kittyConnectOwner, but it is declared as an immutable variable.
This means that it can only be set when declared or in the constructor, not allowing to have its value modified after.
It does not fit the intended operation mode of the protocol, as docs clearly confirm the onwership of the contract must be transferable. i_kittyConnectOwner
is the only address that can add shops to the contract by calling the addShop()
function.
Manual review
KittyConnect::i_kittyConnectOwner
must not be declared as immutable and there must be a function which allows to transfer ownership:
.
.
.
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.