Governor
Note
This page is tailored for Exchange V4. For information on governance over past exhcange versions, see this specification.
The ZeroExGovernor
is a time-locked multi-signature wallet that has permission to perform administrative functions within the protocol. Functions are timelocked (see below). Many functions that can be used to mitigate damage in case of emergencies (for example, if a vulnerability is discovered that puts user funds at risk) do not have a timelock.
The ZeroExGovernor
is able to perform the following functions within the protocol:
Managing Ownership
The ZeroExGovernor
can transfer ownership of any contract for which it is the owner
by calling the following function:
/// @dev Transfers ownership to a new address.
/// @param newOwner Address of the new owner.
function transferOwnership(address newOwner)
public;
Managing Authorizations
The ZeroExGovernor
can also manage authorizations all permissioned contracts in the Exchange and Staking systems. While the ZeroExGovernor
itself is currently the only authorized address in these contracts, this feature can be used to allow new contracts to perform admin functions under different conditions in the future (such as with an on-chain token vote).
/// @dev Authorizes an address.
/// @param target Address to authorize.
function addAuthorizedAddress(address target)
external;
/// @dev Removes authorizion of an address.
/// @param target Address to remove authorization from.
function removeAuthorizedAddress(address target)
external;
/// @dev Removes authorizion of an address.
/// @param target Address to remove authorization from.
/// @param index Index of target in authorities array.
function removeAuthorizedAddressAtIndex(
address target,
uint256 index
)
external;
Administering Systems
The governor owns all permissioned, trusted contracts under the 0x Protocol. Any onlyOwner
function can be executed by the governor. The governor requires 2/3 signatures and is timelocked.
Timelocks
Function timelocks are represented in days, where one day is equivalent to 86,400 seconds.
Contract |
Function |
Selector |
Timelock |
---|---|---|---|
AllowanceTarget |
|
|
2 day |
AllowanceTarget |
|
|
0 days |
AllowanceTarget |
|
|
0 days |
Governor |
|
|
2 day |
ExchangeProxy |
|
|
2 day |
ExchangeProxy |
|
|
2 day |
ExchangeProxy |
|
|
0 days |
ExchangeProxy |
|
|
2 day |
ExchangeProxy |
|
|
2 day |
ExchangeProxy |
|
|
2 day |
StakingProxy |
|
|
14 days |
StakingProxy |
|
|
14 days |
StakingProxy |
|
|
14 days |
StakingProxy |
|
|
14 days |
StakingProxy |
|
|
7 days |
StakingProxy |
|
|
14 days |
StakingProxy |
|
|
14 days |
StakingProxy |
|
|
14 days |
StakingProxy |
|
|
14 days |
ZrxVault |
|
|
14 days |
ZrxVault |
|
|
0 days |
ZrxVault |
|
|
14 days |
ZrxVault |
|
|
14 days |
ZrxVault |
|
|
14 days |
ZrxVault |
|
|
14 days |
ZrxVault |
|
|
14 days |