Neo*_*ang 5 javascript blockchain ethereum solidity smartcontracts
我想测试我的智能合约,但不知道部署联系人后如何访问公共变量?例如:
contract NFT is ERC721, Ownable {
using SafeMath for uint256;
bool public isActive = False;
uint256 public startingIndexBlock;
uint256 public startingIndex;
}
Run Code Online (Sandbox Code Playgroud)
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();
}
Run Code Online (Sandbox Code Playgroud)
在这里,我永远无法获取 isActive 的值。有谁知道如何解决这个问题?
如果您的设置正确,任何您定义为公共的内容,solidity 都会分配一个 getter 函数。
// contract.isActive()
let isActive = await contract.isActive().toString();
console.log(isActive)
Run Code Online (Sandbox Code Playgroud)