IAccessControlDefaultAdminRulesSafeDispatcherTrait
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait
Part of the group: dispatchers
pub trait IAccessControlDefaultAdminRulesSafeDispatcherTrait<T>
Trait functions
default_admin
Returns the address of the current DEFAULT_ADMIN_ROLE holder.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::default_admin
fn default_admin(self: T) -> Result<ContractAddress, Array<felt252>>
pending_default_admin
Returns a tuple of a new_admin and an accept_schedule.
After the accept_schedule passes, the new_admin will be able to accept the
default_admin role by calling accept_default_admin_transfer, completing the role
transfer.
A zero value only in accept_schedule indicates no pending admin transfer.
NOTE: A zero address new_admin means that default_admin is being renounced.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::pending_default_admin
fn pending_default_admin(self: T) -> Result<(ContractAddress, u64), Array<felt252>>
default_admin_delay
Returns the delay required to schedule the acceptance of a default_admin transfer started.
This delay will be added to the current timestamp when calling
begin_default_admin_transfer to set the acceptance schedule.
NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function return the new delay.
See change_default_admin_delay.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::default_admin_delay
fn default_admin_delay(self: T) -> Result<u64, Array<felt252>>
pending_default_admin_delay
Returns a tuple of new_delay and an effect_schedule.
After the effect_schedule passes, the new_delay will get into effect immediately for
every new default_admin transfer started with begin_default_admin_transfer.
A zero value only in effect_schedule indicates no pending delay change.
NOTE: A zero value only for new_delay means that the next default_admin_delay
will be zero after the effect schedule.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::pending_default_admin_delay
fn pending_default_admin_delay(self: T) -> Result<(u64, u64), Array<felt252>>
begin_default_admin_transfer
Starts a default_admin transfer by setting a pending_default_admin scheduled for
acceptance after the current timestamp plus a default_admin_delay.
Requirements:
- Only can be called by the current
default_admin.
Emits a DefaultAdminRoleChangeStarted event.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::begin_default_admin_transfer
fn begin_default_admin_transfer(self: T, new_admin: ContractAddress) -> Result<(), Array<felt252>>
cancel_default_admin_transfer
Cancels a default_admin transfer previously started with begin_default_admin_transfer.
A pending_default_admin not yet accepted can also be canceled with this function.
Requirements:
- Only can be called by the current
default_admin.
May emit a DefaultAdminTransferCanceled event.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::cancel_default_admin_transfer
fn cancel_default_admin_transfer(self: T) -> Result<(), Array<felt252>>
accept_default_admin_transfer
Completes a default_admin transfer previously started with begin_default_admin_transfer.
After calling the function:
DEFAULT_ADMIN_ROLEmust be granted to the caller.DEFAULT_ADMIN_ROLEmust be revoked from the previous holder.pending_default_adminmust be reset to zero value.
Requirements:
- Only can be called by the
pending_default_admin’snew_admin. - The
pending_default_admin’saccept_scheduleshould’ve passed.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::accept_default_admin_transfer
fn accept_default_admin_transfer(self: T) -> Result<(), Array<felt252>>
change_default_admin_delay
Initiates a default_admin_delay update by setting a pending_default_admin_delay
scheduled to take effect after the current timestamp plus a default_admin_delay.
This function guarantees that any call to begin_default_admin_transfer done between the
timestamp this method is called at and the pending_default_admin_delay effect schedule
will use the current default_admin_delay set before calling.
The pending_default_admin_delay’s effect schedule is defined in a way that waiting until
the schedule and then calling begin_default_admin_transfer with the new delay will take at
least the same as another default_admin complete transfer (including acceptance).
The schedule is designed for two scenarios:
- When the delay is changed for a larger one the schedule is
block.timestamp + new delaycapped bydefault_admin_delay_increase_wait. - When the delay is changed for a shorter one, the schedule is
block.timestamp + (current delay - new delay).
A pending_default_admin_delay that never got into effect will be canceled in favor of a
new scheduled change.
Requirements:
- Only can be called by the current
default_admin.
Emits a DefaultAdminDelayChangeScheduled event and may emit a
DefaultAdminDelayChangeCanceled event.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::change_default_admin_delay
fn change_default_admin_delay(self: T, new_delay: u64) -> Result<(), Array<felt252>>
rollback_default_admin_delay
Cancels a scheduled default_admin_delay change.
Requirements:
- Only can be called by the current
default_admin.
May emit a DefaultAdminDelayChangeCanceled event.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::rollback_default_admin_delay
fn rollback_default_admin_delay(self: T) -> Result<(), Array<felt252>>
default_admin_delay_increase_wait
Maximum time in seconds for an increase to default_admin_delay (that is scheduled
using change_default_admin_delay) to take effect.
IMPORTANT:
Make sure to add a reasonable amount of time while setting this value, otherwise, there’s a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).
Consider carefully the value set for maximum_default_admin_transfer_delay too, since
it will affect how fast you can recover from an accidental delay increase.
Fully qualified path: openzeppelin_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::default_admin_delay_increase_wait
fn default_admin_delay_increase_wait(self: T) -> Result<u64, Array<felt252>>
maximum_default_admin_transfer_delay
Maximum time in seconds for a default_admin transfer delay.
IMPORTANT:
If this value is set too high, you might be unable to recover
from an accidental delay increase for an extended period. Too low, and it unnecessarily
restricts how much security delay you can impose for default_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_interfaces::access::accesscontrol_default_admin_rules::IAccessControlDefaultAdminRulesSafeDispatcherTrait::maximum_default_admin_transfer_delay
fn maximum_default_admin_transfer_delay(self: T) -> Result<u64, Array<felt252>>