Заранее извиняюсь за мой английский, но я все еще учусь :)
Я делаю несколько тестов с контрактом, который имеет эту конкретную функцию
function createBuyOrder(
address token,
uint tokensTotal,
uint8[] exchanges,
address[5][] orderAddresses,
uint[6][] orderValues,
uint[] exchangeFees,
uint8[] v,
bytes32[] r,
bytes32[] s
)
как видите, мне нужно передать в функцию 2 вложенных массива, но когда я делаю это в ремиксе, я получаю эту ошибку: "Ошибка кодирования аргументов".
Аргументы, которые я передаю:
токен: "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359"
жетоновВсего: 1233
обмены: [1]
адрес заказа :
[["0x0004e79c978b95974dca16f56b516be0c50cc652"], ["0x0000000000000000000000000000000000000000"],["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"],["0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359"],["0xa258b39954cef5cb142fd567a46cddb31a670124"]]
значения заказа :
[[20000000000000000000]
Комиссия за обмен: [0]
v: [27]
р:["0xde7ff8f42676ba3bb5986f869ac00b6aa061f41a281b943f9e8c88c3c17cd4fa"]
s:["0x2628b4330c1cb3e3ee6be748cc5c55ed19374a016063ebd9a0b1c77fd91e8024"]
Хорошо, я немного поиграл с двумерными массивами после прочтения вашего вопроса, и оказалось, что когда вы ожидаете аргумент в этой форме:
uint[6][] orderValues
ваш внешний «массив» может иметь любой размер, но каждый «внутренний» должен содержать ровно шесть элементов.
Так, например, вместо предоставления такого аргумента
[[1],[1],[1],[1],[1],[1]]
вы должны предоставить это так:
[[1,1,1,1,1,1]]
Если он не подходит к вашей модели, вы должны как-то его переставить.
Изменить: я также заметил, что при попытке указать очень большое число в качестве аргумента uint, например 2000000000000000000000 в вашем примере, вы также можете получить некоторую ошибку. Чтобы решить эту проблему, вы можете попробовать поместить это значение в двойные кавычки, даже если это uint, а не строка, например: "200000000000000000000"