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);
    }
}
相关推荐
Luna-player3 分钟前
[特殊字符] Spring Boot 静态资源默认映射规则详解
学习
苦瓜小生6 分钟前
【黑马点评学习笔记 | 实战篇 】| 7-达人探店
redis·笔记·后端·学习
AI-Ming13 分钟前
注意力机制拓展-大模型知识点(程序员转行AI大模型学习)
人工智能·学习
ADHD多动联盟14 分钟前
多动症孩子的运动干预是什么?主要有怎样的方法?
学习·学习方法·玩游戏
炽烈小老头26 分钟前
【每天学习一点算法 2026/03/20】单词搜索
学习·算法
xiaoxiaoxiaolll26 分钟前
最新《Nature Communications》:多元素共生策略为金属材料穿上“抗疲劳铠甲”
学习
weixin_4588726126 分钟前
东华复试OJ二刷复盘14
学习
元契30 分钟前
英语基础语法学习0
学习
arvin_xiaoting38 分钟前
OpenClaw学习总结_I_核心架构系列_Gateway架构详解
学习·架构·llm·gateway·ai-agent·飞书机器人·openclaw
421!42 分钟前
ESP32学习笔记之UART
笔记·学习·嵌入式·esp32·通信