Как передать массив в качестве параметра функции?

Я сталкиваюсь с той же проблемой, что и этот вопрос: передача массива в качестве параметра из javascrpt (web3) в функцию Solidity

Если я вызываю свою функцию в браузере-solidity с параметром [122,44], она работает хорошо. Но если я использую его в своем собственном веб-интерфейсе, он выдает «Ошибка: новый BigNumber() не число». Я называю это примерно так:

myContract.myFunction([122,44],{from:accounts[0]},function(err,res){...})

или

myContract.myFunction(["122","44"],{from:accounts[0]},function(err,res){...})

Я не знаю почему. Должен получиться тот же результат, что и в браузере-солидии.

Ответы (1)

Какие типы ожидает ваша функция солидности? Если это uint или int, вы должны преобразовать свои параметры в BigNumber, прежде чем передавать его. Например:

import BigNumber from 'bignumber.js';
let myParams = [122,44];
let convertedParams = myParams.map( item => { return new BigNumber(item)});
myContract.myFunction(convertedParams,{from:accounts[0]},function(err,res){...})