Problem in the docs of upgrade proxy

Hi Team,

on this page , we read the following:

UUPS proxies are implemented using an {ERC1967Proxy}. Note that this proxy is not by itself upgradeable. It is the role of the implementation to include, alongside the contract’s logic, all the code necessary to update the implementation’s address that is stored at a specific slot in the proxy’s storage space.

If you look at ERC1967Proxy, it inherits from ERC1967Upgrade. even though ERC1967Upgrade contains internal functions, its code will still be included in the ERC1967Proxy. Which means something is wrong with UUPS pattern in this case. upgrade code shouldn't be in the ERC1967Proxy.

So I am asking, is something wrong with the documentation ? or in terms of UUPS, which contract from openzeppelin is the proxy contract and which one is the proxiable contract ?

Thank you in advance.

Figured out.

I forgot that internal functions don't end up in the contract !

1 Like