Skip to content

PermissionCondition ​

Abstract contract · src/common/permission/condition/PermissionCondition.sol

Explained in: Manage permissions through governance, Permission conditions

Author: Aragon X - 2023

Inherits: ERC165, IPermissionCondition, ProtocolVersion

An abstract contract for non-upgradeable contracts instantiated via the new keyword to inherit from to support customary permissions depending on arbitrary onchain state.

security-contact: sirt@aragon.org

Functions ​

isGranted ​

solidity
function isGranted(
    address _where,
    address _who,
    bytes32 _permissionId,
    bytes _data
) external view returns (bool isPermitted)

Selector: 0x2675fdd0

Checks if a call is permitted.

ParameterTypeDescription
_whereaddressThe address of the target contract.
_whoaddressThe address (EOA or contract) for which the permissions are checked.
_permissionIdbytes32The permission identifier.
_databytesOptional data passed to the PermissionCondition implementation.
ReturnsTypeDescription
isPermittedboolReturns true if the call is permitted.

protocolVersion ​

solidity
function protocolVersion() external pure returns (uint8[3])

Selector: 0x2ae9c600

Returns the semantic Aragon OSx protocol version number that the implementing contract is associated with.

Dev: This version number is not to be confused with the release and build numbers found in the Version.Tag struct inside the PluginRepo contract being used to version plugin setup and associated plugin implementation contracts.

ReturnsTypeDescription
[0]uint8[3]Returns the semantic Aragon OSx protocol version number.

supportsInterface ​

solidity
function supportsInterface(bytes4 _interfaceId) external view returns (bool)

Selector: 0x01ffc9a7

Checks if an interface is supported by this or its parent contract.

ParameterTypeDescription
_interfaceIdbytes4The ID of the interface.