IGovernor_v1.sol
Functions
init
The module's initializer function.
function init(
address _communityMultisig,
address _teamMultisig,
uint _timelockPeriod,
address _feeManager,
address _moduleFactory
) external;Parameters
_communityMultisig
address
The address of the community multisig.
_teamMultisig
address
The address of the team multisig.
moduleFactoryInitCallback
Callback function that is called by {ModuleFactory_v1} during initialization.
Parameters
getBeaconTimelock
Returns the current timelock of a {IInverterBeacon_v1} address.
Parameters
Returns
getLinkedBeacons
Returns the list of currently linked {IInverterBeacon_v1}s.
Returns
<none>
IInverterBeacon_v1[]
LinkedBeacons The array of {IInverterBeacon_v1}s that are currently linked to the {Governor_v1}.
getFeeManager
Returns the {FeeManager_v1} address.
Returns
getModuleFactory
Returns the {ModuleFactory_v1} address.
Returns
setFeeManager
Sets the address of the {FeeManager_v1}.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
Parameters
setModuleFactory
Sets the address of the {ModuleFactory_v1}.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
Parameters
setFeeManagerMaxFee
Sets the maximum fee percentage that can be assigned in the linked {FeeManager_v1}.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
The given max fee can not be higher than the BPS.
Parameters
maxFee
uint256
The max Fee in relation to the BPS.
setFeeManagerDefaultProtocolTreasury
Sets the default protocol treasury address in the linked {FeeManager_v1}.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
The given treasury address can not be address(0).
Parameters
_defaultProtocolTreasury
address
The address of the default protocol treasury.
setFeeManagerWorkflowTreasuries
Sets the protocol treasury address for a specific workflow in the linked {FeeManager_v1}.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
The given treasury address can not be address(0).
Parameters
workflow
address
The address of the workflow.
treasury
address
The address of the protocol treasury for that specific workflow.
setFeeManagerDefaultCollateralFee
Sets the default collateral fee of the protocol in the linked {FeeManager_v1}.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
The given fee needs to be less than the BPS.
Parameters
_defaultCollateralFee
uint256
The default collateral fee of the protocol in relation to the BPS.
setFeeManagerDefaultIssuanceFee
Sets the default issuance fee of the protocol in the linked {FeeManager_v1}.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
The given fee needs to be less than the BPS.
Parameters
_defaultIssuanceFee
uint256
The default issuance fee of the protocol in relation to the BPS.
setFeeManagerCollateralWorkflowFee
Sets the collateral fee for a specific workflow module function in the linked {FeeManager_v1}.
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE or the TEAM_MULTISIG_ROLE.
The given fee needs to be less than the BPS.
Parameters
workflow
address
The address of the workflow that contains the module function.
module
address
The address of the module that contains the function.
functionSelector
bytes4
The function selector of the target function.
set
bool
Boolean that determines if the fee is actually used or not.
fee
uint256
The collateral fee in relation to the BPS.
setFeeManagerIssuanceWorkflowFee
Sets the issuance fee for a specific workflow module function in the linked {FeeManager_v1}.
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE or the TEAM_MULTISIG_ROLE.
The given fee needs to be less than the BPS.
Parameters
workflow
address
The address of the workflow that contains the module function.
module
address
The address of the module that contains the function.
functionSelector
bytes4
The function selector of the target function.
set
bool
Boolean that determines if the fee is actually used or not.
fee
uint256
The issuance fee in relation to the BPS.
registerMetadataInModuleFactory
Registers a {IInverterBeacon_v1} with the provided metadata in the target {ModuleFactory_v1}.
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE or the TEAM_MULTISIG_ROLE.
Parameters
metadata
IModule_v1.Metadata
The metadata that will be registered.
upgradeBeaconWithTimelock
Starts the upgrade process of a {IInverterBeacon_v1} by creating a timelock period after which the {IInverterBeacon_v1} can be upgraded via triggerUpgradeBeaconWithTimelock().
This function will override previous timelocks even if they are active.
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE or the TEAM_MULTISIG_ROLE.
Parameters
triggerUpgradeBeaconWithTimelock
Upgrades a {IInverterBeacon_v1} with the data provided by the active timelock.
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE or the TEAM_MULTISIG_ROLE.
Parameters
cancelUpgrade
Cancels an upgrade of {IInverterBeacon_v1} by setting the active timelock to inactive.
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE or the TEAM_MULTISIG_ROLE.
Parameters
setTimelockPeriod
Sets the timelock period of a {IInverterBeacon_v1} upgrade process.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
Parameters
newtimelockPeriod
uint256
The new timelock period.
initiateBeaconShutdown
Initiates the shutdown of a {IInverterBeacon_v1}.
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE or the TEAM_MULTISIG_ROLE.
Parameters
initiateBeaconShutdownForAllLinkedBeacons
Initiates the shutdown of all linked {IInverterBeacon_v1}s.
Can only be accessed by either the COMMUNITY_MULTISIG_ROLE or the TEAM_MULTISIG_ROLE.
forceUpgradeBeaconAndRestartImplementation
This function forces the upgrade of a beacon and restarts the implementation afterwards.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
Parameters
restartBeaconImplementation
Restarts the {IInverterBeacon_v1} implementation.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE.
Parameters
acceptOwnership
Accepts the ownership over the target address.
Can only be accessed by the COMMUNITY_MULTISIG_ROLE or TEAM_MULTISIG_ROLE.
Parameters
adr
address
The address of target that wants to hand over the ownership.
Events
BeaconTimelockStarted
Event emitted when a new timelock period for a upgrade of a {IInverterBeacon_v1} is started.
Parameters
newImplementation
address
The address of the new Implementation.
newMinorVersion
uint256
The new minor version.
newPatchVersion
uint256
The new patch version.
timelockExceeded
uint256
Timestamp of when the timelock is exceeded.
BeaconUpgraded
Event emitted when a {IInverterBeacon_v1} is upgraded.
Parameters
newImplementation
address
The address of the new Implementation.
newMinorVersion
uint256
The new minor version.
newPatchVersion
uint256
The new patch version.
BeaconUpgradedCanceled
Event emitted when a {IInverterBeacon_v1} upgraded is canceled.
Parameters
FeeManagerUpdated
Event emitted when the fee manager is updated.
Parameters
feeManager
address
The address of the fee manager.
ModuleFactoryUpdated
Event emitted when the module factory is updated.
Parameters
moduleFactory
address
The address of the module factory.
TimelockPeriodSet
Event emitted when a timelock period is set.
Parameters
newTimelockPeriod
uint256
The new timelock period.
BeaconShutdownInitiated
Event emitted when a {IInverterBeacon_v1} shutdown is initiated.
Parameters
BeaconForcefullyUpgradedAndImplementationRestarted
Event emitted when a {IInverterBeacon_v1} is forcefully upgraded and the implementation gets restarted immediately.
Parameters
newImplementation
address
The address of the new Implementation.
newMinorVersion
uint256
The new minor version.
newPatchVersion
uint256
The new patch version.
BeaconImplementationRestarted
Event emitted when a {IInverterBeacon_v1} implementation is restarted.
Parameters
OwnershipAccepted
Event emitted when the {Governor_v1} contract accepts the ownership over another contract.
Parameters
adr
address
The address of the contract that distributed the ownership.
Errors
Governor__OnlyLinkedModuleFactory
This function can only be accessed by the linked {ModuleFactory_v1}.
Governor__LinkedBeaconsNotEmpty
This function can only be called when the linked {IInverterBeacon_v1} array is empty.
Governor__InvalidAddress
The given address is invalid.
Governor__InvalidTimelockPeriod
The given amount is invalid.
Governor__BeaconNotAccessible
The given target address is not accessible.
Governor__OnlyCommunityOrTeamMultisig
This function can only be accessed by the CommunityMultisig or TeamMultisig.
Governor__TimelockPeriodNotExceeded
The timelock period needed for the {IInverterBeacon_v1} to be upgraded has not been exceeded yet.
Governor__UpgradeProcessNotStarted
This upgrade process for this {IInverterBeacon_v1} has not yet been started.
Governor__CallToTargetContractFailed
The call to the target contract has failed.
Structs
Timelock
Struct used to store information about a timelock for a {IInverterBeacon_v1} upgrade.
The timelock is needed to upgrade a {IInverterBeacon_v1} to new implementation.
Properties
timelockActive
bool
Is the timelock currently active.
timelockUntil
uint256
Last updated