What are difference between proxyAdmin and InitializableAdmin?

I read the contracts code related to upgradeability and found proxyAdmin and InitializableAdminUpgradeabilityProxy.


What is difference between these two?
Thank you!

2 Likes

Hey @Shinsaku! Glad you asked!

They are quite different. ProxyAdmin is an admin which manages the proxy itself and InitializableAdminUpgradeabilityProxy is the Proxy itself which can be upgraded and have an admin. Hope it brings some clarity. Let me know if you have any more questions and we are interested to know on what you are working on?

1 Like

Thank you very much!
It was really easy to understand.
Thank you.

2 Likes

What kind of relation they have?
It seems like when implementation is deployed with Open Zeppelin SDK, there are three contracts are deployed sequential.
I think last one is implementation but I don’t know rest of two contract.
How to realize the upgradeability using these two contracts?

2 Likes

When we upgrade the implementation, InitializableAdminUpgradeabilityProxy is also upgraded?

2 Likes

Hey @Shinsaku!

How to realize the upgradeability using these two contracts?

I suggest to use our CLI it hides all the complexity behind easy to use interactive commands.

When we upgrade the implementation, InitializableAdminUpgradeabilityProxy is also upgraded?

No. To upgrade a smart contract implementation _upgradeTo method is called with a new implementation. Checkout this paper on Proxy Upgrade Pattern to learn more about how it works.

1 Like