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錢包一般部署智能合約。
團隊成員在企業錢包內部發起審批時,需獲得大多數管理人的批准,方可進行合約發起、部署等操作,因此可滿足市場上大多數團隊多人公管的簽名需求。