// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; /** * @title SOMA Access Control Contract. * @author SOMA.finance. * @notice An access control contract that establishes a hierarchy of accounts and controls * function call permissions. */ interface ISomaAccessControl { /** * @notice Sets the admin of a role. * @dev Sets the admin for the `role` role. * @param role The role to set the admin role of. * @param adminRole The admin of `role`. * @custom:emits RoleAdminChanged * @custom:requirement The function caller must have the DEFAULT_ADMIN_ROLE. */ function setRoleAdmin(bytes32 role, bytes32 adminRole) external; }