openzeppelin学习笔记

权限控制

主要类为Ownable AccessControlAccessControl管理角色
<<interface>>
IAccessControl
<<abstract>>
AccessControl

  • _roles: mapping(bytes32 role => RoleData)
    <<abstract>>
    Context
    <<abstract>>
    Ownable
  • address _owner
    RoleData
  • bytes32 adminRole
  • hasRole:mapping(address account => bool)

Ownable 包含修改器onlyOwner

go 复制代码
modifier onlyOwner() {
   _checkOwner();
   _;
}

function _checkOwner() internal view virtual {
    if (owner() != _msgSender()) {
        revert OwnableUnauthorizedAccount(_msgSender());
    }
}

AccessControl包含修改器onlyRole

go 复制代码
modifier onlyRole(bytes32 role) {
   _checkRole(role);
    _;
}

function _checkRole(bytes32 role) internal view virtual {
    _checkRole(role, _msgSender());
}

function _checkRole(bytes32 role, address account) internal view virtual {
    if (!hasRole(role, account)) {
        revert AccessControlUnauthorizedAccount(account, role);
    }
}
相关推荐
stm32 菜鸟6 小时前
nucleo-f411re学习记录-14,OTA 固件升级-bootloader与app分区实现
学习
码途漫谈6 小时前
Easy-Vibe开发篇阅读笔记(十二)——后端开发之如何集成Stripe等收费系统
笔记·ai·开源·状态模式·ai编程
Bechamz7 小时前
大数据开发学习Day24
大数据·学习
在下_诸葛7 小时前
langgraph学习笔记
笔记·python·学习·langgraph教程
yue2004037 小时前
Spring IoC 与 DI 核心概念与原理笔记
java·笔记·spring
charlie1145141917 小时前
现代Qt开发教程(新手篇)1.10——进程
开发语言·c++·qt·学习
绿豆人7 小时前
Cache缓存项目学习2
学习·缓存
山楂树の7 小时前
H.265 (HEVC) 视频解码转逐帧图像 完整实现方案
学习·音视频·h.265
星幻元宇VR7 小时前
VR观景台推动安全科普走向沉浸体验
科技·学习·安全·vr·虚拟现实
码途漫谈7 小时前
Easy-Vibe开发篇阅读笔记(十三)——附录之用 Dify 搭建知识库问答系统
笔记·ai·开源·ai编程