Last updated
Last updated
Inherits: , , ,
Author: Inverter Network Adapted from Gnosis Safe
A contract to manage Inverter Network modules. It allows for adding and removing modules in a local registry for reference. Additional functionality includes the execution of calls from this contract. The transaction execution and module management is copied from Gnosis Safe's .
Marks the maximum amount of Modules a can have to avoid out-of-gas risk.
Timelock used between initiating adding or removing a module and executing it.
.
List of modules.
Mapping to keep track of active timelocks for updating modules module => timelock.
Storage gap for future upgrades.
Modifier to guarantee function is only callable by authorized address.
Modifier to guarantee that the caller is a module.
Modifier to guarantee that the given module is a valid module.
Modifier to guarantee that the given module is a registered module.
Modifier to guarantee that the given module is not a registered module.
Modifier to guarantee that the number of modules is not exceeded.
Modifier to guarantee that the given module is not already being updated.
Modifier to guarantee that the timelock for the given module is expired.
Initialization function.
Only callable during initialization.
Parameters
Adds address module
as module.
Parameters
Returns whether address who
is authorized to mutate module manager's state.
MUST be overridden in downstream contract.
Parameters
Returns
Returns whether the address module
is added as module.
Parameters
Returns
Returns the list of all modules.
Returns
Returns the number of modules.
Returns
Cancels an initiated update for a module.
Only callable by authorized address.
Fails if module update has not been initiated.
Parameters
Only callable by authorized address.
Fails of adding module exeeds max modules limit.
Fails if address invalid or address already added as module.
Parameters
Only callable by authorized address.
Fails if address not added as module.
Parameters
Only callable by authorized address.
Fails if adding of module has not been initiated.
Fails if timelock has not been expired yet.
Parameters
Only callable by authorized address.
Fails if removing of module has not been initiated.
Fails if timelock has not been expired yet.
Parameters
Expects module
to be valid module address.
Expects module
to not be enabled module.
Parameters
Expects address arguments to be consecutive in the modules list.
Expects address module
to be enabled module.
Parameters
Ensures that the given module is a valid module.
Reverts if the module is invalid.
Parameters
Ensures that the given module is not a registered module.
Reverts if the module is registered.
Parameters
Starts the timelock for the given module.
Parameters
Returns wether the given address is the trusted forwarder or not.
Exposes the ERC2771 isTrusted Forwarder.
Parameters
Returns
Returns the trusted forwarder for metatransactions.
Exposes the ERC2771 isTrusted Forwarder.
Returns
Mapping to keep track of whether a module is used in the address => isModule.
See .
Initiates adding of a module to the on a timelock.
Initiates removing of a module from the on a timelock.
Executes adding of a module to the .
Executes removing of a module from the .