Hardhat

在 Hardhat 控制台中自動執行一些命令

  • September 11, 2022

我剛開始使用 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);

這將創建一個合約實例,您可以使用這些函式。

告訴我它是否有幫助!

引用自:https://ethereum.stackexchange.com/questions/135372