The contract does not inherit from `UUPSUpgradeable`, which is necessary for UUPS-style (Universal Upgradeable Proxy Standard) upgradeability. Without this inheritance, Protocol cannot upgrade the upgradeable contract.
The `UUPSUpgradeable` contract in OpenZeppelin's framework provides the `upgradeTo` and `upgradeToAndCall` functions, allowing controlled contract upgrades. It includes authorization checks to ensure that only the authorized upgrade function (commonly an admin or proxy) can execute upgrades.
Protocol cannot upgrade the upgradeable contract.
Explicitly inherit from `UUPSUpgradeable` to gain access to its protected upgrade functions. Furthermore, ensure that the initialization of `UUPSUpgradeable` happens in the `initialize` function by calling `__UUPSUpgradeable_init`.
Add `UUPSUpgradeable` inheritance and initialization:
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.