openzeppelin_access
Fully qualified path: openzeppelin_access
Modules
Modules
Modules
accesscontrol
Fully qualified path: openzeppelin_access::accesscontrol
Modules
Re-exports:
Modules
Modules
accesscontrol
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol
Modules
Modules
Modules
AccessControlComponent
AccessControl Component
The AccessControl component enables role-based access control mechanisms. This is a lightweight implementation that doesn’t support on-chain enumeration of role members, though role membership can be tracked off-chain through contract events.
Roles can be granted and revoked dynamically via grant_role and revoke_role. Each role
has an associated admin role that controls who can grant and revoke it. By default, all roles
use DEFAULT_ADMIN_ROLE as their admin role.
Accounts can also renounce roles they have been granted by using renounce_role.
More complex role hierarchies can be created using set_role_admin.
WARNING: The DEFAULT_ADMIN_ROLE is its own admin, meaning it can grant and revoke itself.
Extra precautions should be taken to secure accounts with this role.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent
Modules
Constants
Free functions
Structs
| Storage | — |
| RoleGranted | Emitted when account is granted role . sender is the account that originated the contract call, an account with the admin role or the deployer address if _grant_role… |
| RoleGrantedWithDelay | Emitted when account is granted role with a delay. sender is the account that originated the contract call, an account with the admin role or the deployer address if _grant_role_with_delay… |
| RoleRevoked | Emitted when role is revoked for account . sender is the account that originated the contract call:… |
| RoleAdminChanged | Emitted when new_admin_role is set as role ’s admin role, replacing previous_admin_role DEFAULT_ADMIN_ROLE is the starting admin for all roles, despite RoleAdminChanged… |
| ComponentState | — |
Enums
Traits
Modules
Modules
Errors
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Errors
Constants
Constants
Constants
INVALID_CALLER
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Errors::INVALID_CALLER
pub const INVALID_CALLER: felt252 =
119051191745757350281208028839101815176267233062108463203342334778046508134;
MISSING_ROLE
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Errors::MISSING_ROLE
pub const MISSING_ROLE: felt252 = 25210060730641651003830129571497095168425182341590117;
INVALID_DELAY
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Errors::INVALID_DELAY
pub const INVALID_DELAY: felt252 =
7202958984691914763075227381218870070086808991015795868594737127472;
ALREADY_EFFECTIVE
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Errors::ALREADY_EFFECTIVE
pub const ALREADY_EFFECTIVE: felt252 = 517454436563142884656566846503664730090624682370817168340581;
__external_AccessControlImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__external_AccessControlImpl
__l1_handler_AccessControlImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__l1_handler_AccessControlImpl
__constructor_AccessControlImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__constructor_AccessControlImpl
__external_AccessControlCamelImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__external_AccessControlCamelImpl
__l1_handler_AccessControlCamelImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__l1_handler_AccessControlCamelImpl
__constructor_AccessControlCamelImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__constructor_AccessControlCamelImpl
__external_AccessControlWithDelayImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__external_AccessControlWithDelayImpl
__l1_handler_AccessControlWithDelayImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__l1_handler_AccessControlWithDelayImpl
__constructor_AccessControlWithDelayImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__constructor_AccessControlWithDelayImpl
__external_AccessControlMixinImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__external_AccessControlMixinImpl
__l1_handler_AccessControlMixinImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__l1_handler_AccessControlMixinImpl
__constructor_AccessControlMixinImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::__constructor_AccessControlMixinImpl
Constants
Constants
DEFAULT_ADMIN_ROLE
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::DEFAULT_ADMIN_ROLE
pub const DEFAULT_ADMIN_ROLE: felt252 = 0;
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| RoleGranted | Emitted when account is granted role . sender is the account that originated the contract call, an account with the admin role or the deployer address if _grant_role… |
| RoleGrantedWithDelay | Emitted when account is granted role with a delay. sender is the account that originated the contract call, an account with the admin role or the deployer address if _grant_role_with_delay… |
| RoleRevoked | Emitted when role is revoked for account . sender is the account that originated the contract call:… |
| RoleAdminChanged | Emitted when new_admin_role is set as role ’s admin role, replacing previous_admin_role DEFAULT_ADMIN_ROLE is the starting admin for all roles, despite RoleAdminChanged… |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Storage
[storage]
pub struct Storage {
pub AccessControl_role_admin: Map<felt252, felt252>,
pub AccessControl_role_member: Map<(felt252, ContractAddress), AccountRoleInfo>,
}
Members
AccessControl_role_admin
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Storage::AccessControl_role_admin
pub AccessControl_role_admin: Map<felt252, felt252>
AccessControl_role_member
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Storage::AccessControl_role_member
pub AccessControl_role_member: Map<(felt252, ContractAddress), AccountRoleInfo>
RoleGranted
Emitted when account is granted role.
sender is the account that originated the contract call, an account with the admin role
or the deployer address if _grant_role is called from the constructor.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct RoleGranted {
pub role: felt252,
pub account: ContractAddress,
pub sender: ContractAddress,
}
Members
role
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted::role
pub role: felt252
account
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted::account
pub account: ContractAddress
sender
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted::sender
pub sender: ContractAddress
RoleGrantedWithDelay
Emitted when account is granted role with a delay.
sender is the account that originated the contract call, an account with the admin role
or the deployer address if _grant_role_with_delay is called from the constructor.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct RoleGrantedWithDelay {
pub role: felt252,
pub account: ContractAddress,
pub sender: ContractAddress,
pub delay: u64,
}
Members
role
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay::role
pub role: felt252
account
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay::account
pub account: ContractAddress
sender
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay::sender
pub sender: ContractAddress
delay
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay::delay
pub delay: u64
RoleRevoked
Emitted when role is revoked for account.
sender is the account that originated the contract call:
- If using
revoke_role, it is the admin role bearer. - If using
renounce_role, it is the role bearer (i.e.account).
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct RoleRevoked {
pub role: felt252,
pub account: ContractAddress,
pub sender: ContractAddress,
}
Members
role
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked::role
pub role: felt252
account
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked::account
pub account: ContractAddress
sender
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked::sender
pub sender: ContractAddress
RoleAdminChanged
Emitted when new_admin_role is set as role’s admin role, replacing previous_admin_role
DEFAULT_ADMIN_ROLE is the starting admin for all roles, despite
RoleAdminChanged not being emitted signaling this.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct RoleAdminChanged {
pub role: felt252,
pub previous_admin_role: felt252,
pub new_admin_role: felt252,
}
Members
role
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged::role
pub role: felt252
previous_admin_role
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged::previous_admin_role
pub previous_admin_role: felt252
new_admin_role
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged::new_admin_role
pub new_admin_role: felt252
ComponentState
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event
pub enum Event {
RoleGranted: RoleGranted,
RoleGrantedWithDelay: RoleGrantedWithDelay,
RoleRevoked: RoleRevoked,
RoleAdminChanged: RoleAdminChanged,
}
Variants
RoleGranted
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event::RoleGranted
RoleGranted: RoleGranted
RoleGrantedWithDelay
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event::RoleGrantedWithDelay
RoleGrantedWithDelay: RoleGrantedWithDelay
RoleRevoked
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event::RoleRevoked
RoleRevoked: RoleRevoked
RoleAdminChanged
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event::RoleAdminChanged
RoleAdminChanged: RoleAdminChanged
Traits
Traits
HasComponent
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::HasComponent::emit
fn emit<
S,
impl IntoImp: Into<
S, openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event,
>,
>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait
pub trait InternalTrait<
TContractState,
+HasComponent<TContractState>,
impl SRC5: HasComponent<TContractState>,
+Drop<TContractState>,
>
Trait functions
initializer
Initializes the contract by registering the IAccessControl interface ID.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait::initializer
fn initializer(ref self: ComponentState<TContractState>)
assert_only_role
Validates that the caller can act as the given role. Otherwise it panics.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait::assert_only_role
fn assert_only_role(self: @ComponentState<TContractState>, role: felt252)
is_role_effective
Returns whether the account can act as the given role.
The account can act as the role if it is active and the effective_from time is before
or equal to the current time.
NOTE: If the effective_from timepoint is 0, the role is effective immediately.
This is backwards compatible with implementations that didn’t use delays but
a single boolean flag.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait::is_role_effective
fn is_role_effective(
self: @ComponentState<TContractState>, role: felt252, account: ContractAddress,
) -> bool
resolve_role_status
Returns the account’s status for the given role.
The possible statuses are:
NotGranted: the role has not been granted to the account.Delayed: The role has been granted to the account but is not yet active due to a time delay.Effective: the role has been granted to the account and is currently active.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait::resolve_role_status
fn resolve_role_status(
self: @ComponentState<TContractState>, role: felt252, account: ContractAddress,
) -> RoleStatus
is_role_granted
Returns whether the account has the given role granted.
NOTE: The account may not be able to act as the role yet, if a delay was set and has not
passed yet. Use is_role_effective to check if the account can act as the role.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait::is_role_granted
fn is_role_granted(
self: @ComponentState<TContractState>, role: felt252, account: ContractAddress,
) -> bool
set_role_admin
Sets admin_role as role’s admin role.
Internal function without access restriction.
Emits a RoleAdminChanged event.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait::set_role_admin
fn set_role_admin(ref self: ComponentState<TContractState>, role: felt252, admin_role: felt252)
_grant_role
Attempts to grant role to account. The function does nothing if role is already
effective for account. If role has been granted to account, but is not yet active
due to a time delay, the delay is removed and role becomes effective immediately.
Internal function without access restriction.
May emit a RoleGranted event.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait::_grant_role
fn _grant_role(ref self: ComponentState<TContractState>, role: felt252, account: ContractAddress)
_grant_role_with_delay
Attempts to grant role to account with the specified activation delay.
The role will become effective after the given delay has passed. If the role is already
active (Effective) for the account, the function will panic. If the role has been
granted but is not yet active (being in the Delayed state), the existing delay will be
overwritten with the new delay.
Internal function without access restriction.
Requirements:
- delay must be greater than 0.
- the
rolemust not be already effective foraccount.
May emit a RoleGrantedWithDelay event.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait::_grant_role_with_delay
fn _grant_role_with_delay(
ref self: ComponentState<TContractState>, role: felt252, account: ContractAddress, delay: u64,
)
_revoke_role
Attempts to revoke role from account.
Internal function without access restriction.
May emit a RoleRevoked event.
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::InternalTrait::_revoke_role
fn _revoke_role(ref self: ComponentState<TContractState>, role: felt252, account: ContractAddress)
UnsafeNewContractStateTraitForAccessControlImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::UnsafeNewContractStateTraitForAccessControlImpl
pub trait UnsafeNewContractStateTraitForAccessControlImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::UnsafeNewContractStateTraitForAccessControlImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForAccessControlCamelImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::UnsafeNewContractStateTraitForAccessControlCamelImpl
pub trait UnsafeNewContractStateTraitForAccessControlCamelImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::UnsafeNewContractStateTraitForAccessControlCamelImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForAccessControlWithDelayImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::UnsafeNewContractStateTraitForAccessControlWithDelayImpl
pub trait UnsafeNewContractStateTraitForAccessControlWithDelayImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::UnsafeNewContractStateTraitForAccessControlWithDelayImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForAccessControlMixinImpl
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::UnsafeNewContractStateTraitForAccessControlMixinImpl
pub trait UnsafeNewContractStateTraitForAccessControlMixinImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::UnsafeNewContractStateTraitForAccessControlMixinImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
account_role_info
Fully qualified path: openzeppelin_access::accesscontrol::account_role_info
Structs
| AccountRoleInfo | Information about whether a role is active for an account or not. |
Structs
Structs
| AccountRoleInfo | Information about whether a role is active for an account or not. |
AccountRoleInfo
Information about whether a role is active for an account or not.
Fully qualified path: openzeppelin_access::accesscontrol::account_role_info::AccountRoleInfo
[derive(Copy, Drop, Serde, PartialEq, Debug)]
pub struct AccountRoleInfo {
pub effective_from: u64,
pub is_granted: bool,
}
Members
effective_from
Fully qualified path: openzeppelin_access::accesscontrol::account_role_info::AccountRoleInfo::effective_from
pub effective_from: u64
is_granted
Fully qualified path: openzeppelin_access::accesscontrol::account_role_info::AccountRoleInfo::is_granted
pub is_granted: bool
extensions
Fully qualified path: openzeppelin_access::accesscontrol::extensions
Modules
Re-exports:
| DefaultConfig | Implementation of the default ERC20Component ImmutableConfig. See https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-107.md#defaultconfig-implementation… |
Modules
Modules
accesscontrol_default_admin_rules
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules
Modules
Impls
| DefaultConfig | Implementation of the default ERC20Component ImmutableConfig. See https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-107.md#defaultconfig-implementation… |
Modules
Modules
AccessControlDefaultAdminRulesComponent
AccessControlDefaultAdminRules Component
Extension of AccessControl that allows specifying special rules to manage
the DEFAULT_ADMIN_ROLE holder, which is a sensitive role with special permissions
over other roles that may potentially have privileged rights in the system.
If a specific role doesn’t have an admin role assigned, the holder of the
DEFAULT_ADMIN_ROLE will have the ability to grant it and revoke it.
This contract implements the following risk mitigations on top of {AccessControl}:
- Only one account holds the
DEFAULT_ADMIN_ROLEsince deployment until it’s potentially renounced. - Enforces a 2-step process to transfer the
DEFAULT_ADMIN_ROLEto another account. - Enforces a configurable delay between the two steps, with the ability to cancel before the transfer is accepted.
- The delay can be changed by scheduling, see
change_default_admin_delay. - It is not possible to use another role to manage the
DEFAULT_ADMIN_ROLE.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent
Modules
Constants
Free functions
Structs
| Storage | — |
| DefaultAdminTransferScheduled | Emitted when a default_admin transfer is started. Sets new_admin as the next address to become the default_admin by calling accept_default_admin_transfer only after accept_schedule `… |
| DefaultAdminTransferCanceled | Emitted when a pending_default_admin is reset if it was never accepted, regardless of its schedule. |
| DefaultAdminDelayChangeScheduled | Emitted when a default_admin_delay change is started. Sets new_delay as the next delay to be applied between default admins transfers after effect_schedule has passed. |
| DefaultAdminDelayChangeCanceled | Emitted when a pending_default_admin_delay is reset if its schedule didn’t pass. |
| ComponentState | — |
Enums
Traits
| ImmutableConfig | Constants expected to be defined at the contract level used to configure the component behavior…. |
| HasComponent | — |
| InternalTrait | — |
| UnsafeNewContractStateTraitForAccessControlDefaultAdminRulesImpl | — |
| UnsafeNewContractStateTraitForAccessControlImpl | — |
| UnsafeNewContractStateTraitForAccessControlCamelImpl | — |
| UnsafeNewContractStateTraitForAccessControlWithDelayImpl | — |
| UnsafeNewContractStateTraitForAccessControlMixinImpl | — |
Modules
Modules
Errors
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors
Constants
| INVALID_CALLER | AccessControl errors |
| MISSING_ROLE | — |
| INVALID_GRANT_ROLE_DELAY | — |
| ALREADY_EFFECTIVE | — |
| INVALID_DEFAULT_ADMIN | DefaultAdminRules extension errors |
| ADMIN_TRANSFER_DELAY_TOO_HIGH | — |
| ONLY_NEW_DEFAULT_ADMIN | — |
| ENFORCED_DEFAULT_ADMIN_RULES | — |
| ENFORCED_DEFAULT_ADMIN_DELAY | — |
Constants
Constants
| INVALID_CALLER | AccessControl errors |
| MISSING_ROLE | — |
| INVALID_GRANT_ROLE_DELAY | — |
| ALREADY_EFFECTIVE | — |
| INVALID_DEFAULT_ADMIN | DefaultAdminRules extension errors |
| ADMIN_TRANSFER_DELAY_TOO_HIGH | — |
| ONLY_NEW_DEFAULT_ADMIN | — |
| ENFORCED_DEFAULT_ADMIN_RULES | — |
| ENFORCED_DEFAULT_ADMIN_DELAY | — |
INVALID_CALLER
AccessControl errors
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors::INVALID_CALLER
pub const INVALID_CALLER: felt252 =
119051191745757350281208028839101815176267233062108463203342334778046508134;
MISSING_ROLE
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors::MISSING_ROLE
pub const MISSING_ROLE: felt252 = 25210060730641651003830129571497095168425182341590117;
INVALID_GRANT_ROLE_DELAY
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors::INVALID_GRANT_ROLE_DELAY
pub const INVALID_GRANT_ROLE_DELAY: felt252 =
7202958984691914763075227381218870070086808991015795868594737127472;
ALREADY_EFFECTIVE
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors::ALREADY_EFFECTIVE
pub const ALREADY_EFFECTIVE: felt252 = 517454436563142884656566846503664730090624682370817168340581;
INVALID_DEFAULT_ADMIN
DefaultAdminRules extension errors
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors::INVALID_DEFAULT_ADMIN
pub const INVALID_DEFAULT_ADMIN: felt252 = 107320248484662281824505193580524149612429867575662;
ADMIN_TRANSFER_DELAY_TOO_HIGH
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors::ADMIN_TRANSFER_DELAY_TOO_HIGH
pub const ADMIN_TRANSFER_DELAY_TOO_HIGH: felt252 =
1762972771950605937378764940229157014459606997690752055041091223250792;
ONLY_NEW_DEFAULT_ADMIN
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors::ONLY_NEW_DEFAULT_ADMIN
pub const ONLY_NEW_DEFAULT_ADMIN: felt252 =
548214979085969159257434433750054553192310537025363096826600515677152612;
ENFORCED_DEFAULT_ADMIN_RULES
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors::ENFORCED_DEFAULT_ADMIN_RULES
pub const ENFORCED_DEFAULT_ADMIN_RULES: felt252 =
7202949342972851343017453202681816323330072953697918535706869982564;
ENFORCED_DEFAULT_ADMIN_DELAY
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Errors::ENFORCED_DEFAULT_ADMIN_DELAY
pub const ENFORCED_DEFAULT_ADMIN_DELAY: felt252 =
7202949342972851343017453202681816038108683094977223637649821230436;
__external_AccessControlDefaultAdminRulesImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__external_AccessControlDefaultAdminRulesImpl
__l1_handler_AccessControlDefaultAdminRulesImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__l1_handler_AccessControlDefaultAdminRulesImpl
__constructor_AccessControlDefaultAdminRulesImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__constructor_AccessControlDefaultAdminRulesImpl
__external_AccessControlImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__external_AccessControlImpl
__l1_handler_AccessControlImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__l1_handler_AccessControlImpl
__constructor_AccessControlImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__constructor_AccessControlImpl
__external_AccessControlCamelImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__external_AccessControlCamelImpl
__l1_handler_AccessControlCamelImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__l1_handler_AccessControlCamelImpl
__constructor_AccessControlCamelImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__constructor_AccessControlCamelImpl
__external_AccessControlWithDelayImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__external_AccessControlWithDelayImpl
__l1_handler_AccessControlWithDelayImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__l1_handler_AccessControlWithDelayImpl
__constructor_AccessControlWithDelayImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__constructor_AccessControlWithDelayImpl
__external_AccessControlMixinImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__external_AccessControlMixinImpl
__l1_handler_AccessControlMixinImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__l1_handler_AccessControlMixinImpl
__constructor_AccessControlMixinImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::__constructor_AccessControlMixinImpl
Constants
Constants
DEFAULT_ADMIN_ROLE
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::DEFAULT_ADMIN_ROLE
pub const DEFAULT_ADMIN_ROLE: felt252 = 0;
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| DefaultAdminTransferScheduled | Emitted when a default_admin transfer is started. Sets new_admin as the next address to become the default_admin by calling accept_default_admin_transfer only after accept_schedule `… |
| DefaultAdminTransferCanceled | Emitted when a pending_default_admin is reset if it was never accepted, regardless of its schedule. |
| DefaultAdminDelayChangeScheduled | Emitted when a default_admin_delay change is started. Sets new_delay as the next delay to be applied between default admins transfers after effect_schedule has passed. |
| DefaultAdminDelayChangeCanceled | Emitted when a pending_default_admin_delay is reset if its schedule didn’t pass. |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Storage
[storage]
pub struct Storage {
pub AccessControl_role_admin: Map<felt252, felt252>,
pub AccessControl_role_member: Map<(felt252, ContractAddress), AccountRoleInfo>,
pub AccessControl_pending_default_admin: ContractAddress,
pub AccessControl_pending_default_admin_schedule: u64,
pub AccessControl_current_delay: u64,
pub AccessControl_current_default_admin: ContractAddress,
pub AccessControl_pending_delay: PendingDelay,
}
Members
AccessControl_role_admin
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Storage::AccessControl_role_admin
pub AccessControl_role_admin: Map<felt252, felt252>
AccessControl_role_member
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Storage::AccessControl_role_member
pub AccessControl_role_member: Map<(felt252, ContractAddress), AccountRoleInfo>
AccessControl_pending_default_admin
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Storage::AccessControl_pending_default_admin
pub AccessControl_pending_default_admin: ContractAddress
AccessControl_pending_default_admin_schedule
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Storage::AccessControl_pending_default_admin_schedule
pub AccessControl_pending_default_admin_schedule: u64
AccessControl_current_delay
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Storage::AccessControl_current_delay
pub AccessControl_current_delay: u64
AccessControl_current_default_admin
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Storage::AccessControl_current_default_admin
pub AccessControl_current_default_admin: ContractAddress
AccessControl_pending_delay
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Storage::AccessControl_pending_delay
pub AccessControl_pending_delay: PendingDelay
DefaultAdminTransferScheduled
Emitted when a default_admin transfer is started.
Sets new_admin as the next address to become the default_admin by calling
accept_default_admin_transfer only after accept_schedule` passes.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::DefaultAdminTransferScheduled
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct DefaultAdminTransferScheduled {
pub new_admin: ContractAddress,
pub accept_schedule: u64,
}
Members
new_admin
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::DefaultAdminTransferScheduled::new_admin
pub new_admin: ContractAddress
accept_schedule
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::DefaultAdminTransferScheduled::accept_schedule
pub accept_schedule: u64
DefaultAdminTransferCanceled
Emitted when a pending_default_admin is reset if it was never
accepted, regardless of its schedule.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::DefaultAdminTransferCanceled
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct DefaultAdminTransferCanceled {}
DefaultAdminDelayChangeScheduled
Emitted when a default_admin_delay change is started.
Sets new_delay as the next delay to be applied between default admins transfers
after effect_schedule has passed.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::DefaultAdminDelayChangeScheduled
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct DefaultAdminDelayChangeScheduled {
pub new_delay: u64,
pub effect_schedule: u64,
}
Members
new_delay
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::DefaultAdminDelayChangeScheduled::new_delay
pub new_delay: u64
effect_schedule
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::DefaultAdminDelayChangeScheduled::effect_schedule
pub effect_schedule: u64
DefaultAdminDelayChangeCanceled
Emitted when a pending_default_admin_delay is reset if its schedule didn’t pass.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::DefaultAdminDelayChangeCanceled
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct DefaultAdminDelayChangeCanceled {}
ComponentState
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event
pub enum Event {
RoleGranted: RoleGranted,
RoleGrantedWithDelay: RoleGrantedWithDelay,
RoleRevoked: RoleRevoked,
RoleAdminChanged: RoleAdminChanged,
DefaultAdminTransferScheduled: DefaultAdminTransferScheduled,
DefaultAdminTransferCanceled: DefaultAdminTransferCanceled,
DefaultAdminDelayChangeScheduled: DefaultAdminDelayChangeScheduled,
DefaultAdminDelayChangeCanceled: DefaultAdminDelayChangeCanceled,
}
Variants
RoleGranted
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event::RoleGranted
RoleGranted: RoleGranted
RoleGrantedWithDelay
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event::RoleGrantedWithDelay
RoleGrantedWithDelay: RoleGrantedWithDelay
RoleRevoked
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event::RoleRevoked
RoleRevoked: RoleRevoked
RoleAdminChanged
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event::RoleAdminChanged
RoleAdminChanged: RoleAdminChanged
DefaultAdminTransferScheduled
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event::DefaultAdminTransferScheduled
DefaultAdminTransferScheduled: DefaultAdminTransferScheduled
DefaultAdminTransferCanceled
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event::DefaultAdminTransferCanceled
DefaultAdminTransferCanceled: DefaultAdminTransferCanceled
DefaultAdminDelayChangeScheduled
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event::DefaultAdminDelayChangeScheduled
DefaultAdminDelayChangeScheduled: DefaultAdminDelayChangeScheduled
DefaultAdminDelayChangeCanceled
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event::DefaultAdminDelayChangeCanceled
DefaultAdminDelayChangeCanceled: DefaultAdminDelayChangeCanceled
Traits
Traits
| ImmutableConfig | Constants expected to be defined at the contract level used to configure the component behavior…. |
| HasComponent | — |
| InternalTrait | — |
| UnsafeNewContractStateTraitForAccessControlDefaultAdminRulesImpl | — |
| UnsafeNewContractStateTraitForAccessControlImpl | — |
| UnsafeNewContractStateTraitForAccessControlCamelImpl | — |
| UnsafeNewContractStateTraitForAccessControlWithDelayImpl | — |
| UnsafeNewContractStateTraitForAccessControlMixinImpl | — |
ImmutableConfig
Constants expected to be defined at the contract level used to configure the component behavior.
DEFAULT_ADMIN_DELAY_INCREASE_WAIT: Returns the maximum number of seconds to wait for a delay increase.MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY: Returns the maximum number of seconds for a transfer delay.
IMPORTANT:
When overriding DEFAULT_ADMIN_DELAY_INCREASE_WAIT, choose a value that provides a safe
buffer.
If set too low, a mistakenly high new delay (e.g., entering milliseconds instead of seconds)
could be activated almost instantly, leaving no opportunity for manual correction.
The maximum time you have to recover from an accidental delay increase is controlled by
MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY. See the delay_change_wait function for details on
how these constants interact.
If MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY is set too high, you might be unable to recover
from an accidental increase for an extended period. Too low, and it unnecessarily restricts
how much security delay you can impose for admin transfers. As a best practice, consider
setting it in the 30-60 day range for a good balance between security and recoverability.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::ImmutableConfig
pub trait ImmutableConfig
Trait constants
DEFAULT_ADMIN_DELAY_INCREASE_WAIT
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::ImmutableConfig::DEFAULT_ADMIN_DELAY_INCREASE_WAIT
const DEFAULT_ADMIN_DELAY_INCREASE_WAIT: u64;
MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::ImmutableConfig::MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY
const MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY: u64;
HasComponent
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::HasComponent::emit
fn emit<
S,
impl IntoImp: Into<
S,
openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::Event,
>,
>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait
pub trait InternalTrait<
TContractState,
+HasComponent<TContractState>,
impl Immutable: ImmutableConfig,
impl SRC5: HasComponent<TContractState>,
+Drop<TContractState>,
>
Trait functions
initializer
Initializes the contract by registering the IAccessControl interface ID and setting the initial delay and default admin.
Requirements:
- initial_default_admin must not be the zero address.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::initializer
fn initializer(
ref self: ComponentState<TContractState>,
initial_admin_transfer_delay: u64,
initial_default_admin: ContractAddress,
)
assert_only_role
Validates that the caller can act as the given role. Otherwise it panics.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::assert_only_role
fn assert_only_role(self: @ComponentState<TContractState>, role: felt252)
is_role_effective
Returns whether the account can act as the given role.
The account can act as the role if it is active and the effective_from time is before
or equal to the current time.
NOTE: If the effective_from timepoint is 0, the role is effective immediately.
This is backwards compatible with implementations that didn’t use delays but
a single boolean flag.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::is_role_effective
fn is_role_effective(
self: @ComponentState<TContractState>, role: felt252, account: ContractAddress,
) -> bool
resolve_role_status
Returns the account’s status for the given role.
The possible statuses are:
NotGranted: the role has not been granted to the account.Delayed: The role has been granted to the account but is not yet active due to a time delay.Effective: the role has been granted to the account and is currently active.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::resolve_role_status
fn resolve_role_status(
self: @ComponentState<TContractState>, role: felt252, account: ContractAddress,
) -> RoleStatus
is_role_granted
Returns whether the account has the given role granted.
NOTE: The account may not be able to act as the role yet, if a delay was set and has not
passed yet. Use is_role_effective to check if the account can act as the role.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::is_role_granted
fn is_role_granted(
self: @ComponentState<TContractState>, role: felt252, account: ContractAddress,
) -> bool
set_role_admin
Sets admin_role as role’s admin role.
Internal function without access restriction.
Requirements:
rolemust not beDEFAULT_ADMIN_ROLE.
Emits a RoleAdminChanged event.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::set_role_admin
fn set_role_admin(ref self: ComponentState<TContractState>, role: felt252, admin_role: felt252)
_grant_role
Attempts to grant role to account. The function does nothing if role is already
effective for account. If role has been granted to account, but is not yet active
due to a time delay, the delay is removed and role becomes effective immediately.
Internal function without access restriction.
For DEFAULT_ADMIN_ROLE, it only allows granting if there isn’t already a
default_admin
or if the role has been previously renounced.
NOTE: Exposing this function through another mechanism may make the DEFAULT_ADMIN_ROLE
assignable again. Make sure to guarantee this is the expected behavior in your
implementation.
May emit a RoleGranted event.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::_grant_role
fn _grant_role(ref self: ComponentState<TContractState>, role: felt252, account: ContractAddress)
_grant_role_with_delay
Attempts to grant role to account with the specified activation delay.
The role will become effective after the given delay has passed. If the role is already
active (Effective) for the account, the function will panic. If the role has been
granted but is not yet active (being in the Delayed state), the existing delay will be
overwritten with the new delay.
Internal function without access restriction.
Requirements:
- delay must be greater than 0.
- the
rolemust not be already effective foraccount. rolemust not beDEFAULT_ADMIN_ROLE.
May emit a RoleGrantedWithDelay event.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::_grant_role_with_delay
fn _grant_role_with_delay(
ref self: ComponentState<TContractState>, role: felt252, account: ContractAddress, delay: u64,
)
_revoke_role
Attempts to revoke role from account.
Internal function without access restriction.
May emit a RoleRevoked event.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::_revoke_role
fn _revoke_role(ref self: ComponentState<TContractState>, role: felt252, account: ContractAddress)
set_pending_default_admin
Setter of the tuple for pending admin and its schedule.
May emit a DefaultAdminTransferCanceled event.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::set_pending_default_admin
fn set_pending_default_admin(
ref self: ComponentState<TContractState>, new_admin: ContractAddress, new_schedule: u64,
)
set_pending_delay
Setter of the tuple for pending delay and its schedule.
May emit a DefaultAdminDelayChangeCanceled event.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::set_pending_delay
fn set_pending_delay(ref self: ComponentState<TContractState>, new_delay: u64, new_schedule: u64)
delay_change_wait
Returns the amount of seconds to wait after the new_delay will
become the new default_admin_delay.
The value returned guarantees that if the delay is reduced, it will go into effect after a wait that honors the previously set delay.
See default_admin_delay_increase_wait.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::InternalTrait::delay_change_wait
fn delay_change_wait(self: @ComponentState<TContractState>, new_delay: u64) -> u64
UnsafeNewContractStateTraitForAccessControlDefaultAdminRulesImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlDefaultAdminRulesImpl
pub trait UnsafeNewContractStateTraitForAccessControlDefaultAdminRulesImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlDefaultAdminRulesImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForAccessControlImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlImpl
pub trait UnsafeNewContractStateTraitForAccessControlImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForAccessControlCamelImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlCamelImpl
pub trait UnsafeNewContractStateTraitForAccessControlCamelImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlCamelImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForAccessControlWithDelayImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlWithDelayImpl
pub trait UnsafeNewContractStateTraitForAccessControlWithDelayImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlWithDelayImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForAccessControlMixinImpl
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlMixinImpl
pub trait UnsafeNewContractStateTraitForAccessControlMixinImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::AccessControlDefaultAdminRulesComponent::UnsafeNewContractStateTraitForAccessControlMixinImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
Impls
Impls
| DefaultConfig | Implementation of the default ERC20Component ImmutableConfig. See https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-107.md#defaultconfig-implementation… |
DefaultConfig
Implementation of the default ERC20Component ImmutableConfig.
See https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-107.md#defaultconfig-implementation
The default delay increase wait is set to 5 days. The maximum transfer delay is set to 30 days.
NOTE: You cannot set a transfer delay to a value greater than this
MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::DefaultConfig
pub impl DefaultConfig of ImmutableConfig;
Impl constants
DEFAULT_ADMIN_DELAY_INCREASE_WAIT
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::DefaultConfig::DEFAULT_ADMIN_DELAY_INCREASE_WAIT
const DEFAULT_ADMIN_DELAY_INCREASE_WAIT: u64 = 5 * 24 * 60 * 60;
MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY
Fully qualified path: openzeppelin_access::accesscontrol::extensions::accesscontrol_default_admin_rules::DefaultConfig::MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY
const MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY: u64 = 30 * 24 * 60 * 60;
pending_delay
Fully qualified path: openzeppelin_access::accesscontrol::extensions::pending_delay
Structs
| PendingDelay | Information about a scheduledpending delay. |
Structs
Structs
| PendingDelay | Information about a scheduledpending delay. |
PendingDelay
Information about a scheduledpending delay.
Fully qualified path: openzeppelin_access::accesscontrol::extensions::pending_delay::PendingDelay
[derive(Copy, Drop, Serde, PartialEq, Debug)]
pub struct PendingDelay {
pub delay: u64,
pub schedule: u64,
}
Members
delay
Fully qualified path: openzeppelin_access::accesscontrol::extensions::pending_delay::PendingDelay::delay
pub delay: u64
schedule
Fully qualified path: openzeppelin_access::accesscontrol::extensions::pending_delay::PendingDelay::schedule
pub schedule: u64
ownable
Fully qualified path: openzeppelin_access::ownable
Modules
Re-exports:
Modules
Modules
ownable
Fully qualified path: openzeppelin_access::ownable::ownable
Modules
Modules
Modules
OwnableComponent
Ownable Component
The Ownable component provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions.
The initial owner can be set by using the initializer function in
construction time. This can later be changed with transfer_ownership.
The component also offers functionality for a two-step ownership transfer where the new owner first has to accept their ownership to finalize the transfer.
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent
Modules
Free functions
Structs
| Storage | — |
| OwnershipTransferred | Emitted when new_owner is set as owner of the contract. new_owner can be set to zero only if the ownership is renounced. |
| OwnershipTransferStarted | Emitted when transfer_ownership is called on a contract that implements IOwnableTwoStep . previous_owner is the address of the current owner. new_owner is the address of the pending owner. |
| ComponentState | — |
Enums
Traits
Modules
Modules
Errors
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Errors
Constants
Constants
Constants
NOT_OWNER
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Errors::NOT_OWNER
pub const NOT_OWNER: felt252 = 6453775547044262656980513251389146108192067417835201906;
NOT_PENDING_OWNER
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Errors::NOT_PENDING_OWNER
pub const NOT_PENDING_OWNER: felt252 =
119051145825490371705017055488349666845855619325153144982018027625445746034;
ZERO_ADDRESS_OWNER
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Errors::ZERO_ADDRESS_OWNER
pub const ZERO_ADDRESS_OWNER: felt252 =
2113561387378558640007916056212955719375468717479393106901732231050099;
__external_OwnableImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__external_OwnableImpl
__l1_handler_OwnableImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__l1_handler_OwnableImpl
__constructor_OwnableImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__constructor_OwnableImpl
__external_OwnableTwoStepImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__external_OwnableTwoStepImpl
__l1_handler_OwnableTwoStepImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__l1_handler_OwnableTwoStepImpl
__constructor_OwnableTwoStepImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__constructor_OwnableTwoStepImpl
__external_OwnableCamelOnlyImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__external_OwnableCamelOnlyImpl
__l1_handler_OwnableCamelOnlyImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__l1_handler_OwnableCamelOnlyImpl
__constructor_OwnableCamelOnlyImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__constructor_OwnableCamelOnlyImpl
__external_OwnableTwoStepCamelOnlyImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__external_OwnableTwoStepCamelOnlyImpl
__l1_handler_OwnableTwoStepCamelOnlyImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__l1_handler_OwnableTwoStepCamelOnlyImpl
__constructor_OwnableTwoStepCamelOnlyImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__constructor_OwnableTwoStepCamelOnlyImpl
__external_OwnableMixinImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__external_OwnableMixinImpl
__l1_handler_OwnableMixinImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__l1_handler_OwnableMixinImpl
__constructor_OwnableMixinImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__constructor_OwnableMixinImpl
__external_OwnableTwoStepMixinImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__external_OwnableTwoStepMixinImpl
__l1_handler_OwnableTwoStepMixinImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__l1_handler_OwnableTwoStepMixinImpl
__constructor_OwnableTwoStepMixinImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::__constructor_OwnableTwoStepMixinImpl
Free functions
Free functions
unsafe_new_component_state
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::unsafe_new_component_state
pub fn unsafe_new_component_state<TContractState>() -> ComponentState<TContractState>
Structs
Structs
| Storage | — |
| OwnershipTransferred | Emitted when new_owner is set as owner of the contract. new_owner can be set to zero only if the ownership is renounced. |
| OwnershipTransferStarted | Emitted when transfer_ownership is called on a contract that implements IOwnableTwoStep . previous_owner is the address of the current owner. new_owner is the address of the pending owner. |
| ComponentState | — |
Storage
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Storage
[storage]
pub struct Storage {
pub Ownable_owner: ContractAddress,
pub Ownable_pending_owner: ContractAddress,
}
Members
Ownable_owner
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Storage::Ownable_owner
pub Ownable_owner: ContractAddress
Ownable_pending_owner
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Storage::Ownable_pending_owner
pub Ownable_pending_owner: ContractAddress
OwnershipTransferred
Emitted when new_owner is set as owner of the contract.
new_owner can be set to zero only if the ownership is renounced.
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct OwnershipTransferred {
pub previous_owner: ContractAddress,
pub new_owner: ContractAddress,
}
Members
previous_owner
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred::previous_owner
pub previous_owner: ContractAddress
new_owner
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred::new_owner
pub new_owner: ContractAddress
OwnershipTransferStarted
Emitted when transfer_ownership is called on a contract that implements IOwnableTwoStep.
previous_owner is the address of the current owner.
new_owner is the address of the pending owner.
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted
[derive(Drop, Debug, PartialEq, starknet::Event)]
pub struct OwnershipTransferStarted {
pub previous_owner: ContractAddress,
pub new_owner: ContractAddress,
}
Members
previous_owner
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted::previous_owner
pub previous_owner: ContractAddress
new_owner
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted::new_owner
pub new_owner: ContractAddress
ComponentState
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::ComponentState
pub struct ComponentState<TContractState> {}
Enums
Enums
Event
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Event
pub enum Event {
OwnershipTransferred: OwnershipTransferred,
OwnershipTransferStarted: OwnershipTransferStarted,
}
Variants
OwnershipTransferred
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Event::OwnershipTransferred
OwnershipTransferred: OwnershipTransferred
OwnershipTransferStarted
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::Event::OwnershipTransferStarted
OwnershipTransferStarted: OwnershipTransferStarted
Traits
Traits
HasComponent
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::HasComponent
pub trait HasComponent<TContractState>
Trait functions
get_component
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::HasComponent::get_component
fn get_component(self: @TContractState) -> @ComponentState<TContractState>
get_component_mut
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::HasComponent::get_component_mut
fn get_component_mut(ref self: TContractState) -> ComponentState<TContractState>
get_contract
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::HasComponent::get_contract
fn get_contract(self: @ComponentState<TContractState>) -> @TContractState
get_contract_mut
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::HasComponent::get_contract_mut
fn get_contract_mut(ref self: ComponentState<TContractState>) -> TContractState
emit
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::HasComponent::emit
fn emit<S, impl IntoImp: Into<S, openzeppelin_access::ownable::ownable::OwnableComponent::Event>>(
ref self: ComponentState<TContractState>, event: S,
)
InternalTrait
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::InternalTrait
pub trait InternalTrait<TContractState, +HasComponent<TContractState>>
Trait functions
initializer
Sets the contract’s initial owner.
Requirements:
owneris not the zero address.
This function should be called at construction time.
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::InternalTrait::initializer
fn initializer(ref self: ComponentState<TContractState>, owner: ContractAddress)
assert_only_owner
Panics if called by any account other than the owner. Use this to restrict access to certain functions to the owner.
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::InternalTrait::assert_only_owner
fn assert_only_owner(self: @ComponentState<TContractState>)
_transfer_ownership
Transfers ownership of the contract to a new address and resets the pending owner to the zero address.
Internal function without access restriction.
Emits an OwnershipTransferred event.
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::InternalTrait::_transfer_ownership
fn _transfer_ownership(ref self: ComponentState<TContractState>, new_owner: ContractAddress)
_propose_owner
Sets a new pending owner.
Internal function without access restriction.
Emits an OwnershipTransferStarted event.
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::InternalTrait::_propose_owner
fn _propose_owner(ref self: ComponentState<TContractState>, new_owner: ContractAddress)
UnsafeNewContractStateTraitForOwnableImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableImpl
pub trait UnsafeNewContractStateTraitForOwnableImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForOwnableTwoStepImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableTwoStepImpl
pub trait UnsafeNewContractStateTraitForOwnableTwoStepImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableTwoStepImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForOwnableCamelOnlyImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableCamelOnlyImpl
pub trait UnsafeNewContractStateTraitForOwnableCamelOnlyImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableCamelOnlyImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForOwnableTwoStepCamelOnlyImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableTwoStepCamelOnlyImpl
pub trait UnsafeNewContractStateTraitForOwnableTwoStepCamelOnlyImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableTwoStepCamelOnlyImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForOwnableMixinImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableMixinImpl
pub trait UnsafeNewContractStateTraitForOwnableMixinImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableMixinImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState
UnsafeNewContractStateTraitForOwnableTwoStepMixinImpl
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableTwoStepMixinImpl
pub trait UnsafeNewContractStateTraitForOwnableTwoStepMixinImpl<TContractState>
Trait functions
unsafe_new_contract_state
Fully qualified path: openzeppelin_access::ownable::ownable::OwnableComponent::UnsafeNewContractStateTraitForOwnableTwoStepMixinImpl::unsafe_new_contract_state
fn unsafe_new_contract_state() -> TContractState