Greetings
I’m in the process of making my contract upgradeable. My proxy contract was already a proxy before being upgradeable and was the owner of my other contracts(vaults). The proxy owns the vaults. I want my vault to be upgradeable as well, But if I pass the ownership of the vaults proxy to my main proxy. I’m unable to upgrade them after the ownership was given to another proxy.
Is there a way to pass ownership of my vaults proxy to my main proxy and still be able to upgrade it or do I have to change the permission logic and maybe use access control instead of ownable. So I remain the owner of the proxy but the main proxy is the only one who whould have access to this vault?
1 Like
Hi @madeindreams,
You could use a ProxyAdmin to control upgrades and then have the owner of the ProxyAdmin be your other proxy. See: https://docs.openzeppelin.com/contracts/4.x/api/proxy#ProxyAdmin
1 Like
This is what I’m trying to wrap my head around now.
The proxy I’m deploying is the admin of my implementation?
But I’m not implementing any of the listed functions. The ProxyAdmin is not part of the upgradeable package. Is this normal?
1 Like
Hi @madeindreams,
Upgrades Plugins deploy the ProxyAdmin contract when you deploy an upgradeable contract using the plugins. https://docs.openzeppelin.com/upgrades-plugins/1.x/faq#what-is-a-proxy-admin
The ProxyAdmin isn’t included in OpenZeppelin Contracts Upgradeable as it is used with the transparent proxy.
1 Like