Table of Contents

目前為止我們有了localhost環境、有一份solidity合約、也已經compile成json格式了,現在可以進入佈署合約的環節囉

Deploy Script

佈署合約前,我們需要準備一份deploy script。而在hardhat創建sample project的過程中,它已經自動把這份script給準備好了,我們要做的只要把檔名改一下(windows中使用move,在linux使用mv指令):

move scripts/sample-script.js scripts/deploy.js

將檔案打開來看看,裡面簡單的紀錄了deploy要做的內容,包括了定義與使用main function等,另外這裡也用了一個名為ethers的library。

deploy.js中的內容,以及關於main function的註釋 by Bonnie Chou

我們也可以同時打開 contracts/Greeter.sol 來與 deploy.js 對照,觀察兩份檔案是如何互動的:

同時開啟合約內容進行對照

Deploy

有了deploy script之後,就可以在localhost進行合約佈署了。在my-first-dapp目錄下輸入以下指令:

npx hardhat run scripts/deploy.js --network localhost

執行後會產生出一串合約地址,像這樣
Greeter deployed to: 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512

切回到執行 npx hardhat node 指令的視窗,可以從一堆綠色的活動紀錄中找到合約佈署的紀錄,包括合約的名稱、合約地址、交易地址...等。另外,產生這份合約時也花費了一些gas fee,並在交易時將gas從測試錢包中扣除了。

npx hradhat node 指令視窗中的合約佈署紀錄

接下來,把合約地址複製下來備用,我們將在日後的篇幅中介紹如何使用這串地址。