智能合約開發
Hardhat 開發框架
Hardhat 是一個彈性的 JavaScript 與 TypeScript 以太坊開發環境,長期以來是偏好在 Node 中撰寫工具、腳本與測試之團隊的預設選擇。Foundry 以 Solidity 為母語,Hardhat 則活在 npm 生態系中,倚賴其豐富的外掛函式庫。
它的核心是 Hardhat Network,一個為開發量身打造的本地 EVM。當交易回滾時它給你 Solidity 的呼叫堆疊追蹤,讓你從合約內部呼叫 console.log 印出除錯輸出,並能在所選區塊把主網(或任何鏈)分叉,使你能對真實、已部署的協議與餘額測試你的程式碼。你以 JS/TS 撰寫部署腳本與 Mocha/Chai 測試——通常透過 ethers.js 之類的函式庫驅動合約——並以各種外掛擴充工作流程,用於 gas 報告、覆蓋率、在瀏覽器上驗證合約,以及 TypeChain 型別產生。
與 Foundry 相比,Hardhat 以原始測試速度換取 JavaScript 生態系的廣度以及強大的腳本與任務自動化;許多團隊兩者並用,以 Foundry 跑快速的模糊測試、以 Hardhat 做部署管線與整合膠水。較新版的 Hardhat 也加入了以 Solidity 為基礎的測試與更快的 Rust 動力內核,縮小了歷史上的差距。
const token = await ethers.deployContract("Token");
await expect(token.transfer(bob, 100))
.to.changeTokenBalance(token, bob, 100);
// hardhat.config: forking mainnet at a block lets you test live protocolsJS/TS 工具、主網分叉、合約內 console.log。
合約內的 console.log 只在 Hardhat Network 上有效——它是除錯墊片而非真正的操作碼,在真實鏈上會被移除或回滾。切勿把它帶上正式環境。
另见