Last updated
Last updated
Inherits: , ,
Author: Inverter Network
This contract manages various administrative functions that can be executed only by specified multisig addresses. It supports upgrades to contracts through role-based permissions, enabling a timelocked upgrade process and emergency procedures.
Inherits from for interface detection, for role-based access control, and implements the interface for governance functionalities, i.e. setting the fee manager, setting the timelock, upgrading the beacons and exposing the emergency shutdown.
Role of the community multisig.
Role of the team multisig.
contract.
Length of each timelock.
Storage gap for future upgrades.
Modifier to guarantee the given address is valid.
Modifier to guarantee the given timelock period is valid.
Modifier to guarantee only the community or team multisig can call the function.
The module's initializer function.
Parameters
Parameters
Parameters
Returns
Returns
Returns
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Returns
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE
or the TEAM_MULTISIG_ROLE
.
Parameters
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE
or the TEAM_MULTISIG_ROLE
.
Parameters
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE
or the TEAM_MULTISIG_ROLE
.
Parameters
This function will override previous timelocks even if they are active.
Parameters
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE
or the TEAM_MULTISIG_ROLE
.
Parameters
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE
or the TEAM_MULTISIG_ROLE
.
Parameters
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE
or the TEAM_MULTISIG_ROLE
.
Parameters
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE
or the TEAM_MULTISIG_ROLE
.
This function forces the upgrade of a beacon and restarts the implementation afterwards.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
.
Parameters
Accepts the ownership over the target address.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE
or TEAM_MULTISIG_ROLE
.
Parameters
Parameters
sets the internal timelock period.
Parameters
Parameters
contract.
Array of s that are linked to this , populated via moduleFactoryInitCallback
.
Struct to store timelock information for each .
See .
Modifier to guarantee function is only callable by the linked
Modifier to guarantee linked s are not empty.
Modifier to guarantee the given is accessible.
Modifier to check if the upgrade process for the given is already started.
Modifier to check if the timelock period for the given is exceeded.
Callback function that is called by during initialization.
Returns the current timelock of a address.
Returns the list of currently linked s.
Returns the address.
Sets the address of the .
Returns the address.
Sets the address of the .
Sets the maximum fee percentage that can be assigned in the linked .
Sets the default protocol treasury address in the linked .
Sets the protocol treasury address for a specific workflow in the linked .
Sets the default collateral fee of the protocol in the linked .
Sets the default issuance fee of the protocol in the linked .
Sets the collateral fee for a specific workflow module function in the linked .
Sets the issuance fee for a specific workflow module function in the linked .
Registers a with the provided metadata
in the target .
Starts the upgrade process of a by creating a timelock period after which the can be upgraded via triggerUpgradeBeaconWithTimelock()
.
Upgrades a with the data provided by the active timelock.
Cancels an upgrade of by setting the active timelock to inactive.
Sets the timelock period of a upgrade process.
Initiates the shutdown of a .
Initiates the shutdown of all linked s.
Restarts the implementation.
sets the internal address.
sets the internal address.
Internal function that checks if target address is a and this contract has the ownership of it.