I need to have a custom Proxy contract deployed and not the default one that ships with the plugin.
Below is my use case:
- i would like to add voting logic to the main proxy contract where holders vote if new implementation should be used (they’re given an address to the new implementation, to check the code themselves)
- if and only if the vote passes, function upgradeTo is allowed to switch the existing implementation contract with the new one
By default one can upgrade to a new implementation through a ProxyAdmin contract whenever they like, which is not safe for the users. I want to add functionality to the main Proxy contract where token holders first approve the switch to the new implementation contract.
So how would I go about that problem?
Also another thing is, I would like to upgrade by setting the address of an already deployed contract (since users need to have access to it for reviewing the code before voting).
Can this somehow be done by integrating the upgrades plugin or do I need to write everything from scratch?
Hope I made myself clear enough