Поддерживает ли трюфельный тест ABIEncoderV2? - PullRequest
1 голос
/ 21 мая 2019

Я хочу протестировать функцию, которая возвращает структуру массива.

Это пример кода.

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)

Не могли бы вы дать мне какой-нибудь совет, как проверить мой код, пожалуйста?

1 Ответ

0 голосов
/ 22 мая 2019

Начиная с трюфеля v5 ABIEncoderV2 поддерживается. Я бы предложил обновить вашу текущую версию до v5.

https://truffleframework.com/blog/truffle-v5-has-arrived

...