Firewall
Figment
Firewall
This contract accepts calls to admin-level functions of an underlying contract, and ensures the caller holds an appropriate role for calling that function. There are two roles:
An Admin can call anything
An Executor can call specific functions
The list of function is customizable. Random callers cannot call anything through this contract, even if the underlying function is unpermissioned in the underlying contract. Calls to non-admin functions should be called at the underlying contract directly.
Methods
acceptAdmin
Accept the transfer of ownership
Only callable by the pending admin. Resets the pending admin if succesful.
allowExecutor
Sets the permission for a function selector
Parameters
_functionSelector
bytes4
Method signature on which the permission is changed
_executorCanCall
bool
True if selector is callable by the executor
destination
Retrieve the destination address
Returns
_0
address
The destination address
executor
Retrieve the executor address
Returns
_0
address
The executor address
executorCanCall
Returns true if the executor is allowed to perform a call on the given selector
Parameters
_0
bytes4
undefined
Returns
_0
bool
True if executor is allowed to call
getAdmin
Retrieves the current admin address
Returns
_0
address
The admin address
getPendingAdmin
Retrieve the current pending admin address
Returns
_0
address
The pending admin address
proposeAdmin
Proposes a new address as admin
This security prevents setting an invalid address as an admin. The pendingadmin has to claim its ownership of the contract, and prove that the newaddress is able to perform regular transactions.
Parameters
_newAdmin
address
New admin address
setExecutor
Sets the executor address
Parameters
_newExecutor
address
New address for the executor
version
Retrieves the version of the contract
Returns
_0
string
Version of the contract
Events
SetAdmin
The admin address changed
Parameters
admin indexed
address
New admin address
SetDestination
The stored destination address has been changed
Parameters
destination indexed
address
The new destination address
SetExecutor
The stored executor address has been changed
Parameters
executor indexed
address
The new executor address
SetExecutorPermissions
The storage permission for a selector has been changed
Parameters
selector
bytes4
The 4 bytes method selector
status
bool
True if executor is allowed
SetPendingAdmin
The pending admin address changed
Parameters
pendingAdmin indexed
address
New pending admin address
Errors
InvalidZeroAddress
The address is zero
Unauthorized
The operator is unauthorized for the caller
Parameters
caller
address
Address performing the call
Last updated