我想测试一个返回数组结构的函数。
这是示例代码。
struct Hoge {
uint id;
string text;
}
・・・
constructor() public {
hoges.push(Hoge(1, "Hogehoge"));
}
・・・
function hogehoge() external view returns(Hoge memory) {
return hoges[0];
}
我的测试就是这个。
var Sample = artifacts.require('./Sample.sol');
contract('sample', function(accounts) {
it('facilitates number of place and check-in', function() {
return Sample.deployed().then(function(instance) {
sampleInstance = instance;
return sampleInstance.hogehoge()
}).then(function(result) {
hoges = result;
assert.equal(hoges.id, 1);
})
})
})
但是,错误显示invalid solidity type!: tuple
。
返回数组结构的函数需要ABIEncoderV2
。
我听说web3正在尝试支持ABIEncoderV2
,但是我不确定web3现在是否支持ABIEncoderV2
。
我的版本是这个。 松露v4.1.15(核心:4.1.15) Solidity v0.4.25(solc-js)
请给我任何建议,以测试我的代码吗?
答案 0 :(得分:0)
支持从松露v5 ABIEncoderV2
开始。
我建议您从当前版本升级到v5。