Как отправить массив структур из web3js в контракт Solidity?

Я получаю сообщение об ошибке при передаче (массив объектов javascript) из web3js в функцию solidity, которая принимает (массив структур) в качестве параметра.

не могли бы вы помочь мне?

ниже код и ошибка

// web3js code

let slctedItems = [{name:'item1', qty:2},{name:'item2', qty:3}];

contract.methods.calcItems(slctedItems).call((err, total) => {

      // code

    })

//solidity code

 struct Item{

        string name;
        uint qty;

    }

function calcItems(Item[] memory _items) public view returns(uint){

        //code 
       // return uint
    }

// the error i got
Uncaught TypeError: Cannot read property 'forEach' of undefined
    at r (web3.min.js:1)
    at web3.min.js:1
    at Array.map (<anonymous>)
    at i.encodeParameters (web3.min.js:1)
    at web3.min.js:1
    at Array.map (<anonymous>)
    at Object.o._encodeMethodABI (web3.min.js:1)
    at Object.o._processExecuteArguments (web3.min.js:1)
    at Object.o._executeMethod (web3.min.js:1)
    at calc_loads (main.js:97)

онлайн-пример проблемы и написанный мной код. по ссылке ниже:
https://malaak-habashy.github.io/

Я обнаружил проблему на github web3js. см. ссылку ниже:
https://github.com/ethereum/web3.js/issues/3538


person Community    schedule 23.05.2020    source источник
comment
Пожалуйста, обновите это? У меня такой же спор, я использую последнюю версию, спасибо   -  person irkoch    schedule 20.07.2020
comment
@ChokriAbd Теперь, после выхода новой версии, у меня все работает нормально. Вы можете проверить мой исходный код, чтобы сравнить его с вашим кодом. здесь: github.com/malaak-habashy/loads-calc   -  person    schedule 21.07.2020
comment
Код смарт-контракта: github.com/malaak- habashy / load-calc / blob / master / truffle / строка 61   -  person    schedule 21.07.2020
comment
Код Web3.js: github.com/malaak -habashy / load-calc / blob / master / src / components /   -  person    schedule 21.07.2020


Ответы (1)


Проблема исправлена ​​в новом выпуске 1.2.9.

person Community    schedule 12.07.2020