OB企业钱包用例-管理人员审批技术人员部署合约 — OpenBlock Operation
需求分析:
项目方创始人、出资人经常并不具备合约部署能力。所以经常会出现合约技术人员权限过大,单点作恶的问题。
虽然可以使用transfer owner的方式把合约owner权限,交给非技术出身的创始人,但是在这种场景下,项目的维护和升级依旧非常棘手。
因此我们利用OB企业钱包使用权和所有权分离的特点,测试了如下场景。技术人员在企业钱包中赋予普通成员身份,可以发挥使用权提出部署合约的申请,由企业钱包中的拥有所有权其他管理员审批通过后完成部署。
测试需求
- 体验/测试外部项目方使用OB企业钱包部署智能合约以及测试企业钱包审批流
测试目标
企业钱包可以部署合约,来吸引外部的项目方用 OB 来部署项目。
如果支持了部署项目,那么也需具备管理项目(与已部署的合约交互)的能力。
调研结果
通过 OB 插件,使用 remix 工具来实现合约部署。
部署合约需要签名,钱包内部没有入口,所以当前版本企业钱包内部不支持部署合约(需安装外部插件remix)。
企业钱包部署步骤
- 安装 OB 浏览器插件 https://openblock.com/#/download。
- Remix 编译合约 https://remix.ethereum.org/。
3. 部署
3.1 选择网络。
选择 MetaMask 这时 OB钱包会 弹出授信网页的窗口。
3.2 选择要部署的合约点击 Deploy。
3.3 确认交易。
3.4 输入 PIN。
3.5 提交成功,进入审批流程。
部署合约流程说明
EOA 部署:
- 编译合约生成 ABI 和 Bytecode。
- 生成要签名的 Data。
- EOA 账户签名。
- 发送交易。
OB 钱包 EOA 部署:
- 编译合约生成 ABI 和 Bytecode。
- 生成要签名的 Data。
- OB 钱包签名。
- 发送交易。
加黑标注了流程中不一样的步骤,如果使用企业钱包部署,则需要企业钱包的多签审批。
OB 内部待支持功能
- 支持输入 ABI 和 Bytecode 或者 Data 来生成一笔部署交易(用于部署合约)。
- 支持外部合约的交互(用于管理合约)类似 Gnosis 输入合约地址及 ABI 来执行一笔链上交互。
测试结果
本次测试结果显示,外部项目方安装OB钱包插件+remix第三方合约部署插件后,可以如传统EOA钱包一般部署智能合约。
团队成员在企业钱包内部发起审批时,需获得大多数管理人的批准,方可进行合约发起、部署等操作,因此可满足市场上大多数团队多人公管的签名需求。