[英]what is the best way to access smart contract public variables using HardHat?
我想测试我的智能合约,但不知道在部署联系人后如何访问公共变量? 例如:
contract NFT is ERC721, Ownable {
using SafeMath for uint256;
bool public isActive = False;
uint256 public startingIndexBlock;
uint256 public startingIndex;
}
我想访问变量isActive
我有run.js
将合同部署到本地环境中,这是代码:
async function main() {
const [owner] = await hre.ethers.getSigners();
console.log(
"Deploying contracts with the account:",
owner.address
);
const contractFactory = await hre.ethers.getContractFactory("ApeNFT");
// Deploy contract with the correct constructor arguments
const contract = await contractFactory.deploy("Mom", "MM" ,10000, 0);
let isActive = await contract.isActive.toString();
}
在这里,我永远不会得到 isActive 的值。 有谁知道如何解决这个问题?
如果你的设置是正确的,任何你定义为公共的东西,solidity 都会分配一个 getter function。
// contract.isActive()
let isActive = await contract.isActive().toString();
console.log(isActive)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.