繁体   English   中英

使用 HardHat 访问智能合约公共变量的最佳方式是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM