比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

【翻譯】升級智能合約 (Hardhat)_BOX

Author:

Time:1900/1/1 0:00:00

原文鏈接

使用OpenZeppelin升級插件部署的智能合約可以通過升級來修改代碼,同時保留原合約地址、狀態和余額。這讓幫助我們為項目添加新功能,或修復在生產中可能發現的任何錯誤。

在本指南中,我們將學習:

為什么升級很重要

使用升級插件升級我們的盒子。

了解升級在引擎蓋下是如何工作的

學習如何編寫可升級合約

什么是可升級的合約

以太坊中的智能合約默認情況下是不可更改的。一旦創建了就無法改變,有效地為合約參與者扮演了不可篡改的合約的角色。

然而某些場景下,我們希望能夠修改它們。想想傳統合約:如果參與雙方都同意改變它,就可以去對齊進行改變。同樣在以太坊上,我們也希望能夠修改智能合約,以修復他們發現的bug,增加額外的功能,或者僅僅是改變它所執行的規則。

ssv.network 推出最新版公共測試網 Jato:3月30日消息,去中心化以太坊質押基礎設施 ssv.network 宣布將于今日推出最新版本的公共測試網 Jato。Jato 的 Gas 成本進行了優化、改進了驗證者賬戶管理、增加運行驗證者的節點數量等。 之前的測試網 Shifu 將逐步關閉。

至于主網上線時間,ssv.network? 表示,智能合約審計及為 Jato 實施反饋和建議、發布主網候選版本之后上線主網。[2023/3/30 13:35:20]

以下是你需要做的事情,以修復你無法升級的合約中的錯誤。

部署一個新版本的合約

手動將所有的狀態從舊的合約遷移到新的合約

更新所有與舊合約交互的合約,使用新合約的地址

聯系你的所有用戶,并說服他們開始使用新的部署

為了避免出現這種亂象,我們將合約升級直接內置到我們的插件中。這讓我們可以改變合約代碼,同時保留狀態、余額和地址。讓我們來看看如何實現。

以太坊信標鏈ETH質押APR再次下跌,當前已降至3.7%:金色財經報道,據以太坊官方網站數據顯示,以太坊信標鏈 ETH 質押 ARP 再次下跌,當前已降至 3.7%。歷史數據顯示,該指標于2022 年 11 月 14 日跌破 4%,之后在當月底又跌至 3.8%,本次系過去 3 個月內第三次下跌。此外,當前以太坊信標鏈質押 ETH 總量達到 17,111,615 枚 ETH,按照當前價格計算約合 280 億美元,驗證者總量為 503,586 個。[2023/1/23 11:27:20]

使用升級插件來升級合約

使用OpenZeppelin升級插件中的deployProxy部署一個新的合約時,該合約實例就可以實現可升級的功能。默認情況下,只有最初部署合約的地址才有權限執行升級操作。

deployProxy將創建以下事務;

部署執行合約

法國央行行長:不允許下一個加密寒冬仍存在金融不穩定性:11月15日消息,由于FTX破產事件,法國央行行長Francois Villeroy de Galhau在東京的一次演講中呼吁全球合作監管,以應對加密市場造成的金融不確定性,他說道:我要強調,這種不確定性是我們需要在國際上對加密資產進行強有力和快速監管的原因,我們不能允許下一個加密寒冬仍存在金融不確定性和不穩定性。[2022/11/15 13:08:22]

部署ProxyAdmin合約

部署代理合約并運行初始化函數

讓我們看看它是如何工作的,通過部署我們的Box合約的可升級版本,使用與之前部署時相同的設置:

//contracts/Box

//Readsthelaststoredvaluefunctionretrieve()publicviewreturns(uint256){returnvalue;}}

數據:過去一周Circle USDC流通量減少3億美元:9月10日消息,據官方消息,9月2日至9月9日期間,Circle共發行21億美元USDC,贖回24億美元USDC,USDC流通量減少3億美元。截至9月9日,USDC總流通量為517億美元,儲備量為519億美元,其中現金109億美元,短期美國國債410億美元。[2022/9/10 13:21:02]

首先需要安裝升級插件。

安裝HardhatUpgrades插件。

npminstall--save-dev

在創建Solidity文件后,我們現在使用upgradeProxy函數升級之前部署的實例。

upgradeProxy將創建以下事務:

部署執行合約

調用ProxyAdmin來更新代理合約以應用新的實現

美國國會議員:比特幣是公民權利的衍生品:金色財經消息,美國眾議院議員Pete Sessions發推稱,金融自由是美國的自由,比特幣是公民權利的衍生品。[2022/7/21 2:27:19]

創建一個腳本,使用upgradeProxy將Box合約升級為使用BoxV2。把這個文件保存為scripts/upgrade_box

main();

