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);
    }
}
相关推荐
零陵上将军_xdr19 小时前
后端转全栈学习-Day5-JavaScript 基础-3
开发语言·javascript·学习
05大叔19 小时前
对话系统学习,问答型数据库,闲聊型对话数据库
学习
nashane19 小时前
HarmonyOS 6商城开发学习:抢票倒计时与系统日历提醒——票务类场景的完整落地思路
学习·华为·harmonyos
伶俜6620 小时前
零基础学 ArkUI 传感器(专题二):从加速度计到指南针,玩转硬件能力
学习·华为·harmonyos
进击的小头21 小时前
第8篇:IGBT 从零到精通:核心原理、关键参数、选型指南与工业级应用要点
经验分享·嵌入式硬件·学习
郭庆汝21 小时前
FastAPI使用笔记
笔记·fastapi
爱讲故事的21 小时前
计算机网络第七章:无线与移动网络复习笔记
网络·笔记·计算机网络
小陈phd21 小时前
Text2SQL智能体学习笔记(一)——NL2SQL及执行流程介绍
笔记·学习
风栖柳白杨21 小时前
【大模型学习】主流大模型统计
学习