前言
本文參考 Alchemy 的範例進行實作,Alchemy 是一個區塊鏈開發者平台,能夠讓開發者訪問以太坊區塊鏈上的 API 端點,並且可以讀寫交易。
本文採用的區塊鏈測試網路與範例文章不同,使用的是 rinkeby
測試網路。
互動
在 scripts
資料夾新增 interact.js
檔。
1 | const { API_KEY, PRIVATE_KEY, CONTRACT_ADDRESS } = process.env; |
修改 .env
檔。
1 | API_URL=https://eth-rinkeby.alchemyapi.io/v2/your-api-key |
引入合約的 ABI(Application Binary Interface),ABI 是被生成用來與合約互動的介面,以下將 ABI 印出來觀察。
1 | const contract = require("../artifacts/contracts/HelloWorld.sol/HelloWorld.json"); |
執行 interact.js
檔。
1 | npx hardhat run scripts/interact.js |
輸出結果如下:
1 | Compiling 1 file with 0.7.3 |
修改 interact.js
檔,將智能合約實例化:
1 | const { API_KEY, PRIVATE_KEY, CONTRACT_ADDRESS } = process.env; |
繼續修改 interact.js
檔,呼叫 message()
方法以讀取智能合約中的原始訊息。
1 | // ... |
執行 interact.js
檔。
1 | npx hardhat run scripts/interact.js |
輸出結果如下:
1 | The message is: Hello World! |
修改 interact.js
檔,呼叫 update()
方法以更新智能合約中的原始訊息。
1 | async function main() { |
輸出結果如下:
1 | The message is: Hello World! |