Ensure AccessControlDefaultAdminRules's initialDefaultAdmin is non-zero (#4220)
Co-authored-by: Ernesto García <ernestognw@gmail.com>
This commit is contained in:
@ -53,6 +53,7 @@ abstract contract AccessControlDefaultAdminRules is IAccessControlDefaultAdminRu
|
|||||||
* @dev Sets the initial values for {defaultAdminDelay} and {defaultAdmin} address.
|
* @dev Sets the initial values for {defaultAdminDelay} and {defaultAdmin} address.
|
||||||
*/
|
*/
|
||||||
constructor(uint48 initialDelay, address initialDefaultAdmin) {
|
constructor(uint48 initialDelay, address initialDefaultAdmin) {
|
||||||
|
require(initialDefaultAdmin != address(0), "AccessControl: 0 default admin");
|
||||||
_currentDelay = initialDelay;
|
_currentDelay = initialDelay;
|
||||||
_grantRole(DEFAULT_ADMIN_ROLE, initialDefaultAdmin);
|
_grantRole(DEFAULT_ADMIN_ROLE, initialDefaultAdmin);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
const { time } = require('@openzeppelin/test-helpers');
|
const { time, constants, expectRevert } = require('@openzeppelin/test-helpers');
|
||||||
const {
|
const {
|
||||||
shouldBehaveLikeAccessControl,
|
shouldBehaveLikeAccessControl,
|
||||||
shouldBehaveLikeAccessControlDefaultAdminRules,
|
shouldBehaveLikeAccessControlDefaultAdminRules,
|
||||||
@ -13,6 +13,13 @@ contract('AccessControlDefaultAdminRules', function (accounts) {
|
|||||||
this.accessControl = await AccessControlDefaultAdminRules.new(delay, accounts[0], { from: accounts[0] });
|
this.accessControl = await AccessControlDefaultAdminRules.new(delay, accounts[0], { from: accounts[0] });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('initial admin not zero', async function () {
|
||||||
|
await expectRevert(
|
||||||
|
AccessControlDefaultAdminRules.new(delay, constants.ZERO_ADDRESS),
|
||||||
|
'AccessControl: 0 default admin',
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
shouldBehaveLikeAccessControl('AccessControl', ...accounts);
|
shouldBehaveLikeAccessControl('AccessControl', ...accounts);
|
||||||
shouldBehaveLikeAccessControlDefaultAdminRules('AccessControl', delay, ...accounts);
|
shouldBehaveLikeAccessControlDefaultAdminRules('AccessControl', delay, ...accounts);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user