33
44pragma solidity ^ 0.8.20 ;
55
6- import {IAccessControlDefaultAdminRulesUpgradeable} from "./IAccessControlDefaultAdminRulesUpgradeable.sol " ;
7- import {AccessControlUpgradeable, IAccessControlUpgradeable} from "../AccessControlUpgradeable.sol " ;
8- import {SafeCastUpgradeable} from "../../utils/math/SafeCastUpgradeable.sol " ;
9- import {MathUpgradeable} from "../../utils/math/MathUpgradeable.sol " ;
10- import {IERC5313Upgradeable } from "../../interfaces/IERC5313Upgradeable.sol " ;
6+ import {IAccessControlDefaultAdminRules} from "@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol " ;
7+ import {AccessControlUpgradeable} from "../AccessControlUpgradeable.sol " ;
8+ import {IAccessControl} from "@openzeppelin/contracts/access/IAccessControl.sol " ;
9+ import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol " ;
10+ import {Math} from "@openzeppelin/contracts/utils/math/Math.sol " ;
11+ import {IERC5313 } from "@openzeppelin/contracts/interfaces/IERC5313.sol " ;
1112import {Initializable} from "../../proxy/utils/Initializable.sol " ;
1213
1314/**
@@ -37,7 +38,7 @@ import {Initializable} from "../../proxy/utils/Initializable.sol";
3738 * }
3839 * ```
3940 */
40- abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable , IAccessControlDefaultAdminRulesUpgradeable , IERC5313Upgradeable , AccessControlUpgradeable {
41+ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable , IAccessControlDefaultAdminRules , IERC5313 , AccessControlUpgradeable {
4142 /// @custom:storage-location erc7201:openzeppelin.storage.AccessControlDefaultAdminRules
4243 struct AccessControlDefaultAdminRulesStorage {
4344 // pending admin pair read/written together frequently
@@ -81,7 +82,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
8182 * @dev See {IERC165-supportsInterface}.
8283 */
8384 function supportsInterface (bytes4 interfaceId ) public view virtual override returns (bool ) {
84- return interfaceId == type (IAccessControlDefaultAdminRulesUpgradeable ).interfaceId || super .supportsInterface (interfaceId);
85+ return interfaceId == type (IAccessControlDefaultAdminRules ).interfaceId || super .supportsInterface (interfaceId);
8586 }
8687
8788 /**
@@ -98,7 +99,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
9899 /**
99100 * @dev See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.
100101 */
101- function grantRole (bytes32 role , address account ) public virtual override (AccessControlUpgradeable, IAccessControlUpgradeable ) {
102+ function grantRole (bytes32 role , address account ) public virtual override (AccessControlUpgradeable, IAccessControl ) {
102103 if (role == DEFAULT_ADMIN_ROLE) {
103104 revert AccessControlEnforcedDefaultAdminRules ();
104105 }
@@ -108,7 +109,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
108109 /**
109110 * @dev See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.
110111 */
111- function revokeRole (bytes32 role , address account ) public virtual override (AccessControlUpgradeable, IAccessControlUpgradeable ) {
112+ function revokeRole (bytes32 role , address account ) public virtual override (AccessControlUpgradeable, IAccessControl ) {
112113 if (role == DEFAULT_ADMIN_ROLE) {
113114 revert AccessControlEnforcedDefaultAdminRules ();
114115 }
@@ -128,7 +129,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
128129 * thereby disabling any functionality that is only available for it, and the possibility of reassigning a
129130 * non-administrated role.
130131 */
131- function renounceRole (bytes32 role , address account ) public virtual override (AccessControlUpgradeable, IAccessControlUpgradeable ) {
132+ function renounceRole (bytes32 role , address account ) public virtual override (AccessControlUpgradeable, IAccessControl ) {
132133 AccessControlDefaultAdminRulesStorage storage $ = _getAccessControlDefaultAdminRulesStorage ();
133134 if (role == DEFAULT_ADMIN_ROLE && account == defaultAdmin ()) {
134135 (address newDefaultAdmin , uint48 schedule ) = pendingDefaultAdmin ();
@@ -186,23 +187,23 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
186187 ///
187188
188189 /**
189- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
190+ * @inheritdoc IAccessControlDefaultAdminRules
190191 */
191192 function defaultAdmin () public view virtual returns (address ) {
192193 AccessControlDefaultAdminRulesStorage storage $ = _getAccessControlDefaultAdminRulesStorage ();
193194 return $._currentDefaultAdmin;
194195 }
195196
196197 /**
197- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
198+ * @inheritdoc IAccessControlDefaultAdminRules
198199 */
199200 function pendingDefaultAdmin () public view virtual returns (address newAdmin , uint48 schedule ) {
200201 AccessControlDefaultAdminRulesStorage storage $ = _getAccessControlDefaultAdminRulesStorage ();
201202 return ($._pendingDefaultAdmin, $._pendingDefaultAdminSchedule);
202203 }
203204
204205 /**
205- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
206+ * @inheritdoc IAccessControlDefaultAdminRules
206207 */
207208 function defaultAdminDelay () public view virtual returns (uint48 ) {
208209 AccessControlDefaultAdminRulesStorage storage $ = _getAccessControlDefaultAdminRulesStorage ();
@@ -211,7 +212,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
211212 }
212213
213214 /**
214- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
215+ * @inheritdoc IAccessControlDefaultAdminRules
215216 */
216217 function pendingDefaultAdminDelay () public view virtual returns (uint48 newDelay , uint48 schedule ) {
217218 AccessControlDefaultAdminRulesStorage storage $ = _getAccessControlDefaultAdminRulesStorage ();
@@ -220,7 +221,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
220221 }
221222
222223 /**
223- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
224+ * @inheritdoc IAccessControlDefaultAdminRules
224225 */
225226 function defaultAdminDelayIncreaseWait () public view virtual returns (uint48 ) {
226227 return 5 days ;
@@ -231,7 +232,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
231232 ///
232233
233234 /**
234- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
235+ * @inheritdoc IAccessControlDefaultAdminRules
235236 */
236237 function beginDefaultAdminTransfer (address newAdmin ) public virtual onlyRole (DEFAULT_ADMIN_ROLE) {
237238 _beginDefaultAdminTransfer (newAdmin);
@@ -243,13 +244,13 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
243244 * Internal function without access restriction.
244245 */
245246 function _beginDefaultAdminTransfer (address newAdmin ) internal virtual {
246- uint48 newSchedule = SafeCastUpgradeable .toUint48 (block .timestamp ) + defaultAdminDelay ();
247+ uint48 newSchedule = SafeCast .toUint48 (block .timestamp ) + defaultAdminDelay ();
247248 _setPendingDefaultAdmin (newAdmin, newSchedule);
248249 emit DefaultAdminTransferScheduled (newAdmin, newSchedule);
249250 }
250251
251252 /**
252- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
253+ * @inheritdoc IAccessControlDefaultAdminRules
253254 */
254255 function cancelDefaultAdminTransfer () public virtual onlyRole (DEFAULT_ADMIN_ROLE) {
255256 _cancelDefaultAdminTransfer ();
@@ -265,7 +266,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
265266 }
266267
267268 /**
268- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
269+ * @inheritdoc IAccessControlDefaultAdminRules
269270 */
270271 function acceptDefaultAdminTransfer () public virtual {
271272 (address newDefaultAdmin , ) = pendingDefaultAdmin ();
@@ -298,7 +299,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
298299 ///
299300
300301 /**
301- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
302+ * @inheritdoc IAccessControlDefaultAdminRules
302303 */
303304 function changeDefaultAdminDelay (uint48 newDelay ) public virtual onlyRole (DEFAULT_ADMIN_ROLE) {
304305 _changeDefaultAdminDelay (newDelay);
@@ -310,13 +311,13 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
310311 * Internal function without access restriction.
311312 */
312313 function _changeDefaultAdminDelay (uint48 newDelay ) internal virtual {
313- uint48 newSchedule = SafeCastUpgradeable .toUint48 (block .timestamp ) + _delayChangeWait (newDelay);
314+ uint48 newSchedule = SafeCast .toUint48 (block .timestamp ) + _delayChangeWait (newDelay);
314315 _setPendingDelay (newDelay, newSchedule);
315316 emit DefaultAdminDelayChangeScheduled (newDelay, newSchedule);
316317 }
317318
318319 /**
319- * @inheritdoc IAccessControlDefaultAdminRulesUpgradeable
320+ * @inheritdoc IAccessControlDefaultAdminRules
320321 */
321322 function rollbackDefaultAdminDelay () public virtual onlyRole (DEFAULT_ADMIN_ROLE) {
322323 _rollbackDefaultAdminDelay ();
@@ -354,7 +355,7 @@ abstract contract AccessControlDefaultAdminRulesUpgradeable is Initializable, IA
354355 // For example, if decreasing from 10 days to 3 days, the new delay will come into effect after 7 days.
355356 return
356357 newDelay > currentDelay
357- ? uint48 (MathUpgradeable .min (newDelay, defaultAdminDelayIncreaseWait ())) // no need to safecast, both inputs are uint48
358+ ? uint48 (Math .min (newDelay, defaultAdminDelayIncreaseWait ())) // no need to safecast, both inputs are uint48
358359 : currentDelay - newDelay;
359360 }
360361
0 commit comments