本文作者:區塊鏈行業專業打雜-為理想而活
為什么要升級合約?
根據設計,智能合約是不可變的。另一方面,軟件質量在很大程度上取決于升級和修補源代碼以生成迭代版本的能力。盡管基于區塊鏈的軟件從技術的不變性中獲益匪淺,但修復錯誤和潛在的產品改進仍然需要一定程度的可變性。OpenZeppelinUpgrades通過為智能合約提供易于使用、簡單、健壯和可選的升級機制來解決這一明顯的矛盾,該機制可以由任何類型的治理控制,無論是多重簽名錢包、簡單地址還是復雜的DAO。
首次部署
需要部署三個合約,分別是邏輯合約,代理管理合約,代理合約。邏輯合約就是我們自己的業務合約,需要滿足OpenZeppelin可升級合約的條件。以下業務合約以邏輯合約為例進行說明。本文使用remix部署合約,如需快速部署請參考:用Hardhat進行升級部署|登鏈社區
歐洲央行考慮在分布式賬本技術平臺上以歐元結算金融交易:金色財經報道,歐洲央行目前正在考慮是否發行零售央行數字貨幣(CBDC),供普通交易者和公民使用,包括那些使用加密貨幣基礎技術的市場。
根據歐洲央行周五發布的一份聲明,使用歐元貨幣的中央銀行(統稱為歐元系統)正在 \"研究DLT(分布式賬本)平臺上記錄的批發金融交易如何以中央銀行貨幣結算\"。該計劃的目的是鞏固和進一步發展歐元體系中央銀行在該領域正在進行的工作,并深入了解不同的解決方案如何促進 TARGET 服務與分布式賬本技術平臺之間的交互。[2023/4/28 14:33:15]
第一步,邏輯合約
首先部署邏輯合約。
//SPDX-License-Identifier:MITpragmasolidity^0
俄羅斯中央銀行和財政部就關于在國際貿易中使用比特幣和加密貨幣的法案草案達成一致:金色財經報道,Bitcoin Magazine在社交媒體上稱,俄羅斯中央銀行和財政部就關于在國際貿易中使用比特幣和加密貨幣的法案草案達成一致。[2022/9/22 7:14:48]
mapping(string=>uint256)privatelogic;eventlogicSetted(stringindexed_key,uint256_value);functionSetLogic(stringmemory_key,uint256_value)external{logic=_value;emitlogicSetted(_key,_value);}functionGetLogic(stringmemory_key)publicviewreturns(uint256){returnlogic;}functionGetInitializeData()publicpurereturns(bytesmemory){returnabi
加密投資巨頭DCG首次注冊游說活動:金色財經報道,根據8月15日披露的文件,加密投資巨頭Digital Currency Group(DCG)公共政策副總裁Julie Stitzel已注冊代表DCG進行游說,此舉是該公司的首次直接游說活動。截至最近提交的文件,DCG報告每季度的游說支出為120,000美元。然而這些都是通過與外部公司Klein Johnson Group和Capitol Counsel合作簽訂的合同。[2022/8/17 12:29:39]
}
選中邏輯合約并部署。
image
image.png
部署新的業務合約,結束后應有三個邏輯合約實例
數據:最近30天以太坊網絡新增近910萬枚NFT資產:6月2日消息,根據NFTScan瀏覽器數據顯示,最近30天以太坊網絡新增9,099,756枚NFT資產,平均每天新增鑄造30.33萬NFT資產,比NFT熱潮期間上漲 50%,處于高速發展的狀態。[2022/6/2 3:57:59]
image.png
新的邏輯合約地址:0xb27A31f1b0AF2946B7F582768f03239b1eC07c2c
替換舊的邏輯合約
此時調用部署好的管理合約進行升級,此合約提供了兩個升級方法
upgrade,需要傳入proxy地址,新的邏輯實現地址。
upgradeAndCall,需要傳入roxy地址,新的邏輯實現地址,初始化調用數據。
由于數據是保存在代理合約中,這份數據已經初始化過了,不需要再初始化,所以調用upgrade方法即可,傳入參數如下:
代理合約地址:0xddaAd340b0f1Ef65169Ae5E41A8b10776a75482d
新的邏輯合約地址:0xb27A31f1b0AF2946B7F582768f03239b1eC07c2c
測試新邏輯合約
此時升級已完成,也是最后一步。
此時不需要修改任何地方,只需要使用已經傳入代理合約地址的AtAddress方法。
image.png
生成后將有四個邏輯合約實例:1.首次部署的邏輯合約,2.代理后的邏輯合約,3.部署的新邏輯合約,4.以升級的邏輯合約
調用生成的新邏輯合約中的GetLogic方法,傳入,此時應返回100,這證明您的合約以成功升級,因為舊的邏輯合約傳入了,修改后的邏輯合約中GetLogic方法在返回值上加上了,若為99證明升級失敗。
至此,可升級的代理合約就部署并測試完成。
參考資料
區塊鏈行業專業打雜-為理想而活:https://learnblockchain.cn/people/1877
用Hardhat進行升級部署|登鏈社區:https://learnblockchain.cn/article/2908
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/10311795.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
每周編輯精選WeeklyEditors'Picks
親愛的BitMart用戶:BitMart將于2021年9月8日上線代幣PETGAMES(PETG)。屆時將開通PETG/USDT交易對.
1900/1/1 0:00:00第六次波卡插槽拍賣正在火熱進行中。目前Calamari以141,645.7694KSM的質押量排名靠前,截至2021年9月7日17:40,Gate.ioKMA鎖倉理財已鎖585.350281KS.
1900/1/1 0:00:00尊敬的用戶: AOFEXOTC提現策略此前已啟動T1模式,為了更好地保護用戶權益,降低用戶銀行賬戶被凍結的風險,同時提升用戶體驗,現已開放OTC市商自由選擇使用T1模式的功能.
1900/1/1 0:00:00薩爾瓦多堅決推進比特幣法幣化,并買入比特幣,這也或將帶動拉美國家跟風嘗試比特幣法幣化,將成為比特幣持續走強的又一重要推動力.
1900/1/1 0:00:00金色財經報道,美國證券交易委員會就加密貨幣投資領域潛伏的騙局向投資者發出警告,“欺詐者繼續利用日益流行的數字資產來引誘散戶投資者參與詐騙,這往往會導致毀滅性的損失.
1900/1/1 0:00:009月3日下午,《N-POWER第一屆Odaily?NFT線上加密論壇》成功舉行。本次活動邀請到多個熱門鏈游項目、加密藝術交易平臺、新生態公鏈、知名投資機構等參與活動,揭秘市場投資趨勢,展望NFT.
1900/1/1 0:00:00