Kernel
contract Kernel
is IKernel, KernelStorage, KernelAppIds, KernelNamespaceConstants, Petrifiable, IsContract, VaultRecoverable, AppProxyFactory, ACLSyntaxSugar
Source: contracts/kernel/Kernel.sol
Index
Reference
Modifiers
auth
modifier``
auth
(bytes32 _role, uint256[] _params)
Parameters:
_role
- bytes32_params
- uint256[]
Functions
APP_ADDR_NAMESPACE
function``
APP_ADDR_NAMESPACE
() external pure returns (bytes32)
Returns:
bytes32
APP_BASES_NAMESPACE
function``
APP_BASES_NAMESPACE
() external pure returns (bytes32)
Returns:
bytes32
CORE_NAMESPACE
function``
CORE_NAMESPACE
() external pure returns (bytes32)
Returns:
bytes32
DEFAULT_ACL_APP_ID
function``
DEFAULT_ACL_APP_ID
() external pure returns (bytes32)
Returns:
bytes32
KERNEL_APP_ID
function``
KERNEL_APP_ID
() external pure returns (bytes32)
Returns:
bytes32
_setApp
function``
_setApp
(bytes32 _namespace, bytes32 _appId, address _app) internal
Parameters:
_namespace
- bytes32_appId
- bytes32_app
- address
_setAppIfNew
function``
_setAppIfNew
(bytes32 _namespace, bytes32 _appId, address _app) internal
Parameters:
_namespace
- bytes32_appId
- bytes32_app
- address
acl
function``
acl
() public view returns (IACL)
Get the installed ACL app.
Returns:
ACL app
fallback
function (bool _shouldPetrify) public
Constructor that allows the deployer to choose if the base instance should be petrified immediately.
Parameters:
_shouldPetrify
- Immediately petrify this instance so that it can never be initialized
getApp
function``
getApp
(bytes32 _namespace, bytes32 _appId) public view returns (address)
Get the address of an app instance or base implementation.
Parameters:
_namespace
- App namespace to use_appId
- Identifier for appReturns:Address of the app
getRecoveryVault
function``
getRecoveryVault
() public view returns (address)
Get the address of the recovery Vault instance (to recover funds).
Returns:
Address of the Vault
hasPermission
function``
hasPermission
(address _who, address _where, bytes32 _what, bytes _how) public view returns (bool)
Function called by apps to check ACL on kernel or to check permission status.
Parameters:
_who
- Sender of the original call_where
- Address of the app_what
- Identifier for a group of actions in app_how
- Extra data for ACL auth
Returns:
Boolean indicating whether the ACL allows the role or not. Always returns false if the kernel hasn't been initialized yet.
initialize
function``
initialize
(IACL _baseAcl, address _permissionsCreator) public
Initialize can only be called once. It saves the block number in which it was initialized., Initialize this kernel instance along with its ACL and set `_permissionsCreator` as the entity that can create other permissions.
Modifiers:
Parameters:
_baseAcl
- Address of base ACL app_permissionsCreator
- Entity that will be given permission over createPermission
newAppInstance
function``
newAppInstance
(bytes32 _appId, address _appBase) public returns (ERCProxy)
Create a new instance of an app linked to this kernel, Create a new upgradeable instance of `_appId` app linked to the Kernel, setting its code to `_appBase`.
Modifiers:
Parameters:
_appId
- Identifier for app_appBase
- Address of the app's base implementation
Returns:
AppProxy instance
newAppInstance
function``
newAppInstance
(bytes32 _appId, address _appBase, bytes _initializePayload, bool _setDefault) public returns (ERCProxy)
Create a new instance of an app linked to this kernel and set its base implementation if it was not already set, Create a new upgradeable instance of `_appId` app linked to the Kernel, setting its code to `_appBase`. `_setDefault ? 'Also sets it as the default app instance.':''`.
Modifiers:
Parameters:
_appId
- Identifier for app_appBase
- Address of the app's base implementation_initializePayload
- Payload for call made by the proxy during its construction to initialize_setDefault
- Whether the app proxy app is the default one. Useful when the Kernel needs to know of an instance of a particular app, like Vault for escape hatch mechanism.
Returns:
AppProxy instance
newPinnedAppInstance
function``
newPinnedAppInstance
(bytes32 _appId, address _appBase) public returns (ERCProxy)
Create a new pinned instance of an app linked to this kernel, Create a new non-upgradeable instance of `_appId` app linked to the Kernel, setting its code to `_appBase`.
Modifiers:
Parameters:
_appId
- Identifier for app_appBase
- Address of the app's base implementation
Returns:
AppProxy instance
newPinnedAppInstance
function``
newPinnedAppInstance
(bytes32 _appId, address _appBase, bytes _initializePayload, bool _setDefault) public returns (ERCProxy)
Create a new pinned instance of an app linked to this kernel and set its base implementation if it was not already set, Create a new non-upgradeable instance of `_appId` app linked to the Kernel, setting its code to `_appBase`. `_setDefault ? 'Also sets it as the default app instance.':''`.
Modifiers:
Parameters:
_appId
- Identifier for app_appBase
- Address of the app's base implementation_initializePayload
- Payload for call made by the proxy during its construction to initialize_setDefault
- Whether the app proxy app is the default one. Useful when the Kernel needs to know of an instance of a particular app, like Vault for escape hatch mechanism.
Returns:
AppProxy instance
setApp
function``
setApp
(bytes32 _namespace, bytes32 _appId, address _app) public
Set the resolving address of an app instance or base implementation, Set the resolving address of `_appId` in namespace `_namespace` to `_app`.
Modifiers:
Parameters:
_namespace
- App namespace to use_appId
- Identifier for app_app
- Address of the app instance or base implementation
Returns:
ID of app
setRecoveryVaultAppId
function``
setRecoveryVaultAppId
(bytes32 _recoveryVaultAppId) public
Set the default vault id for the escape hatch mechanism.
Modifiers:
Parameters:
_recoveryVaultAppId
- Identifier of the recovery vault app
Last updated