Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code Review Beacon #17

Open
storming0x opened this issue Dec 1, 2021 · 3 comments
Open

Code Review Beacon #17

storming0x opened this issue Dec 1, 2021 · 3 comments

Comments

@storming0x
Copy link

Scope:
-ApeRegistryBeacon.sol
-ApeBeacon.sol
-Timelock.sol

repo link: https://github.com/coordinape/coordinape-protocol/tree/feat/registry_beacon/contracts/ApeProtocol/wrapper/beacon

@storming0x
Copy link
Author

Question:

Does this need to check for address 0x0 or is it meant to allow renouncing ownership too?

function transferProxyOwnership(address _newOwner) external {

@storming0x
Copy link
Author

storming0x commented Dec 1, 2021

Comment:

Care should be taken here on implementations that can be self destructed like in this issue:

https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680

function pushNewImplementation(address _newImplementation) public itself {

I guess here the mitigation is easier since you can't brick the proxy since the beacon stores the implementation pref, and even on a bricked implementation (self destructed) you can then deploy a new implementation and each owner can switch to that one thru this:

function setBeaconDeploymentPrefs(uint256 _value) external {

@storming0x
Copy link
Author

Overall Implementation looks sound to me, can't see any glaring issue aside from commented above.

The owner of beacon is implied to be trusted to correctly provide safe implementations in this architecture i think is an understood assumption.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant