Cobo Argus
(CN)
(CN)
  • 公告
    • Cobo Argus V2 正式上线
  • Cobo Argus 产品手册
    • 账户与组织
      • 注册
        • Web3 注册
        • 邮箱注册
      • 创建 Organization
        • 邀请 Member
        • 加入 Organization
      • 管理账户
        • 登录
        • 添加登录地址
        • 绑定邮箱
        • 管理双重身份验证
        • 钱包设置
          • 更改钱包名称
          • 添加 Safe Owner(s)
          • 更改多签阈值
    • Safe{Wallet} 与 Cobo Safe
      • 创建 Safe{Wallet}
      • 导入 Safe{Wallet} 至 Cobo Argus
      • 创建 Cobo Safe
      • 添加地址
        • 团队成员添加地址
    • 自定义访问控制
      • 预授权策略
        • 策略市场(Farming)
        • 交易市场(Trading)
        • 授权流程
          • 修改授权
          • 移除授权
      • Member 与 DeFi 协议交互
        • 查看被授权的角色
        • 与 DeFi 协议单签交互
      • 自定义 DeFi 权限
        • 功能入口
        • 创建 Safe Role 并设置权限
        • 授权 Role 给成员地址
        • 发起多签交易
    • DeFi 机器人
      • 策略机器人
        • 自动收菜机器人
        • 自动撤退机器人
      • 自定义机器人
      • Webhook
        • 如何在 Cobo Argus 配置 Webhook
        • 如何连接 Argus 和 Chainbot Webhook
        • 设置 Webhook 监控合约升级事件
    • 交易管理
      • Safe Owner(s) 签名确认
    • Token Approval 管理
      • Token Approval 入口
      • 取消授权
      • 批量取消授权
      • 更新授权
    • 更新日志
  • 基础使用教程
    • Curve-Convex 策略授权和机器人教程
    • EQB 自动收菜机器人教程
    • BendDAO 自动收菜和自动撤退机器人教程
    • 使用 Argus 监控稳定币价格并在脱锚时自动撤退或兑换
    • Cobo Argus 连接 Rabby Wallet 使用教程
    • 导入 Mantle Network 教程
    • 如何使用 Cobo Argus 调整保证金比例和抵押率
    • Cobo Argus 收菜机器人自动领取 Pendle 挖矿收益!
  • Cobo Safe 技术文档
    • Cobo Account
      • Cobo Safe Account
      • Cobo Smart Account
      • 发起交易
    • Role Manager
    • Authorizer
      • Authorizer 示例
      • BaseACL
      • 其他 Authorizer
      • Hint
    • Argus 的集成
    • 审计报告与开源代码
    • 部署地址
Powered by GitBook
On this page
  • FuncAuthorizer
  • TransferAuthorizer
  • ArgusRootAuthorizer
  1. Cobo Safe 技术文档
  2. Authorizer

其他 Authorizer

PreviousBaseACLNextHint

Last updated 1 year ago

Cobo Safe 中已经集成了几种常用的 Authorizer,有此类需求的用户不需要单独开发。

FuncAuthorizer

FuncAuthorizer 是一类简单但实用的 Authorizer。其检查的内容为合约调用地址及方法。

假如 Owner 想授权给 Delegate 以太坊上 USDT 转账的权限。通过 FuncAuthorizer 可以如下配置:

  1. 确认 USDT 的合约地址 0xdAC17F958D2ee523a2206206994597C13D831ec7

  2. 确认转账动作使用的合约方法为 transfer(address,uint256)。注意这个方法需要规范化成。

  3. 调用 FuncAuthorizer 的 addContractFuncs() 或 addContractFuncsSig() 绑定上述地址与方法。

需要注意的是,上述授权仅限制了合约地址与方法,而无法限制合约调用时的参数。比如上述操作不能限制 USDT 转账的收款人与转账金额。如果要对上述内容进行限制,则需要编写 ACL 来实现更细粒度的访问控制。

TransferAuthorizer

转账是区块链中最常见的操作。TransferAuthorizer 允许用户通过 addTokenReceivers 方法设置 币种 收款人 对。被授权的 Delegate 可以将授权的币种直接转账给收款人。

其中 币种 对于 ERC20 Token 即为 token 的地址。对于 ETH/BNB 等链原生币种则使用 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE 表示。

ArgusRootAuthorizer

ArgusRootAuthorizer 是 Argus 平台上的默认 Authorizer。ArgusRootAuthorizer 本身并不进行具体的权限检查,而是维护了一系列子 Authorizer。

ArgusRootAuthorizer 也采用 的理念。在 ArgusRootAuthorizer 中允许为 Role 配置一到多个 Authorizer。

当交易进入 ArgusRootAuthorizer 时,

  1. 首先获取交易的 delegate,通过 Role Manager 查找 delegate 所对应的 Role。

  2. 获取每个 Role 所绑定的 子 Authorizer。

  3. 调用 子 Authorizer 进行检查,任意 子 Authorizer 检查通过,则可使交易放行。如果未发现绑定的 子 Authorizer 或全部 子 Authorizer 均未检查通过,则拒绝交易。

当 子 Authorizer 同时存在 preExecCheck 和 postExecCheck 时, 当且仅当两个函数均检查通过后才认为 子 Authorizer 放行交易。

函数签名的形式
Role-Based Access Control