鏈上DAPP系統開發|智慧合約DAPP開發搭建
釋出合約的位元組碼到某個區塊鏈網路,網路地址和deployer賬戶,這些我們可以在hardhat.config.js檔案中配置。
整合外掛:
hardhat工作流還支援外掛機制,外掛能夠將特定邏輯作為hook function(鉤子函式)插入到對應的task(任務)當中,所以,當我們執行某個任務時,需要確認它是否依賴了某個外掛,否則它可能有與預期不同的行為。
引入外掛的方式是,首先使用npm安裝這個外掛,DAPP智慧合約13z開4z77發z558,再於hardhat.config.js配置檔案頭部引入即可。
HRE執行環境變數:
當我們在JS檔案中引入hardhat時,HRE會被插入執行環境。一些外掛可能會擴充HRE,將他們的實用函式方法插入到HRE中,類似地,我們也可以使用這種方法構建特定的hardhat外掛。但一般來說,我們不需要這麼做。
HRE會在我們執行npx hardhat run任務時被自動插入到全域性變數中去,我們可以透過這種方法編寫某些簡單的合約釋出指令碼或合約互動指令碼。
3.2單元測試
編寫合約的第二步是編寫合約的單元測試。當我們執行npx hardhat test任務時,hardhat會自動尋找./test資料夾下的單元測試並執行它們。這個預設的地址可以在hardhat.config.js配置檔案中使用path.tests修改:
//Rewrite the./test folder to./tests
paths:{
tests:‘./tests’,
},
執行測試所需要安裝的依賴可以在這個指南上找到:
與傳統的單元測試一樣,使用Mocha作為單元測試框架。對於合約特定的變數型別,我們使用Waffle和chai作為斷言庫。
一般來說,我們在hardhat.config.js配置檔案頭部引入測試輔助外掛 nomiclabs/hardhat-waffle可以幫助我們解決大部分問題,而不需要額外手動安裝mocha,waffle和chai並進行配置,與前一小節所提到的HRE相關,它們會被自動插入HRE執行環境。
關於合約事件,合約方法呼叫,BigNumber等完整的斷言庫範例可以在這個文件中找到:
注意:合約的單元測試中可以使用contractInstance.connect(signer)來隨意改變呼叫合約的外部賬戶。
3.3改善測試效率
編寫單元測試首先需要我們在測試鉤子中編寫釋出合約的程式碼,這意味著,我們需要在每次beforeEach鉤子中重新發布我們的合約並使其從零狀態開始執行。
即使hardhat支援在記憶體中執行區塊鏈並整合了單元測試流程,但這樣反覆的釋出合約也會極大拖慢測試速度。
因此,就單元測試的實踐,我向大家推薦hardhat-deploy外掛。
hardhat-deploy外掛支援使用evm_snapshot快速地跳轉到某個高度的區塊鏈狀態,因此,我們可以使用它在單元測試中維護測試前、中、後以及各種特定高度狀態,極大地加快測試速度。
注意,引入hardhat-deploy外掛,需要修改對應的 nomiclabs/hardhat-ethers外掛來源,這可能會導致在未來的npm install中帶來版本衝突,如果你遇到了版本衝突,可以使用npm install--force跳過版本依賴檢查,強制安裝兩者。
“devDependencies”:{
“ nomiclabs/hardhat-ethers”:“npm:hardhat-deploy-ethers”,
“hardhat-deploy”:“^0.11.2”,
…
}
簡單來說,在單元測試中,我們可以使用:
await deployments.fixture([‘SomeContractName’]);
來確保在測試執行前跳回某個狀態。如果你需要更加複雜和自定義的fixture(而非直接跳回某個合約釋出後的乾淨狀態)
版權宣告 :本文作者由 西安鏈酷科技 原創文章,著作權歸作者所有,轉載請告知作者並註明出處
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70035240/viewspace-3009007/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 馬蹄鏈智慧合約dapp系統開發搭建APP
- 鏈上智慧合約錢包系統開發搭建DAPPAPP
- DApp智慧合約系統開發APP
- FDF智慧合約系統開發|馬蹄鏈DAPP開發搭建技術APP
- 馬蹄鏈智慧合約DAPP系統開發搭建詳情APP
- DAPP智慧合約NFT鏈上質押挖礦系統開發搭建方案APP
- JAva智慧合約DAPP系統開發(區塊鏈)JavaAPP區塊鏈
- matic馬蹄鏈智慧合約dapp系統開發搭建介紹APP
- 馬蹄鏈智慧合約DAPP開發需求丨馬蹄鏈智慧合約DAPP質押挖礦系統開發(開發案例)APP
- 智慧合約Dapp系統開發(方案)APP
- DAPP開發流程 | DAPP智慧合約開發APP
- 區塊鏈DApp開發 | 跨鏈智慧合約技術搭建開發區塊鏈APP
- Dapp智慧合約遊戲鏈遊開發丨智慧合約遊戲鏈遊系統開發案例版APP遊戲
- DAPP馬蹄鏈智慧合約系統開發(案例)丨DAPP馬蹄鏈開發原始碼APP原始碼
- Dapp 合約代幣系統開發智慧合約APP
- DAPP公有鏈智慧合約鏈上系統開發原始碼版設計APP原始碼
- 九層天塔DAPP系統開發技術|鏈上智慧合約dapp開發方案APP
- dapp智慧合約公排系統開發技術搭建APP
- DAPP馬蹄鏈智慧合約開發正式版丨DAPP馬蹄鏈智慧合約系統開發(詳解及案例)APP
- DApp智慧合約鏈上盲盒代幣挖礦系統開發APP
- DAPP智慧合約鏈上質押挖礦模式系統開發丨公鏈挖礦系統開發原始碼搭建APP模式原始碼
- polygon馬蹄鏈智慧合約dapp系統開發|NFT鏈遊戲搭建技術GoAPP遊戲
- polygon馬蹄鏈質押DApp開發合約系統搭建GoAPP
- DAPP智慧合約/系統開發/智慧合約原始碼/DAPP/Defi/NFT/IDOAPP原始碼
- DAPP合約系統開發技術丨DAPP馬蹄鏈系統開發成熟DmeoAPP
- BSC鏈智慧合約dapp系統定製開發(現成原始碼搭建)APP原始碼
- 區塊鏈智慧合約DApp開發系統公鏈質押挖礦系統開發區塊鏈APP
- Bsc幣安鏈智慧合約Dapp開發技術搭建APP
- 長沙區塊鏈DAPP智慧合約系統開發方案區塊鏈APP
- 區塊鏈BSC智慧合約DAPP開發區塊鏈APP
- 佛薩奇(智慧合約)系統dapp開發技術搭建APP
- DAPP 智慧合約NFT鏈上質押挖礦系統開發詳情APP
- DAPP系統開發邏輯丨DAPP系統開發功能丨合約DAPP系統開發技術APP
- 馬蹄鏈Dapp智慧合約(系統開發)案例丨馬蹄鏈MATIC智慧合約技術開發原理APP
- DAPP智慧合約迴圈互助遊戲開發原理丨DAPP智慧合約迴圈互助遊戲系統開發(開發案例)APP遊戲開發
- DAPP鏈上合約互助模式系統開發詳情介紹APP模式
- matic馬蹄鏈智慧合約dapp系統開發模式定製APP模式
- Polygon馬蹄鏈(matic)智慧合約DApp開發系統技術GoAPP