There is one ProxyAdmin contract per network per project
Could you explain in more detail how that happens? During the course of my development I have moved around many things, deleted migrations to simulate mainnet deployment, and now have no idea where the proxy admin is.
Hello there! The ProxyAdmin is a central feature of the Transparent Proxy Pattern, and its role is to be the sole address that can interact with the proxy methods, rendering the proxy "transparent" to every other address.
The ProxyAdmin contract is deployed by the Upgrades plugin the first time you deploy a proxy, then it's stored in the manifest file under the .openzeppelin/ directory and reused for future proxy deployments.
Both plugins provide two main functions, deployProxy and upgradeProxy , which take care of managing upgradeable deployments of your contracts. In the case of deployProxy , this means: