Hardhat
在 Hardhat 控制台中自動執行一些命令
我剛開始使用 Hardhat 開發智能合約,我知道一旦部署,您可以通過控制台與合約動態互動(無需腳本)。
但是,每次在 Hardhat 網路中部署合約時,我都不得不編寫程式碼來檢索合約實例和所有者地址,這很煩人。
有沒有辦法至少部分地自動化這個過程?也許在我啟動控制台時呼叫參數化腳本?
tasks
是答案。如果您需要相同的功能,請仔細閱讀(比我做的更多)安全帽任務頁面。
我發現這個答案也很有用。
如果您的意思是每次使用安全帽控制台時都創建新實例,則無法自動化它。
您最多可以在部署合約後復製樣板程式碼並將其粘貼到控制台中。
在 deploy.js 文件中,您可以添加這段程式碼來列印部署和合約地址。
const { ethers } = require("hardhat"); async function main() { const [deployer] = await ethers.getSigners(); console.log("Deployer address:", deployer.address); console.log("Account balance:", (await deployer.getBalance()).toString()); const erc20 = await ethers.getContractFactory("erc20"); const ERC20 = await erc20.deploy(); console.log("The token address:", ERC20.address); } main() .then(() => process.exit(0)) .catch((error) => { console.error(error); process.exit(1); });
主函式中的前兩三行讓您列印部署者地址和部署者余額。console.log 行將為您提供合約地址。
稍後當您使用命令登錄到安全帽控制台時。
npx 安全帽控制台 –network
您可以使用此樣板程式碼。
add = "Address of the contract" name = "Name of the contract" instance = await ethers.getContractAt(add, name);
這將創建一個合約實例,您可以使用這些函式。
告訴我它是否有幫助!