Развертывание массива адресов в сети Mainnet в качестве параметра конструктора в интеллектуальном контракте Remix Solidity не работает - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь развернуть смарт-контракт в основной сети через Remix / Metamask. У меня есть массив адресов для параметра конструктора и я не могу принять транзакцию. Я пробовал как двойные кавычки "", так и одинарные "вокруг каждого адреса. Кто-нибудь имеет представление о том, как записать параметр массива так, чтобы он интерпретировался как массив, а не строка (см. Рисунок)?

The error message in remix

Спасибо!

1 Ответ

0 голосов
/ 01 ноября 2018

Вам просто нужно передать массив адресов в двойных кавычках. Например,

Прагма солидность ^ 0,4.25;

contract Test {
  address[] mAddrs;
  event Deployed(address indexed theaddr);

  constructor(address[] addrs) public {
    mAddrs = addrs;

    for (uint8 i = 0; i < mAddrs.length; i++)
      emit Deployed(mAddrs[i]);
  }
}

Развертывание с аргументом, установленным в ["0xca35b7d915458ef540ade6068dfe2f44e8fa733c", "0x14723a09acff6d2a60dcdf7aa4aff308fddc160c", "0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db"]

Результат (первый адрес уведомления отображается в выходных данных журнала): enter image description here

...