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);
    }
}
相关推荐
RainCity2 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
LinXunFeng10 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
通信小呆呆14 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick14 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee14 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8614 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e14 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨14 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
闪闪发亮的小星星14 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq14 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息