我刚刚开始使用安全帽来开发一个智能契约,并且我知道,一旦部署到控制台,您就可以通过控制台与契约进行动态交互(没有脚本)。
但是,我发现,每次我在“草帽”网络中部署契约时,都需要编写代码来检索契约实例和所有者地址,这让我感到非常烦人。
是否有办法,至少部分地,使这个过程自动化?也许在我启动控制台的时候打电话给一个参数化脚本?
发布于 2022-09-11 05:13:54
如果您的意思是在每次硬顶帽控制台时创建新实例,那么就没有办法将其自动化。
您最多能做的就是复制样板代码,并在部署合同后将其粘贴到控制台中。
在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安全帽控制台.网络
你可以使用这个样板代码。
add = "Address of the contract"
name = "Name of the contract"
instance = await ethers.getContractAt(add, name);
这将创建一个契约的实例,您可以使用这些函数。
告诉我是否有用!
https://ethereum.stackexchange.com/questions/135372
复制相似问题