• 當我以為那是一個知識點,其實那是一個知識圓

  • 雪崩時,沒有一片雪花覺得自己有責任

    Stanislaw Jerzy Lec

  • 遊戲運營
    如何讓玩家一直沉迷
    如何讓玩家拉幫結派
    如何讓玩家互相仇視
    如何讓玩家充值更多
    如何實現隱性的現金賭博和金幣交易

  • 遇事不決 量子力學

    量子社會學

    文昭論古論今

  • 有最壞的打算 做最好的準備 抱最大的希望

  • 好看的皮囊千篇一律 有趣的靈魂萬裡挑一

  • Raft PBFT

    Reliable, Replicated, Redundant, And Fault-Tolerant

    Practical Byzantine Fault Tolerant

  • 吃人一口,還人一斗 我思故我在

    字面上意思是說,受別人一點幫助,就要思考如何回報他更多。

    同義的:受人點滴,湧泉以報

    我覺得更值得更深入思考的是,

    當你輕易地要求別人的幫助時,你就得有心理準備,要返還十倍或更多。

    所以,當自己能做到,不輕易要求別人的幫忙。

    (說到這裡,小伙伴會覺得跟我以前說的”情感投入報酬”不一樣,情境不同暫不展開)

    這是台灣的俗語,用台語發音更有味道。

  • 瘋狂宇宙 我思故我在

    這個宇宙太瘋狂,大海掀翻了小池塘。

  • 區塊鏈是工具,要合理的使用;而非商品炒作。我思故我在

OpenZeppelin 可昇級合約插件 4/9 在 Buidler 環境下使用插件

以太坊 ethereum andy 1年前 (2020-10-19) 709次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

OpenZeppelin 可昇級合約插件 4/9 在 Buidler 環境下使用插件

在 Buidler 環境下使用插件

這個插件增加 Buidler 環境腳本的功能,可以為部署和昇級的合約。Buidler環境跟插件依賴於 ethers.js。
在Buidler論壇裡有一篇文件可以參考。https://forum.openzeppelin.com/t/openzeppelin-upgrades-step-by-step-tutorial-for-buidler/3580

安裝

以下的命令可以安裝插件

OpenZeppelin 可昇級合約插件 4/9 在 Buidler 環境下使用插件

然後,在 buidler 的設定檔 buidler.config.js 裡設定

OpenZeppelin 可昇級合約插件 4/9 在 Buidler 環境下使用插件

如果使用 TypeScript ,記得加入 type extensions 到 tconfig.json

OpenZeppelin 可昇級合約插件 4/9 在 Buidler 環境下使用插件

在腳本中使用插件

可以在腳本中調用本插件的 deployProxy 函數來部署可昇級的合約實體。

OpenZeppelin 可昇級合約插件 4/9 在 Buidler 環境下使用插件

以上的代碼會完成以下的動作,自動檢查 Box 合約是不是可以安全昇級的,設定一個代理合約管理員(如果需要的話),然後部署一個 Box合約實體(除非之前已經部署完成),建立一個代理合約,調用 initialize(42) 來初化合約。

在另一個用來昇級的腳本,可以調用 upgradeProxy 函數來昇級一個已經部署的合約實體。這個新的版本的合約可以是完全不同的合約,像是 BoxV2 , 或是只是重新編譯舊版本合約 Box 的修正,插件會自動注意到合約已經改變。

OpenZeppelin 可昇級合約插件 4/9 在 Buidler 環境下使用插件

需要注意的是,雖然本插件會持續追蹤已部署在所有網路上的功能實現合約,使之有重用性及驗証存儲的相容性,但是不會持續追蹤代理合約。這表示在有必要時,必需手動去追蹤每個代理合約部署地址上的昇級功能。

本插件會比對 BoxV2 跟上一個合約,確定這兩個合約是相容的,然後部署新的 BoxV2 功能實作合約(除非在此之前已經部署完成),然後更新代理合約指向到新的功能實作合約。

在測試時使用本插件

也可以在 Buidler 測試時使用 deployProxy 和 upgraderProxy 函數,以下的代碼為昇級合約增加測試。

OpenZeppelin 可昇級合約插件 4/9 在 Buidler 環境下使用插件

參考

https://docs.openzeppelin.com/upgrades-plugins/1.x/buidler-upgrades


神隊友學長Andy , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:OpenZeppelin 可昇級合約插件 4/9 在 Buidler 環境下使用插件
喜欢 (0)
[[email protected]]
分享 (0)
andy
关于作者:
中年大叔,打拼 like young students.
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址