As we know all too well, governors change and the governor address associated with a given governance token and/or timelock can be updated over time.
For this reason, the FlexVotingClient abstract contract should reflect this. Specifically:
- the
GOVERNOR variable should be mutable, not immutable
- the abstract contract should define a virtual function to update the
GOVERNOR value -- we might call it updateGovernor -- which child contracts will be required to implement
This is also needed for better proxy support. There currently is no way to set the GOVERNOR value in an initializer.
This was raised here and here
As we know all too well, governors change and the governor address associated with a given governance token and/or timelock can be updated over time.
For this reason, the
FlexVotingClientabstract contract should reflect this. Specifically:GOVERNORvariable should be mutable, not immutableGOVERNORvalue -- we might call itupdateGovernor-- which child contracts will be required to implementThis is also needed for better proxy support. There currently is no way to set the
GOVERNORvalue in an initializer.This was raised here and here