使用hardhat 写测试用例访问合约数组的疑问?

合约中声明了数组

string[] public aaa;

在合约构造方法中传入了数组参数,并初始化了。 然后使用hardhat 写测试用例时

expect(await  contracts.aaa()).to.equal(bbb)

一直提示: Error: missing argument: passed to contract (count=0, expectedCount=1, code=MISSING_ARGUMENT, version=contracts/5.0.10)

但是访问数组的单个元素是可以访问的,比如:

expect(await  contracts.aaa(0)).to.equal(bbb[0])

这样是正常运行的。求指导一下原因?

如果我想拿合约内的整个数组信息,应该怎么访问呢?

请先 登录 后评论

最佳答案 2021-06-02 09:59

string[] public aaa;

默认生成的函数, 就是获取用下标来获取单个元素。

你再写一个函数,获取所有的元素就可以。

请先 登录 后评论

其它 1 个回答

飞雪
请先 登录 后评论
  • 2 关注
  • 0 收藏,1555 浏览
  • 飞雪 提出于 2021-06-02 07:39