目前為止我們有了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。
我們也可以同時打開 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從測試錢包中扣除了。
接下來,把合約地址複製下來備用,我們將在日後的篇幅中介紹如何使用這串地址。