新的 Solidity 開發堆棧:Hardhat + Ethers + Waffle + Typescript [教程]

胡家維 Hu Kenneth
My blockchain development Journey
17 min readJan 11, 2022

--

以太坊的發展雖然在感覺上還很初級,但已經走了很長一段路。當我在 2017 年開始開發 Solidity 智能合約和以太坊 dapp 時,Truffle 和 Web3.js 是行業標準。這些都是很棒的工具,我非常尊重建造它們的人。但是,任何使用過它們的人都處理過錯誤,有時還會遇到糟糕的開發人員體驗。有一些新工具顯然受到了這些第一批工具的啟發,並使開發人員的流程變得更好。

Hardhat ( Truffle的另一個選擇)

Hardhat 將自己標榜為“以太坊智能合約開發人員的任務運行者”。 在實踐中,這意味著該工具將幫助您使用模板引導您的 Solidity 項目,並為您提供測試智能合約並最終部署到以太坊區塊鏈所需的所有腳手架。 以前,使用 Truffle 的初始化、編譯、測試和遷移功能來引導您的 Solidity 項目是標準程序。 當你的 Solidity 合約恢復和 console.log() 用於調試時,Hardhat吹捧的一些殺手級功能是堆棧跟踪

Ethers.js(Web3.js 的另一個選擇)

Ethers.js 是一個用於與以太坊區塊鏈交互的 Javascript SDK。 在開始 Solidity 開發時,我長期使用 Web3.js。 當我第一次嘗試 Ethers 時,我被它設置起來的容易程度和 API 的好用程度所震撼。 我敦促任何習慣使用 Web3.js 的人嘗試一下 Ethers。 它具有處理錢包、賬戶和合約的所有必要功能,還具有一些簡潔的實用程序,例如 ABICoder、HDNode、BigNumber,以及用於十六進製字符串、以太單位和以太坊地址的各種格式化實用程序。

Waffle(Truffle 測試工具的另一個選擇)

以太坊華夫餅是以太坊智能合約的輕量級測試運行器。 它內置了一些非常好的測試工具,比如用於以太坊地址、哈希和 BigNumbers 的 Chai 匹配器,它是 Typescript 原生的,並且與 Ethers 配合得非常好。
Typescript無處不在!

Typescript最近風靡一時,這是有充分理由的。 對我來說,Typescript 的絕對改變者是 IDE 集成,它為您提供所有類屬性、對象鍵、函數參數等的自動完成功能。在熟悉 Typescript 之後,我再也不能回到編寫 vanilla Javascript 了。

我上面提到的所有工具的好處是它們都與 Typescript 配合得非常好,一旦一切就緒,開發人員體驗就是一個夢想。

項目設置

--

--

胡家維 Hu Kenneth
My blockchain development Journey

撰寫任何事情,O型水瓶混魔羯,咖啡愛好者,Full stack/blockchain Web3 developer,Founder of Blockchain&Dapps meetup ,Udemy teacher。 My Linktree: https://linktr.ee/kennethhutw