Cannot find impl of a func described in documentation - AccessControl

Hello OpenZeppelin Community,

I need assistance with something simple. I came I across in smart contracts using the _setupRole(bytes32 role, address account) function that is supposed to be part of AccessControl & AccessControlUpgradeable contracts.

I've got both repos cloned and scouted (The standard non-upgradeable and the upgradeable but can't happen to find the function implementation anywhere. In the contract that I found it being used I cannot use "go to definition" and I don't know why.

Can someone point me to where can I locate the function implementation, probably with a github link? Or let me know if it deprecated and part of older versions of the code? Is the documentation about it deprecated?

Thanks in advance!

Hello @damya002

The _setupRole functions was part of version 4.x: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.9/contracts/access/AccessControl.sol#L186-L208

It was deprecated in version 4.4 (in favor of _grantRole), and removed in version 5.0.

2 Likes