Я хочу протестировать функцию, которая возвращает структуру массива.
Это пример кода.
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)
Не могли бы вы дать мне какой-нибудь совет, как проверить мой код, пожалуйста?