This PR allows Celo's core Governance to execute arbitrary transactions as the stCELO MultiSig, essentially giving Celo Governance co-ownership of the stCELO protocol. Thus, Celo Governance referenda and hotfixes can affect the stCELO contracts (in particular, hotfixes can be used for rapid response to any emergencies that may come up).
Other changes
Created UsingRegistryNoStorage helper contract. MultiSig needs to be able to access the Celo Registry to grab Governance's address, but we can't use the available UsingRegistryUpgreadable, as inheriting from it would introduce a new storage slot, that would mangle MultiSig's storage. UsingRegistryNoStorage stores the Registry's canonical address (0xce10) as a constant, and thus needs no actual storage slots. This is similar to the UsingRegistryV2 in the monorepo.
Drive-by: removed the ProposalExecuted event as it is not used anywhere.
Description
This PR allows Celo's core Governance to execute arbitrary transactions as the stCELO MultiSig, essentially giving Celo Governance co-ownership of the stCELO protocol. Thus, Celo Governance referenda and hotfixes can affect the stCELO contracts (in particular, hotfixes can be used for rapid response to any emergencies that may come up).
Other changes
Created UsingRegistryNoStorage helper contract. MultiSig needs to be able to access the Celo Registry to grab Governance's address, but we can't use the available UsingRegistryUpgreadable, as inheriting from it would introduce a new storage slot, that would mangle MultiSig's storage. UsingRegistryNoStorage stores the Registry's canonical address (
0xce10
) as a constant, and thus needs no actual storage slots. This is similar to the UsingRegistryV2 in the monorepo.Drive-by: removed the
ProposalExecuted
event as it is not used anywhere.Tested
Unit tests.
Related issues