前言
本文參考 Alchemy 的範例進行實作,Alchemy 是一個區塊鏈開發者平台,能夠讓開發者訪問以太坊區塊鏈上的 API 端點,並且可以讀寫交易。
本文採用的區塊鏈測試網路與範例文章不同,使用的是 rinkeby
測試網路。
前置作業
- 首先,在 Alchemy 註冊,並新建應用程式,選擇 Rinkeby 測試網路。
- 下載 MetaMask 到擴充套件,創建錢包後,將「Show test networks」選項開啟。
- 到 Alchemy Rinkeby faucet 充值 Rinkeby 測試網路的 ETH 幣到自己的錢包地址。
開發
建立專案。
1 | mkdir smart-contract-example |
初始化專案。
1 | npm init |
安裝 hardhat
套件。Hardhat 是一個自動化構建智能合約的環境和工具。
1 | npm install --save-dev hardhat |
使用 npx
執行 hardhat 指令,並選擇「Create an empty hardhat.config.js」選項。
1 | npx hardhat |
新增 contracts
資料夾,用來放置智能合約。
1 | mkdir contracts |
新增 scripts
資料夾,用來放置部署腳本,以及與智能合約互動的腳本。
1 | mkdir scripts |
在 contracts
資料夾新增 HelloWorld.sol
檔。需要使用 Solidity 語言撰寫。
1 | // SPDX-License-Identifier: MIT |
安裝 dot-env
套件。
1 | npm install dotenv --save |
新增 .env
檔。
1 | API_URL=https://eth-rinkeby.alchemyapi.io/v2/your-api-key |
安裝 @nomiclabs/hardhat-ethers
和 ethers
套件。
1 | npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" |
將 hardhat.config.js
檔修改如下:
1 | /** |
使用以下指令編譯智能合約。
1 | npx hardhat compile |
在 scripts
資料夾新增 deploy.js
檔。
1 | async function main() { |
部署
使用以下指令,將智能合約部署在 rinkeby
測試網路。
1 | npx hardhat run scripts/deploy.js --network rinkeby |
顯示結果如下:
1 | Contract deployed to address: 0x6839691078Ef669589F65Fca9968f6430D509812 |
到 Rinkeby 測試網路的 Etherscan 查看合約。