OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation

需求分析:

项目方创始人、出资人经常并不具备合约部署能力。所以经常会出现合约技术人员权限过大,单点作恶的问题。

虽然可以使用transfer owner的方式把合约owner权限,交给非技术出身的创始人,但是在这种场景下,项目的维护和升级依旧非常棘手。

因此我们利用OB企业钱包使用权和所有权分离的特点,测试了如下场景。技术人员在企业钱包中赋予普通成员身份,可以发挥使用权提出部署合约的申请,由企业钱包中的拥有所有权其他管理员审批通过后完成部署。

测试需求

  • 体验/测试外部项目方使用OB企业钱包部署智能合约以及测试企业钱包审批流

测试目标

企业钱包可以部署合约,来吸引外部的项目方用 OB 来部署项目。

如果支持了部署项目,那么也需具备管理项目(与已部署的合约交互)的能力。

调研结果

通过 OB 插件,使用 remix 工具来实现合约部署。

部署合约需要签名,钱包内部没有入口,所以当前版本企业钱包内部不支持部署合约(需安装外部插件remix)。

企业钱包部署步骤

  1. 安装 OB 浏览器插件 https://openblock.com/#/download。
OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock OperationOB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation
  1. Remix 编译合约 https://remix.ethereum.org/。
OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock OperationOB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation

3. 部署

3.1 选择网络。

OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock OperationOB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation

选择 MetaMask 这时 OB钱包会 弹出授信网页的窗口。
OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation

3.2 选择要部署的合约点击 Deploy。
OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation

3.3 确认交易。
OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation

3.4 输入 PIN。
OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation

3.5 提交成功,进入审批流程。

OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation

部署合约流程说明

EOA 部署:

  1. 编译合约生成 ABI 和 Bytecode。
  1. 生成要签名的 Data。
  1. EOA 账户签名
  1. 发送交易。

OB 钱包 EOA 部署:

  1. 编译合约生成 ABI 和 Bytecode。
  1. 生成要签名的 Data。
  1. OB 钱包签名
  1. 发送交易。

加黑标注了流程中不一样的步骤,如果使用企业钱包部署,则需要企业钱包的多签审批。

OB 内部待支持功能

  1. 支持输入 ABI 和 Bytecode 或者 Data 来生成一笔部署交易(用于部署合约)。
  1. 支持外部合约的交互(用于管理合约)类似 Gnosis 输入合约地址及 ABI 来执行一笔链上交互。
    OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation

测试结果

本次测试结果显示,外部项目方安装OB钱包插件+remix第三方合约部署插件后,可以如传统EOA钱包一般部署智能合约。

团队成员在企业钱包内部发起审批时,需获得大多数管理人的批准,方可进行合约发起、部署等操作,因此可满足市场上大多数团队多人公管的签名需求。