I would like to understand how I can upgrade a contract that was deployed from another contract.
vault.logic = new CompoundVault(); <--- stores implementation address of upgradeable vault.logic.initializeIt( address(this), deployer, cToken, asset, fees, feeBase, mentissa, symbol, name );
I notice that the deployment is returning the implementation address directly.
How would I upgrade this contract from my deployer contract?
If I set myself as the owner of the implementation, would that restrict the proxy?
If for instance, I find a bug in my contract. and want to upgrade them.
I would probably need to upgrade the deployer contract with the (fix) So it would deploy fixed version in the future. But I want to upgrade the previously deployed as well.
Right now I only store the address of the implementation, I'm not sure if I can just call initialize again as the owner.
I would like a function that would upgrade the previously deployed contract.