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

By [OpenBlock Operation ](https://paragraph.com/@openblock-operation) · 2023-05-26

---

需求分析：
-----

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

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

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

测试需求

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

测试目标

企业钱包可以部署合约，来吸引外部的项目方用 OB 来部署项目。 如果支持了部署项目，那么也需具备管理项目（与已部署的合约交互）的能力。

调研结果

通过 OB 插件，使用 remix 工具来实现合约部署 部署合约需要签名，钱包内部没有入口，所以当前版本企业钱包内部不支持部署合约（需安装外部插件remix）

企业钱包部署步骤

1,安装 OB 浏览器插件 [https://openblock.com/#/download](https://openblock.com/#/download)

![](https://storage.googleapis.com/papyrus_images/199e20f955e8eadf528424afb8e82b5a644379304d7c58a48c13241a4a45d4bf.png)

2.Remix 编译合约 [https://remix.ethereum.org/](https://remix.ethereum.org/)

![](https://storage.googleapis.com/papyrus_images/eaa76f94ad3e4ce85467aeab8b0e3d9109209c6e635a586252291996f2346774.png)

3部署
---

### 3.1 选择网络

![](https://storage.googleapis.com/papyrus_images/f7f80d0d3b6b3ca86a8e2388590eb9756891e86f8cffd139d8dd856db9f61ae2.png)

选择 MetaMask 这时 OB钱包会 弹出授信网页的窗口

![](https://storage.googleapis.com/papyrus_images/a1ebdd122ce5a772ed82c19fff101204a5fb15b4c12a4bcf38e943b34eaf6ea4.png)

### 3.2 选择要部署的合约点击 Deploy

![](https://storage.googleapis.com/papyrus_images/a24a78389c49ee33bf5a01b63904ee8ac4c4157ee1aacb3b29ddfbfc4b7f5bfe.png)

### 3.3 确认交易

![](https://storage.googleapis.com/papyrus_images/1f49266a3a111f5a10d354b11ca7b5025ffe03d9526a483fa218488fc8a0db46.png)

### 3.4 输入 PIN

![](https://storage.googleapis.com/papyrus_images/47cbb5e0f382ff6b1f5720e10075e2543cb1f1240ebd431cda8fcd6b86a71499.png)

### 3.5 提交成功，进入审批流程

![](https://storage.googleapis.com/papyrus_images/e833700ea6ce2bb503fe3464b3dfb8808d39f156bf904c6e07877ad8cda9a27a.png)

部署合约流程说明 EOA 部署 1.编译合约生成 ABI 和 Bytecode 2.生成要签名的 Data 3.**EOA 账户签名** 4.发送交易 OB 钱包 EOA 部署 1.编译合约生成 ABI 和 Bytecode 2.生成要签名的 Data 3.**OB 钱包签名**

4.发送交易

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

OB 内部待支持功能
----------

1.支持输入 ABI 和 Bytecode 或者 Data 来生成一笔部署交易 (用于部署合约)

2.支持外部合约的交互 (用于管理合约) 类似 Gnosis 输入合约地址及 ABI 来执行一笔链上交互

![](https://storage.googleapis.com/papyrus_images/326f7f8a4ef431b444499bfc75c298b60d93dcb930454c7521b41a5acf224866.png)

测试结果
----

本次测试结果显示，外部项目方安装OB钱包插件+remix第三方合约部署插件后，可以如传统EOA钱包一般部署智能合约； 团队成员在企业钱包内部发起审批时，需获得大多数 管理人的批准，方可进行合约发起、部署等操作，因此可满足市场上大多数团队多人公管的签名需求。

---

*Originally published on [OpenBlock Operation ](https://paragraph.com/@openblock-operation/ob)*