然后就可以部署我們的可升級合約。

使用run命令,可以在development網絡中部署升級Box合約。

$npxhardhatrun--networklocalhostscripts/upgrade_box

//Storesanewvalueinthecontractfunctionstore(uint256newValue)public{require(msg

//Readsthelaststoredvaluefunctionretrieve()publicviewreturns(uint256){returnvalue;}}

部署合約時,我們需要指定initializer函數名,并提供一個管理員地址。

//scripts/deploy_upgradeable_adminbox

main();

出于實踐目的,initializer作為構造函數。然而,請記住,由于它是一個常規函數,你將需要手動調用所有基礎合約的初initializer。

要了解更多關于這一點以及編寫可升級合約時的其他注意事項,請查看我們的WritingUpgradeableContracts指南。

升級

由于技術上的限制,當你將一個合約升級到新版本時,你不能改變該合約的存儲布局。

這意味著,如果你已經在合約中聲明了一個狀態變量,你就不能刪除它,不能改變它的類型,也不能在它之前聲明其他變量。在我們的Box例子中,這意味著我們只能在value之后添加新的狀態變量。

//contracts/Box.solcontractBox{uint256privatevalue;//Wecansafelyaddanewvariableaftertheoneswehaddeclaredaddressprivateowner;//...}

幸運的是,這種限制只影響狀態變量。你可以隨心所欲地改變合約的功能和事件。

注意如果你不小心弄亂了合約的存儲布局,當嘗試升級時,升級插件提出警告。

前往ModifyingYourContracts指南了解更多限制。

測試

為了測試可升級的合約,我們應該為實現合約創建單元測試,同時創建更高級別的測試,來測試與代理的交互。可以在測試中使用deployProxy,就像我們部署時一樣。

當要升級時,我們應該為新的實現合約創建單元測試,同時創建更高級別的測試,以便在升級后使用upgradeProxy通過代理測試交互,檢查在升級過程中是否保持狀態一致。

接下來的步驟

現在你已經知道如何升級智能合約,并且可以迭代開發你的項目,是時候把你的項目帶到測試網和正式網中去了。你可以放心,如果出現bug,你有工具來修改你的合約并修復它。

_請戳↓“閱讀原文”↓獲取文中鏈接_

免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。

本文來源于非小號媒體平臺:

登鏈社區

現已在非小號資訊平臺發布105篇作品,

非小號開放平臺歡迎幣圈作者入駐

入駐指南:

/apply_guide/

本文網址:

/news/9579147.html

免責聲明:

1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險

2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場

上一篇:

幣安為何推出第三條鏈?這對BNB意味著什么?

Tags:BOXPRORADOXYDBOX價格EPRO價格Unitradefoxy幣價格

加密貨幣
BKEX Global 關于支持KSM(Kusama )升級的公告_KEX

親愛的BKEXer: BKEXGlobal現對KSM進行維護升級,升級期間暫停KSM的充值功能和提現功能,幣幣交易功能不受影響。本次升級將會對原有的KSM充值地址進行更換.

1900/1/1 0:00:00
500元入場、2小時成百萬富翁,我所經歷的這波比特幣暴漲_DIN

比特幣,這個產生不過12年的幣種,正變得讓人越來越瘋狂。它是第一個加密的數字貨幣,2008年,極客中本聰提出了這一概念,2009年1月3日正式發行.

1900/1/1 0:00:00
Happy 牛 year! 2021元月主區幣種手續費5折, 人人有份_SHA

親愛的用戶: 新年伊始,幣君交易所為感謝各位用戶的支持與厚愛,現特舉辦“主區幣種幣幣交易手續費5折”活動.

1900/1/1 0:00:00
CITEX杠桿ETF交易對份額合并公告_SDT

尊敬的CITEX用戶: 由于當前杠桿ETF產品AVAX3S、MKR3S、SRM3S、ZRX3S、AAVE3S、YFI3S、SUSHI3S、ETH3S、FLM3S、FLM3L、COMP3S、BTC.

1900/1/1 0:00:00
5種常見的加密貨幣詐騙與防范策略_DEF

目錄前言社交媒體贈送騙局金字塔與龐氏騙局虛假應用程序網絡釣魚投資收益總結前言當今世界中,您的加密貨幣對犯罪分子來說也是一筆非常寶貴的資產:可流動、易于攜帶,且一旦完成交易后便不可恢復.

1900/1/1 0:00:00
1.14午間行情:強勢反彈 新一輪漲勢是否開啟_區塊鏈

文章系金色財經專欄作者牛七的區塊鏈分析記供稿,發表言論僅代表其個人觀點,僅供學習交流!金色盤面不會主動提供任何交易指導,亦不會收取任何費用指導交易,請讀者仔細甄別,謹防上當.

1900/1/1 0:00:00
ads