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
Name | Type | Description |
---|---|---|
_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
Name | Type | Description |
---|---|---|
_0 | address | The destination address |
executor
Retrieve the executor address
Returns
Name | Type | Description |
---|---|---|
_0 | address | The executor address |
executorCanCall
Returns true if the executor is allowed to perform a call on the given selector
Parameters
Name | Type | Description |
---|---|---|
_0 | bytes4 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | bool | True if executor is allowed to call |
getAdmin
Retrieves the current admin address
Returns
Name | Type | Description |
---|---|---|
_0 | address | The admin address |
getPendingAdmin
Retrieve the current pending admin address
Returns
Name | Type | Description |
---|---|---|
_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
Name | Type | Description |
---|---|---|
_newAdmin | address | New admin address |
setExecutor
Sets the executor address
Parameters
Name | Type | Description |
---|---|---|
_newExecutor | address | New address for the executor |
Events
SetAdmin
The admin address changed
Parameters
Name | Type | Description |
---|---|---|
admin | address | New admin address |
SetDestination
The stored destination address has been changed
Parameters
Name | Type | Description |
---|---|---|
destination | address | The new destination address |
SetExecutor
The stored executor address has been changed
Parameters
Name | Type | Description |
---|---|---|
executor | address | The new executor address |
SetExecutorPermissions
The storage permission for a selector has been changed
Parameters
Name | Type | Description |
---|---|---|
selector | bytes4 | The 4 bytes method selector |
status | bool | True if executor is allowed |
SetPendingAdmin
The pending admin address changed
Parameters
Name | Type | Description |
---|---|---|
pendingAdmin | address | New pending admin address |
Errors
InvalidZeroAddress
The address is zero
Unauthorized
The operator is unauthorized for the caller
Parameters
Name | Type | Description |
---|---|---|
caller | address | Address performing the call |
Last updated