我想测试一个返回数组结构的函数。
这是示例代码。
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)坚固性v0.4.25 (solc-js)
你能告诉我如何测试我的代码吗?
发布于 2019-05-22 06:58:45
从松露开始,支持v5 ABIEncoderV2。我建议从当前版本升级到v5。
https://stackoverflow.com/questions/56236712
复制相似问题